ARM GAS /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab 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 /tmp/ccN54YTb.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 or memory IT or DMA I2C process communication with Interrupt using HAL_I2 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 /tmp/ccN54YTb.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 or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab 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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 /tmp/ccN54YTb.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 **** /* Preload TX data if no stretch enable */ 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 27 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until AF flag is set */ 1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart); 1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (error != HAL_OK) 1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 1494: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 */ 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */ 1496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount; 1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset ErrorCode to NONE */ 1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); ARM GAS /tmp/ccN54YTb.s page 28 1514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear AF flag */ 1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 1517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 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 **** /* Clear STOP flag */ 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout) 1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) ARM GAS /tmp/ccN54YTb.s page 29 1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; ARM GAS /tmp/ccN54YTb.s page 30 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */ 1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 31 1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size) 1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 1736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 32 1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size) 1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); ARM GAS /tmp/ccN54YTb.s page 33 1799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1854: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) 1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 34 1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 1879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccN54YTb.s page 35 1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1918: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) 1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS /tmp/ccN54YTb.s page 36 1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size) 1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 2011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ ARM GAS /tmp/ccN54YTb.s page 37 2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), 2060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 2061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ ARM GAS /tmp/ccN54YTb.s page 38 2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE, 2100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size) 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 39 2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 2187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccN54YTb.s page 40 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ ARM GAS /tmp/ccN54YTb.s page 41 2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2278: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 2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; ARM GAS /tmp/ccN54YTb.s page 42 2312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 2318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, 2333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 2335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else ARM GAS /tmp/ccN54YTb.s page 43 2369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2414: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) 2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccN54YTb.s page 44 2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); ARM GAS /tmp/ccN54YTb.s page 45 2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccN54YTb.s page 46 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 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 **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) ARM GAS /tmp/ccN54YTb.s page 47 2597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address ARM GAS /tmp/ccN54YTb.s page 48 2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); ARM GAS /tmp/ccN54YTb.s page 49 2711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 2720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 2748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); ARM GAS /tmp/ccN54YTb.s page 50 2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2786: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 2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2797: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 2798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0U; ARM GAS /tmp/ccN54YTb.s page 51 2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */ 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 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 **** /* Reset Memaddress content */ 2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W 2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2874: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 2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer ARM GAS /tmp/ccN54YTb.s page 52 2882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2885: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 2886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */ 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 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 **** /* Reset Memaddress content */ 2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_ 2938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 53 2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2961: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 2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2972: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 2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 54 2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */ 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 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 **** /* Reset Memaddress content */ 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 3050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 55 3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START 3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3107: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. 3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/ccN54YTb.s page 56 3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be read 3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3118: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 3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 3125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */ 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); ARM GAS /tmp/ccN54YTb.s page 57 3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR 3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ ARM GAS /tmp/ccN54YTb.s page 58 3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This function is used with Memory devices 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Trials Number of trials 3260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout) 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 3267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp1; 3273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2; 3274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 59 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 3289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Start */ 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 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 **** 3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A non acknowledge appear during STOP Flag waiting process, a new trial must be perform 3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 3331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 3333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset the error code for next trial */ 3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 60 3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 3341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A acknowledge appear during STOP Flag waiting process, this mean that device respond t 3346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 3348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Device is ready */ 3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 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 **** /* A non acknowledge is detected, this mean that device not respond to its address, 3362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** a new trial must be performed */ 3363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 3365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 3371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Trials */ 3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Trials++; 3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_Trials < Trials) && (status == HAL_ERROR)) 3383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_OK; 3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 3388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 61 3395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3407: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 3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccN54YTb.s page 62 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 3464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */ 3472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | ARM GAS /tmp/ccN54YTb.s page 63 3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3521: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. 3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 64 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 3574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */ 3587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 3621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 65 3623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 66 3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 3686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3718: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 3719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); ARM GAS /tmp/ccN54YTb.s page 67 3737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */ 3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ ARM GAS /tmp/ccN54YTb.s page 68 3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3805: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 3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; ARM GAS /tmp/ccN54YTb.s page 69 3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */ 3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 3890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 70 3908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 3947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; ARM GAS /tmp/ccN54YTb.s page 71 3965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3973: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 3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3982: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 3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions) 3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp; 3987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3991: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) 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; ARM GAS /tmp/ccN54YTb.s page 72 4022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 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 **** 4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4073: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 4074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent ARM GAS /tmp/ccN54YTb.s page 73 4079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4082: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 4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions) 4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp; 4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 4090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4092: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) 4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) ARM GAS /tmp/ccN54YTb.s page 74 4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 4158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 4178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 4181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ ARM GAS /tmp/ccN54YTb.s page 75 4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */ 4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0; 4212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 76 4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4257: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 4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4266: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 4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions) 4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp; 4271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 4273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4275: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) 4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 77 4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 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 **** 4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4357: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 4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS ARM GAS /tmp/ccN54YTb.s page 78 4364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4366: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 4367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions) 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp; 4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 4374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4376: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) 4377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 79 4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 4442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; ARM GAS /tmp/ccN54YTb.s page 80 4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */ 4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0; 4496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else ARM GAS /tmp/ccN54YTb.s page 81 4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 4561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C 4568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp; 4574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 4583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/ccN54YTb.s page 82 4592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt. 4597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 4606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM)) 4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4632: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 4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong usage of abort function */ 4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ ARM GAS /tmp/ccN54YTb.s page 83 4649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 4659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */ 4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 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 **** 4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 4691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */ 4699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 84 4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */ 4709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ 4714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */ 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4726: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_ 4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 85 4763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Address Match callback. 4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection); 4808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Listen Complete callback. 4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None ARM GAS /tmp/ccN54YTb.s page 86 4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 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 **** * @brief I2C error callback. 4865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS /tmp/ccN54YTb.s page 87 4877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C abort callback. 4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 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 **** /** 4896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 4903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 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 **** This subsection permit to get in run-time the status of the peripheral 4908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the data flow. 4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 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 **** 4914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C handle state. 4916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL state 4919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c) 4921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */ 4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->State; 4924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for I2C module 4930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL mode 4931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c) 4933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 88 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode; 4935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C error code. 4939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval I2C Error Code 4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c) 4944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode; 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 4962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 4984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 89 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \ 5007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 5009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 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_TCR) != 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) && (hi2c->XferSize == 0U)) 5027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 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 **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.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 **** /* Call TxCpltCallback() if no stop mode is set */ 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ 5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 91 5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt. 5113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU) 5161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 92 5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 5184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 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 **** else 5199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 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 **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 5213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 93 5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 5256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */ 5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */ ARM GAS /tmp/ccN54YTb.s page 94 5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 5277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5282: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 */ 5283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/ 5284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 5295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 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 **** else 5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5314: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*/ 5315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 95 5333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 5344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 5345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 5351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 5354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if all Data have already been sent */ 5361: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 */ 5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 5376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccN54YTb.s page 96 5390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 5406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC interrupt */ 5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 5433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Recover Slave address */ 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 97 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 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 5475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ 5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else ARM GAS /tmp/ccN54YTb.s page 98 5504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA. 5536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ ARM GAS /tmp/ccN54YTb.s page 99 5561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \ 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable only Error interrupt */ 5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 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_AUTOEND_MODE, I2C_NO_STARTSTOP); 5599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ ARM GAS /tmp/ccN54YTb.s page 100 5618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */ 5628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 101 5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */ 5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5711: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 */ 5712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 5723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U; 5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 102 5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U; 5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (treatdmanack == 1U) 5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 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 **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpstate = hi2c->State; 5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; ARM GAS /tmp/ccN54YTb.s page 103 5789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 5793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 5829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 104 5846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */ 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 5884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 5886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 5887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) ARM GAS /tmp/ccN54YTb.s page 105 5903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */ 5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TC flag is set */ 5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode; 5942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code; 5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code; 5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(ITFlags); 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5949: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) 5950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) ARM GAS /tmp/ccN54YTb.s page 106 5960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++; 5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Address Event counter */ 5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 5985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_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 Slave Addr callback */ 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->AddrCallback(hi2c, transferdirection, slaveaddrcode); 6012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 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 **** } ARM GAS /tmp/ccN54YTb.s page 107 6017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Else clear address flag only */ 6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 6022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 6030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccN54YTb.s page 108 6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 6083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 6107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 6110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 109 6131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master complete process. 6156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg; 6165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 6183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 110 6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set acknowledge error code */ 6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Fetch Last receive data if any */ 6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 6206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 6207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 6237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 6239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 111 6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 6272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 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 **** else 6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave complete process. 6299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None ARM GAS /tmp/ccN54YTb.s page 112 6302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN) 6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6326: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); 6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 6332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); 6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 113 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); 6362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 6371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 6374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 6380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 6385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 6396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 6399: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 */ 6400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/ 6401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 6405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 6407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 114 6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 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 **** else 6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6431: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*/ 6432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 6439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 6450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 6462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 6464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 115 6473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Listen complete process. 6515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) ARM GAS /tmp/ccN54YTb.s page 116 6530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 6541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all Interrupts*/ 6548: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); 6549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C interrupts error process. 6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 6568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate; 6575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 6580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set new error code */ 6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 6583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || ARM GAS /tmp/ccN54YTb.s page 117 6587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts */ 6599: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); 6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This change will be do later */ 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 6629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; ARM GAS /tmp/ccN54YTb.s page 118 6644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 6653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 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 **** else 6691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS /tmp/ccN54YTb.s page 119 6701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 28 .loc 1 6740 1 view -0 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 @ link register save eliminated. 6741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 33 .loc 1 6743 3 view .LVU1 34 .loc 1 6743 7 is_stmt 0 view .LVU2 35 0000 0368 ldr r3, [r0] 36 0002 9A69 ldr r2, [r3, #24] 37 .loc 1 6743 6 view .LVU3 38 0004 12F0020F tst r2, #2 39 0008 01D0 beq .L2 6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; ARM GAS /tmp/ccN54YTb.s page 120 40 .loc 1 6745 5 is_stmt 1 view .LVU4 41 .loc 1 6745 26 is_stmt 0 view .LVU5 42 000a 0022 movs r2, #0 43 000c 9A62 str r2, [r3, #40] 44 .L2: 6746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register if not empty */ 6749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 45 .loc 1 6749 3 is_stmt 1 view .LVU6 46 .loc 1 6749 7 is_stmt 0 view .LVU7 47 000e 0368 ldr r3, [r0] 48 0010 9A69 ldr r2, [r3, #24] 49 .loc 1 6749 6 view .LVU8 50 0012 12F0010F tst r2, #1 51 0016 03D1 bne .L1 6750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 52 .loc 1 6751 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: 6752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 57 .loc 1 6753 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: 6754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */ 6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 121 6774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */ 6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 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 **** /* Enable the DMA stream or channel depends on Instance */ 6791: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, 6792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6829: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 */ 6830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ ARM GAS /tmp/ccN54YTb.s page 122 6831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */ 6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */ 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 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 **** /* Enable the DMA stream or channel depends on Instance */ 6871: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, 6872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 6880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. ARM GAS /tmp/ccN54YTb.s page 123 6888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ 6898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6909: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 */ 6910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 6929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U; 6931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 6937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U; 6939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6942: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 * 6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (!((HAL_DMA_GetError(hdma) == HAL_DMA_ERROR_FE)) && (treatdmaerror != 0U)) 6944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 124 6945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Acknowledge */ 6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle. 6958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 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 **** I2C_TreatErrorCallback(hi2c); 6976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 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. It waits 6981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * until a flag is no longer in the specified status. 6982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET). 6986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 6987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 6988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 6989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 6992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 6994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */ 6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ ARM GAS /tmp/ccN54YTb.s page 125 7002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) 7007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 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 **** } 7018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 7020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 7024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 7027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 7028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 7029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 7032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */ 7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) 7047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 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 /tmp/ccN54YTb.s page 126 7059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 7061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 7065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 7068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 7069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 7070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 7073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */ 7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) 7086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 7099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 7103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 7106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 7108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 7111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK)) 7115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 127 7116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */ 7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */ 7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK)) 7124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an RXNE is pending */ 7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 7127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 7128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return HAL_OK */ 7130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 7131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_OK; 7132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */ 7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 7136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 7139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 7141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 7155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK)) 7162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) 7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 128 7173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 7176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication. 7180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 7183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 7185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti 7187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0; 7191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 7192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp1; 7193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 7194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) 7196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACKF Flag */ 7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */ 7201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) 7203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 7208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); 7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 7211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */ 7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ 7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 7215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 7216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ 7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 7219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Tick with new reference */ 7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 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 **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) 7228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT; ARM GAS /tmp/ccN54YTb.s page 129 7230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 7234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */ 7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (status == HAL_OK) 7242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 7244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF; 7248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Refresh Content of Status register */ 7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** itflag = hi2c->Instance->ISR; 7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Then verify if an additional errors occurs */ 7256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a Bus error occurred */ 7257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) 7258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; 7260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */ 7262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 7263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */ 7268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) 7269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR; 7271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */ 7273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 7274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */ 7279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) 7280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO; 7282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */ 7284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 7285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; ARM GAS /tmp/ccN54YTb.s page 130 7287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (status != HAL_OK) 7290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 7292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 7293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= error_code; 7298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 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 **** return status; 7306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 7310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 7311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 7312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 7313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 7314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 7315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 7316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 7317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 7318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 7319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 7320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 7321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 7322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 7323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 7324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 7325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 7326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 7328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Request) 7329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 71 .loc 1 7329 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 7329 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] 7330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp; 81 .loc 1 7330 3 is_stmt 1 view .LVU13 7331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ ARM GAS /tmp/ccN54YTb.s page 131 7333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 82 .loc 1 7333 3 view .LVU14 7334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 83 .loc 1 7334 3 view .LVU15 7335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 84 .loc 1 7335 3 view .LVU16 7336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 7338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 85 .loc 1 7338 3 view .LVU17 86 .loc 1 7338 43 is_stmt 0 view .LVU18 87 0004 C1F30901 ubfx r1, r1, #0, #10 88 .LVL2: 89 .loc 1 7338 59 view .LVU19 90 0008 41EA0241 orr r1, r1, r2, lsl #16 7339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 91 .loc 1 7339 79 view .LVU20 92 000c 1943 orrs r1, r1, r3 7338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 93 .loc 1 7338 10 view .LVU21 94 000e 2143 orrs r1, r1, r4 7338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 95 .loc 1 7338 7 view .LVU22 96 0010 21F00041 bic r1, r1, #-2147483648 97 .LVL3: 7340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); 7341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* update CR2 register */ 7343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \ 98 .loc 1 7343 3 is_stmt 1 view .LVU23 99 0014 0268 ldr r2, [r0] 100 .LVL4: 101 .loc 1 7343 3 is_stmt 0 view .LVU24 102 0016 5368 ldr r3, [r2, #4] 103 .LVL5: 104 .loc 1 7343 3 view .LVU25 105 0018 640D lsrs r4, r4, #21 106 001a 04F48064 and r4, r4, #1024 107 001e 44F07F74 orr r4, r4, #66846720 108 0022 44F45834 orr r4, r4, #221184 109 0026 44F47F74 orr r4, r4, #1020 110 002a 44F00304 orr r4, r4, #3 111 002e 23EA0403 bic r3, r3, r4 112 0032 0B43 orrs r3, r3, r1 113 0034 5360 str r3, [r2, #4] 7344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ 7345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 7346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp); 7347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 114 .loc 1 7347 1 view .LVU26 115 0036 5DF8044B ldr r4, [sp], #4 116 .cfi_restore 4 117 .cfi_def_cfa_offset 0 118 .LVL6: 119 .loc 1 7347 1 view .LVU27 120 003a 7047 bx lr 121 .cfi_endproc ARM GAS /tmp/ccN54YTb.s page 132 122 .LFE412: 124 .section .text.I2C_Enable_IRQ,"ax",%progbits 125 .align 1 126 .syntax unified 127 .thumb 128 .thumb_func 130 I2C_Enable_IRQ: 131 .LVL7: 132 .LFB413: 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 **** * @brief Manage the enabling of Interrupts. 7351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 7355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 133 .loc 1 7357 1 is_stmt 1 view -0 134 .cfi_startproc 135 @ args = 0, pretend = 0, frame = 0 136 @ frame_needed = 0, uses_anonymous_args = 0 137 @ link register save eliminated. 7358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 138 .loc 1 7358 3 view .LVU29 7359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \ 139 .loc 1 7360 3 view .LVU30 140 .loc 1 7360 12 is_stmt 0 view .LVU31 141 0000 436B ldr r3, [r0, #52] 142 .loc 1 7360 6 view .LVU32 143 0002 234A ldr r2, .L22 144 0004 9342 cmp r3, r2 145 0006 1FD0 beq .L7 146 .loc 1 7360 45 discriminator 1 view .LVU33 147 0008 224A ldr r2, .L22+4 148 000a 9342 cmp r3, r2 149 000c 1CD0 beq .L7 7361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \ 150 .loc 1 7361 44 view .LVU34 151 000e 224A ldr r2, .L22+8 152 0010 9342 cmp r3, r2 153 0012 19D0 beq .L7 7362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA)) 7363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 154 .loc 1 7364 5 is_stmt 1 view .LVU35 155 .loc 1 7364 8 is_stmt 0 view .LVU36 156 0014 11F4004F tst r1, #32768 157 0018 0FD1 bne .L18 7358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 158 .loc 1 7358 12 view .LVU37 159 001a 0023 movs r3, #0 160 .L8: 161 .LVL8: 7365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 133 7366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 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_TX_IT) == I2C_XFER_TX_IT) 162 .loc 1 7370 5 is_stmt 1 view .LVU38 163 .loc 1 7370 8 is_stmt 0 view .LVU39 164 001c 11F0010F tst r1, #1 165 0020 01D0 beq .L9 7371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7373: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; 166 .loc 1 7373 7 is_stmt 1 view .LVU40 167 .loc 1 7373 14 is_stmt 0 view .LVU41 168 0022 43F0F203 orr r3, r3, #242 169 .LVL9: 170 .L9: 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_RX_IT) == I2C_XFER_RX_IT) 171 .loc 1 7376 5 is_stmt 1 view .LVU42 172 .loc 1 7376 8 is_stmt 0 view .LVU43 173 0026 11F0020F tst r1, #2 174 002a 08D0 beq .L10 7377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7379: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; 175 .loc 1 7379 7 is_stmt 1 view .LVU44 176 .loc 1 7379 14 is_stmt 0 view .LVU45 177 002c 43F0F403 orr r3, r3, #244 178 .LVL10: 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_ERROR_IT) 179 .loc 1 7382 5 is_stmt 1 view .LVU46 180 .L11: 7383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 181 .loc 1 7388 5 view .LVU47 182 .loc 1 7388 8 is_stmt 0 view .LVU48 183 0030 2029 cmp r1, #32 184 0032 1BD1 bne .L12 7389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 185 .loc 1 7391 7 is_stmt 1 view .LVU49 186 .loc 1 7391 14 is_stmt 0 view .LVU50 187 0034 43F02003 orr r3, r3, #32 188 .LVL11: 189 .loc 1 7391 14 view .LVU51 190 0038 18E0 b .L12 191 .LVL12: 192 .L18: ARM GAS /tmp/ccN54YTb.s page 134 7367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 193 .loc 1 7367 14 view .LVU52 194 003a B823 movs r3, #184 195 003c EEE7 b .L8 196 .LVL13: 197 .L10: 7382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 198 .loc 1 7382 5 is_stmt 1 view .LVU53 7382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 199 .loc 1 7382 8 is_stmt 0 view .LVU54 200 003e 1029 cmp r1, #16 201 0040 F6D1 bne .L11 7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 202 .loc 1 7385 7 is_stmt 1 view .LVU55 7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 203 .loc 1 7385 14 is_stmt 0 view .LVU56 204 0042 43F09003 orr r3, r3, #144 205 .LVL14: 7388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 206 .loc 1 7388 5 is_stmt 1 view .LVU57 207 0046 11E0 b .L12 208 .LVL15: 209 .L7: 7392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 7396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 210 .loc 1 7397 5 view .LVU58 211 .loc 1 7397 8 is_stmt 0 view .LVU59 212 0048 11F4004F tst r1, #32768 213 004c 13D1 bne .L19 7358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 214 .loc 1 7358 12 view .LVU60 215 004e 0023 movs r3, #0 216 .L13: 217 .LVL16: 7398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 218 .loc 1 7403 5 is_stmt 1 view .LVU61 219 .loc 1 7403 8 is_stmt 0 view .LVU62 220 0050 11F0010F tst r1, #1 221 0054 01D0 beq .L14 7404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7406: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; 222 .loc 1 7406 7 is_stmt 1 view .LVU63 223 .loc 1 7406 14 is_stmt 0 view .LVU64 224 0056 43F0F203 orr r3, r3, #242 225 .LVL17: 226 .L14: 7407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 135 7408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 227 .loc 1 7409 5 is_stmt 1 view .LVU65 228 .loc 1 7409 8 is_stmt 0 view .LVU66 229 005a 11F0020F tst r1, #2 230 005e 0CD0 beq .L15 7410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7412: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; 231 .loc 1 7412 7 is_stmt 1 view .LVU67 232 .loc 1 7412 14 is_stmt 0 view .LVU68 233 0060 43F0F403 orr r3, r3, #244 234 .LVL18: 7413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 235 .loc 1 7415 5 is_stmt 1 view .LVU69 236 .L16: 7416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 237 .loc 1 7421 5 view .LVU70 238 .loc 1 7421 8 is_stmt 0 view .LVU71 239 0064 2029 cmp r1, #32 240 0066 0DD0 beq .L20 241 .L17: 7422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 7425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 242 .loc 1 7427 5 is_stmt 1 view .LVU72 243 .loc 1 7427 8 is_stmt 0 view .LVU73 244 0068 4029 cmp r1, #64 245 006a 0ED0 beq .L21 246 .LVL19: 247 .L12: 7428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable interrupts only at the end */ 7435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 7436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all interrupts requested done */ 7437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 248 .loc 1 7437 3 is_stmt 1 view .LVU74 249 006c 0168 ldr r1, [r0] 250 .LVL20: 251 .loc 1 7437 3 is_stmt 0 view .LVU75 252 006e 0A68 ldr r2, [r1] 253 0070 1343 orrs r3, r3, r2 ARM GAS /tmp/ccN54YTb.s page 136 254 .LVL21: 255 .loc 1 7437 3 view .LVU76 256 0072 0B60 str r3, [r1] 7438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 257 .loc 1 7438 1 view .LVU77 258 0074 7047 bx lr 259 .LVL22: 260 .L19: 7400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 261 .loc 1 7400 14 view .LVU78 262 0076 B823 movs r3, #184 263 0078 EAE7 b .L13 264 .LVL23: 265 .L15: 7415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 266 .loc 1 7415 5 is_stmt 1 view .LVU79 7415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 267 .loc 1 7415 8 is_stmt 0 view .LVU80 268 007a 1029 cmp r1, #16 269 007c F2D1 bne .L16 7418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 270 .loc 1 7418 7 is_stmt 1 view .LVU81 7418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 271 .loc 1 7418 14 is_stmt 0 view .LVU82 272 007e 43F09003 orr r3, r3, #144 273 .LVL24: 7421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 274 .loc 1 7421 5 is_stmt 1 view .LVU83 275 0082 F1E7 b .L17 276 .L20: 7424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 277 .loc 1 7424 7 view .LVU84 7424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 278 .loc 1 7424 14 is_stmt 0 view .LVU85 279 0084 43F06003 orr r3, r3, #96 280 .LVL25: 7427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 281 .loc 1 7427 5 is_stmt 1 view .LVU86 282 0088 F0E7 b .L12 283 .L21: 7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 284 .loc 1 7430 7 view .LVU87 7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 285 .loc 1 7430 14 is_stmt 0 view .LVU88 286 008a 43F04003 orr r3, r3, #64 287 .LVL26: 7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 288 .loc 1 7430 14 view .LVU89 289 008e EDE7 b .L12 290 .L23: 291 .align 2 292 .L22: 293 0090 00000000 .word I2C_Master_ISR_DMA 294 0094 00000000 .word I2C_Slave_ISR_DMA 295 0098 00000000 .word I2C_Mem_ISR_DMA 296 .cfi_endproc 297 .LFE413: ARM GAS /tmp/ccN54YTb.s page 137 299 .section .text.I2C_Disable_IRQ,"ax",%progbits 300 .align 1 301 .syntax unified 302 .thumb 303 .thumb_func 305 I2C_Disable_IRQ: 306 .LVL27: 307 .LFB414: 7439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 7442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 7446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 308 .loc 1 7448 1 is_stmt 1 view -0 309 .cfi_startproc 310 @ args = 0, pretend = 0, frame = 0 311 @ frame_needed = 0, uses_anonymous_args = 0 312 @ link register save eliminated. 7449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 313 .loc 1 7449 3 view .LVU91 7450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 314 .loc 1 7451 3 view .LVU92 315 .loc 1 7451 6 is_stmt 0 view .LVU93 316 0000 11F0010F tst r1, #1 317 0004 09D0 beq .L31 7452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 7454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 318 .loc 1 7454 5 is_stmt 1 view .LVU94 319 .LVL28: 7455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7456: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) 320 .loc 1 7456 5 view .LVU95 321 .loc 1 7456 24 is_stmt 0 view .LVU96 322 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 323 .loc 1 7456 8 view .LVU97 324 000a 03F02803 and r3, r3, #40 325 000e 282B cmp r3, #40 326 0010 01D0 beq .L34 7457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 327 .loc 1 7459 14 view .LVU98 328 0012 F223 movs r3, #242 329 0014 02E0 b .L25 330 .L34: 7454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 331 .loc 1 7454 12 view .LVU99 332 0016 4223 movs r3, #66 333 0018 00E0 b .L25 334 .LVL29: ARM GAS /tmp/ccN54YTb.s page 138 335 .L31: 7449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 336 .loc 1 7449 12 view .LVU100 337 001a 0023 movs r3, #0 338 .LVL30: 339 .L25: 7460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 340 .loc 1 7463 3 is_stmt 1 view .LVU101 341 .loc 1 7463 6 is_stmt 0 view .LVU102 342 001c 11F0020F tst r1, #2 343 0020 09D0 beq .L26 7464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 7466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 344 .loc 1 7466 5 is_stmt 1 view .LVU103 345 .loc 1 7466 12 is_stmt 0 view .LVU104 346 0022 43F0440C orr ip, r3, #68 347 .LVL31: 7467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7468: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) 348 .loc 1 7468 5 is_stmt 1 view .LVU105 349 .loc 1 7468 24 is_stmt 0 view .LVU106 350 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 351 .loc 1 7468 8 view .LVU107 352 002a 02F02802 and r2, r2, #40 353 002e 282A cmp r2, #40 354 0030 09D0 beq .L33 7469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 355 .loc 1 7471 7 is_stmt 1 view .LVU108 356 .loc 1 7471 14 is_stmt 0 view .LVU109 357 0032 43F0F403 orr r3, r3, #244 358 .LVL32: 359 .L26: 7472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 360 .loc 1 7475 3 is_stmt 1 view .LVU110 361 .loc 1 7475 6 is_stmt 0 view .LVU111 362 0036 11F4004F tst r1, #32768 363 003a 06D1 bne .L35 7476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 7478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 364 .loc 1 7481 3 is_stmt 1 view .LVU112 365 .loc 1 7481 6 is_stmt 0 view .LVU113 366 003c 1029 cmp r1, #16 367 003e 06D1 bne .L28 7482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 139 7483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 368 .loc 1 7484 5 is_stmt 1 view .LVU114 369 .loc 1 7484 12 is_stmt 0 view .LVU115 370 0040 43F09003 orr r3, r3, #144 371 .LVL33: 7485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 372 .loc 1 7487 3 is_stmt 1 view .LVU116 373 0044 05E0 b .L29 374 .LVL34: 375 .L33: 7466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 376 .loc 1 7466 12 is_stmt 0 view .LVU117 377 0046 6346 mov r3, ip 378 0048 F5E7 b .L26 379 .LVL35: 380 .L35: 7478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 381 .loc 1 7478 5 is_stmt 1 view .LVU118 7478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 382 .loc 1 7478 12 is_stmt 0 view .LVU119 383 004a 43F0B803 orr r3, r3, #184 384 .LVL36: 7481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 385 .loc 1 7481 3 is_stmt 1 view .LVU120 386 .L28: 387 .loc 1 7487 3 view .LVU121 388 .loc 1 7487 6 is_stmt 0 view .LVU122 389 004e 2029 cmp r1, #32 390 0050 07D0 beq .L36 391 .L29: 7488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 7491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 392 .loc 1 7493 3 is_stmt 1 view .LVU123 393 .loc 1 7493 6 is_stmt 0 view .LVU124 394 0052 4029 cmp r1, #64 395 0054 08D0 beq .L37 396 .LVL37: 397 .L30: 7494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 7496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable interrupts only at the end */ 7500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 7501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all disable interrupts request are not done */ 7502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 398 .loc 1 7502 3 is_stmt 1 view .LVU125 399 0056 0168 ldr r1, [r0] 400 .LVL38: ARM GAS /tmp/ccN54YTb.s page 140 401 .loc 1 7502 3 is_stmt 0 view .LVU126 402 0058 0A68 ldr r2, [r1] 403 005a 22EA0303 bic r3, r2, r3 404 .LVL39: 405 .loc 1 7502 3 view .LVU127 406 005e 0B60 str r3, [r1] 7503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 407 .loc 1 7503 1 view .LVU128 408 0060 7047 bx lr 409 .LVL40: 410 .L36: 7490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 411 .loc 1 7490 5 is_stmt 1 view .LVU129 7490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 412 .loc 1 7490 12 is_stmt 0 view .LVU130 413 0062 43F02003 orr r3, r3, #32 414 .LVL41: 7493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 415 .loc 1 7493 3 is_stmt 1 view .LVU131 416 0066 F6E7 b .L30 417 .L37: 7496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 418 .loc 1 7496 5 view .LVU132 7496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 419 .loc 1 7496 12 is_stmt 0 view .LVU133 420 0068 43F04003 orr r3, r3, #64 421 .LVL42: 7496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 422 .loc 1 7496 12 view .LVU134 423 006c F3E7 b .L30 424 .cfi_endproc 425 .LFE414: 427 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 428 .align 1 429 .syntax unified 430 .thumb 431 .thumb_func 433 I2C_ConvertOtherXferOptions: 434 .LVL43: 435 .LFB415: 7504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 7507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 7508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 7509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 7511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 436 .loc 1 7511 1 is_stmt 1 view -0 437 .cfi_startproc 438 @ args = 0, pretend = 0, frame = 0 439 @ frame_needed = 0, uses_anonymous_args = 0 440 @ link register save eliminated. 7512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 7513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 7515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) ARM GAS /tmp/ccN54YTb.s page 141 441 .loc 1 7515 3 view .LVU136 442 .loc 1 7515 11 is_stmt 0 view .LVU137 443 0000 C36A ldr r3, [r0, #44] 444 .loc 1 7515 6 view .LVU138 445 0002 AA2B cmp r3, #170 446 0004 04D0 beq .L41 7516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 7518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 7520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ 7522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 7523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 447 .loc 1 7523 8 is_stmt 1 view .LVU139 448 .loc 1 7523 16 is_stmt 0 view .LVU140 449 0006 C36A ldr r3, [r0, #44] 450 .loc 1 7523 11 view .LVU141 451 0008 B3F52A4F cmp r3, #43520 452 000c 03D0 beq .L42 453 .L38: 7524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 7526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 7528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 7530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 454 .loc 1 7531 1 view .LVU142 455 000e 7047 bx lr 456 .L41: 7517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 457 .loc 1 7517 5 is_stmt 1 view .LVU143 7517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 458 .loc 1 7517 23 is_stmt 0 view .LVU144 459 0010 0023 movs r3, #0 460 0012 C362 str r3, [r0, #44] 461 0014 7047 bx lr 462 .L42: 7525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 463 .loc 1 7525 5 is_stmt 1 view .LVU145 7525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 464 .loc 1 7525 23 is_stmt 0 view .LVU146 465 0016 4FF00073 mov r3, #33554432 466 001a C362 str r3, [r0, #44] 7530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 467 .loc 1 7530 3 is_stmt 1 view .LVU147 468 .loc 1 7531 1 is_stmt 0 view .LVU148 469 001c F7E7 b .L38 470 .cfi_endproc 471 .LFE415: 473 .section .text.I2C_IsErrorOccurred,"ax",%progbits 474 .align 1 475 .syntax unified 476 .thumb 477 .thumb_func ARM GAS /tmp/ccN54YTb.s page 142 479 I2C_IsErrorOccurred: 480 .LVL44: 481 .LFB411: 7187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 482 .loc 1 7187 1 is_stmt 1 view -0 483 .cfi_startproc 484 @ args = 0, pretend = 0, frame = 0 485 @ frame_needed = 0, uses_anonymous_args = 0 7187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 486 .loc 1 7187 1 is_stmt 0 view .LVU150 487 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 488 .cfi_def_cfa_offset 24 489 .cfi_offset 4, -24 490 .cfi_offset 5, -20 491 .cfi_offset 6, -16 492 .cfi_offset 7, -12 493 .cfi_offset 8, -8 494 .cfi_offset 14, -4 495 0004 0446 mov r4, r0 7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 496 .loc 1 7188 3 is_stmt 1 view .LVU151 497 .LVL45: 7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0; 498 .loc 1 7189 3 view .LVU152 7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0; 499 .loc 1 7189 27 is_stmt 0 view .LVU153 500 0006 0368 ldr r3, [r0] 7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0; 501 .loc 1 7189 12 view .LVU154 502 0008 9E69 ldr r6, [r3, #24] 503 .LVL46: 7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 504 .loc 1 7190 3 is_stmt 1 view .LVU155 7191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp1; 505 .loc 1 7191 3 view .LVU156 7192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 506 .loc 1 7192 3 view .LVU157 7193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 507 .loc 1 7193 3 view .LVU158 7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 508 .loc 1 7195 3 view .LVU159 7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 509 .loc 1 7195 6 is_stmt 0 view .LVU160 510 000a 16F01006 ands r6, r6, #16 511 .LVL47: 7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 512 .loc 1 7195 6 view .LVU161 513 000e 7ED0 beq .L60 514 0010 0D46 mov r5, r1 515 0012 9046 mov r8, r2 7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 516 .loc 1 7198 5 is_stmt 1 view .LVU162 517 0014 1022 movs r2, #16 518 .LVL48: 7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 519 .loc 1 7198 5 is_stmt 0 view .LVU163 520 0016 DA61 str r2, [r3, #28] ARM GAS /tmp/ccN54YTb.s page 143 7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 521 .loc 1 7202 5 is_stmt 1 view .LVU164 7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 522 .loc 1 7190 12 is_stmt 0 view .LVU165 523 0018 0026 movs r6, #0 7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 524 .loc 1 7188 21 view .LVU166 525 001a 3746 mov r7, r6 526 .LVL49: 527 .L46: 7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 528 .loc 1 7202 64 is_stmt 1 view .LVU167 7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 529 .loc 1 7202 13 is_stmt 0 view .LVU168 530 001c 2368 ldr r3, [r4] 531 001e 9869 ldr r0, [r3, #24] 7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 532 .loc 1 7202 64 view .LVU169 533 0020 10F0200F tst r0, #32 534 0024 32D1 bne .L52 7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 535 .loc 1 7202 64 discriminator 1 view .LVU170 536 0026 8FBB cbnz r7, .L52 7205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 537 .loc 1 7205 7 is_stmt 1 view .LVU171 7205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 538 .loc 1 7205 10 is_stmt 0 view .LVU172 539 0028 B5F1FF3F cmp r5, #-1 540 002c F6D0 beq .L46 7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 541 .loc 1 7207 9 is_stmt 1 view .LVU173 7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 542 .loc 1 7207 15 is_stmt 0 view .LVU174 543 002e FFF7FEFF bl HAL_GetTick 544 .LVL50: 7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 545 .loc 1 7207 29 discriminator 1 view .LVU175 546 0032 A0EB0800 sub r0, r0, r8 7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 547 .loc 1 7207 12 discriminator 1 view .LVU176 548 0036 A842 cmp r0, r5 549 0038 01D8 bhi .L47 7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 550 .loc 1 7207 53 discriminator 1 view .LVU177 551 003a 002D cmp r5, #0 552 003c EED1 bne .L46 553 .L47: 7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 554 .loc 1 7209 11 is_stmt 1 view .LVU178 7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 555 .loc 1 7209 33 is_stmt 0 view .LVU179 556 003e 2168 ldr r1, [r4] 7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 557 .loc 1 7209 43 view .LVU180 558 0040 4A68 ldr r2, [r1, #4] 7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 559 .loc 1 7209 16 view .LVU181 ARM GAS /tmp/ccN54YTb.s page 144 560 0042 02F48042 and r2, r2, #16384 561 .LVL51: 7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 562 .loc 1 7210 11 is_stmt 1 view .LVU182 7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 563 .loc 1 7210 16 is_stmt 0 view .LVU183 564 0046 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 565 004a DBB2 uxtb r3, r3 566 .LVL52: 7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 567 .loc 1 7213 11 is_stmt 1 view .LVU184 7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 568 .loc 1 7213 16 is_stmt 0 view .LVU185 569 004c 8869 ldr r0, [r1, #24] 7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 570 .loc 1 7213 14 view .LVU186 571 004e 10F4004F tst r0, #32768 572 0052 04D0 beq .L50 7215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 573 .loc 1 7215 21 view .LVU187 574 0054 203B subs r3, r3, #32 575 .LVL53: 7215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 576 .loc 1 7215 21 view .LVU188 577 0056 18BF it ne 578 0058 0123 movne r3, #1 579 .LVL54: 7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 580 .loc 1 7214 38 view .LVU189 581 005a 02B9 cbnz r2, .L50 582 005c 73B9 cbnz r3, .L62 583 .LVL55: 584 .L50: 7224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 585 .loc 1 7224 59 is_stmt 1 view .LVU190 7224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 586 .loc 1 7224 18 is_stmt 0 view .LVU191 587 005e 2368 ldr r3, [r4] 588 0060 9B69 ldr r3, [r3, #24] 7224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 589 .loc 1 7224 59 view .LVU192 590 0062 13F0200F tst r3, #32 591 0066 D9D1 bne .L46 7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 592 .loc 1 7227 13 is_stmt 1 view .LVU193 7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 593 .loc 1 7227 18 is_stmt 0 view .LVU194 594 0068 FFF7FEFF bl HAL_GetTick 595 .LVL56: 7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 596 .loc 1 7227 32 discriminator 1 view .LVU195 597 006c A0EB0800 sub r0, r0, r8 7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 598 .loc 1 7227 16 discriminator 1 view .LVU196 599 0070 1928 cmp r0, #25 600 0072 F4D9 bls .L50 7229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 145 601 .loc 1 7229 15 is_stmt 1 view .LVU197 7229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 602 .loc 1 7229 26 is_stmt 0 view .LVU198 603 0074 46F02006 orr r6, r6, #32 604 .LVL57: 7231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 605 .loc 1 7231 15 is_stmt 1 view .LVU199 7233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 606 .loc 1 7233 15 view .LVU200 7231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 607 .loc 1 7231 22 is_stmt 0 view .LVU201 608 0078 0127 movs r7, #1 7233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 609 .loc 1 7233 15 view .LVU202 610 007a CFE7 b .L46 611 .LVL58: 612 .L62: 7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 613 .loc 1 7218 13 is_stmt 1 view .LVU203 7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 614 .loc 1 7218 27 is_stmt 0 view .LVU204 615 007c 4B68 ldr r3, [r1, #4] 7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 616 .loc 1 7218 33 view .LVU205 617 007e 43F48043 orr r3, r3, #16384 618 0082 4B60 str r3, [r1, #4] 7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 619 .loc 1 7221 13 is_stmt 1 view .LVU206 7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 620 .loc 1 7221 25 is_stmt 0 view .LVU207 621 0084 FFF7FEFF bl HAL_GetTick 622 .LVL59: 7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 623 .loc 1 7221 25 view .LVU208 624 0088 8046 mov r8, r0 625 .LVL60: 7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 626 .loc 1 7221 25 view .LVU209 627 008a E8E7 b .L50 628 .LVL61: 629 .L52: 7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 630 .loc 1 7241 5 is_stmt 1 view .LVU210 7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 631 .loc 1 7241 8 is_stmt 0 view .LVU211 632 008c 0FB9 cbnz r7, .L54 7244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 633 .loc 1 7244 7 is_stmt 1 view .LVU212 634 008e 2022 movs r2, #32 635 0090 DA61 str r2, [r3, #28] 636 .L54: 7247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 637 .loc 1 7247 5 view .LVU213 7247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 638 .loc 1 7247 16 is_stmt 0 view .LVU214 639 0092 46F00406 orr r6, r6, #4 640 .LVL62: ARM GAS /tmp/ccN54YTb.s page 146 7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 641 .loc 1 7249 5 is_stmt 1 view .LVU215 7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 642 .loc 1 7249 12 is_stmt 0 view .LVU216 643 0096 0125 movs r5, #1 644 .LVL63: 645 .L44: 7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 646 .loc 1 7253 3 is_stmt 1 view .LVU217 7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 647 .loc 1 7253 16 is_stmt 0 view .LVU218 648 0098 2268 ldr r2, [r4] 7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 649 .loc 1 7253 10 view .LVU219 650 009a 9369 ldr r3, [r2, #24] 651 .LVL64: 7257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 652 .loc 1 7257 3 is_stmt 1 view .LVU220 7257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 653 .loc 1 7257 6 is_stmt 0 view .LVU221 654 009c 13F4807F tst r3, #256 655 00a0 05D0 beq .L55 7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 656 .loc 1 7259 5 is_stmt 1 view .LVU222 7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 657 .loc 1 7259 16 is_stmt 0 view .LVU223 658 00a2 46F00106 orr r6, r6, #1 659 .LVL65: 7262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 660 .loc 1 7262 5 is_stmt 1 view .LVU224 661 00a6 4FF48071 mov r1, #256 662 00aa D161 str r1, [r2, #28] 7264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 663 .loc 1 7264 5 view .LVU225 664 .LVL66: 7264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 665 .loc 1 7264 12 is_stmt 0 view .LVU226 666 00ac 0125 movs r5, #1 667 .LVL67: 668 .L55: 7268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 669 .loc 1 7268 3 is_stmt 1 view .LVU227 7268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 670 .loc 1 7268 6 is_stmt 0 view .LVU228 671 00ae 13F4806F tst r3, #1024 672 00b2 06D0 beq .L56 7270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 673 .loc 1 7270 5 is_stmt 1 view .LVU229 7270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 674 .loc 1 7270 16 is_stmt 0 view .LVU230 675 00b4 46F00806 orr r6, r6, #8 676 .LVL68: 7273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 677 .loc 1 7273 5 is_stmt 1 view .LVU231 678 00b8 2268 ldr r2, [r4] 679 00ba 4FF48061 mov r1, #1024 680 00be D161 str r1, [r2, #28] ARM GAS /tmp/ccN54YTb.s page 147 7275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 681 .loc 1 7275 5 view .LVU232 682 .LVL69: 7275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 683 .loc 1 7275 12 is_stmt 0 view .LVU233 684 00c0 0125 movs r5, #1 685 .LVL70: 686 .L56: 7279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 687 .loc 1 7279 3 is_stmt 1 view .LVU234 7279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 688 .loc 1 7279 6 is_stmt 0 view .LVU235 689 00c2 13F4007F tst r3, #512 690 00c6 24D0 beq .L57 7281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 691 .loc 1 7281 5 is_stmt 1 view .LVU236 7281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 692 .loc 1 7281 16 is_stmt 0 view .LVU237 693 00c8 46F00206 orr r6, r6, #2 694 .LVL71: 7284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 695 .loc 1 7284 5 is_stmt 1 view .LVU238 696 00cc 2368 ldr r3, [r4] 697 .LVL72: 7284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 698 .loc 1 7284 5 is_stmt 0 view .LVU239 699 00ce 4FF40072 mov r2, #512 700 00d2 DA61 str r2, [r3, #28] 7286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 701 .loc 1 7286 5 is_stmt 1 view .LVU240 702 .LVL73: 7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 703 .loc 1 7289 3 view .LVU241 7286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 704 .loc 1 7286 12 is_stmt 0 view .LVU242 705 00d4 0125 movs r5, #1 706 .LVL74: 707 .L58: 7292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 708 .loc 1 7292 5 is_stmt 1 view .LVU243 709 00d6 2046 mov r0, r4 710 00d8 FFF7FEFF bl I2C_Flush_TXDR 711 .LVL75: 7295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 712 .loc 1 7295 5 view .LVU244 713 00dc 2268 ldr r2, [r4] 714 00de 5368 ldr r3, [r2, #4] 715 00e0 23F0FF73 bic r3, r3, #33423360 716 00e4 23F48B33 bic r3, r3, #71168 717 00e8 23F4FF73 bic r3, r3, #510 718 00ec 23F00103 bic r3, r3, #1 719 00f0 5360 str r3, [r2, #4] 7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 720 .loc 1 7297 5 view .LVU245 7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 721 .loc 1 7297 9 is_stmt 0 view .LVU246 722 00f2 636C ldr r3, [r4, #68] ARM GAS /tmp/ccN54YTb.s page 148 7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 723 .loc 1 7297 21 view .LVU247 724 00f4 3343 orrs r3, r3, r6 725 00f6 6364 str r3, [r4, #68] 7298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 726 .loc 1 7298 5 is_stmt 1 view .LVU248 7298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 727 .loc 1 7298 17 is_stmt 0 view .LVU249 728 00f8 2023 movs r3, #32 729 00fa 84F84130 strb r3, [r4, #65] 7299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 730 .loc 1 7299 5 is_stmt 1 view .LVU250 7299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 731 .loc 1 7299 16 is_stmt 0 view .LVU251 732 00fe 0023 movs r3, #0 733 0100 84F84230 strb r3, [r4, #66] 7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 734 .loc 1 7302 5 is_stmt 1 view .LVU252 7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 735 .loc 1 7302 5 view .LVU253 736 0104 84F84030 strb r3, [r4, #64] 737 .L59: 7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 738 .loc 1 7302 5 discriminator 1 view .LVU254 7305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 739 .loc 1 7305 3 view .LVU255 7306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 740 .loc 1 7306 1 is_stmt 0 view .LVU256 741 0108 2846 mov r0, r5 742 010a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 743 .LVL76: 744 .L60: 7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 745 .loc 1 7188 21 view .LVU257 746 010e 0025 movs r5, #0 747 0110 C2E7 b .L44 748 .LVL77: 749 .L57: 7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 750 .loc 1 7289 3 is_stmt 1 view .LVU258 7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 751 .loc 1 7289 6 is_stmt 0 view .LVU259 752 0112 002D cmp r5, #0 753 0114 F8D0 beq .L59 754 0116 DEE7 b .L58 755 .cfi_endproc 756 .LFE411: 758 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 759 .align 1 760 .syntax unified 761 .thumb 762 .thumb_func 764 I2C_WaitOnTXISFlagUntilTimeout: 765 .LVL78: 766 .LFB408: 7032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 767 .loc 1 7032 1 is_stmt 1 view -0 ARM GAS /tmp/ccN54YTb.s page 149 768 .cfi_startproc 769 @ args = 0, pretend = 0, frame = 0 770 @ frame_needed = 0, uses_anonymous_args = 0 7032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 771 .loc 1 7032 1 is_stmt 0 view .LVU261 772 0000 70B5 push {r4, r5, r6, lr} 773 .cfi_def_cfa_offset 16 774 .cfi_offset 4, -16 775 .cfi_offset 5, -12 776 .cfi_offset 6, -8 777 .cfi_offset 14, -4 778 0002 0446 mov r4, r0 779 0004 0D46 mov r5, r1 780 0006 1646 mov r6, r2 7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 781 .loc 1 7033 3 is_stmt 1 view .LVU262 782 .LVL79: 783 .L66: 7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 784 .loc 1 7033 50 view .LVU263 7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 785 .loc 1 7033 10 is_stmt 0 view .LVU264 786 0008 2368 ldr r3, [r4] 787 000a 9B69 ldr r3, [r3, #24] 7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 788 .loc 1 7033 50 view .LVU265 789 000c 13F0020F tst r3, #2 790 0010 22D1 bne .L71 7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 791 .loc 1 7036 5 is_stmt 1 view .LVU266 7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 792 .loc 1 7036 9 is_stmt 0 view .LVU267 793 0012 3246 mov r2, r6 794 0014 2946 mov r1, r5 795 0016 2046 mov r0, r4 796 0018 FFF7FEFF bl I2C_IsErrorOccurred 797 .LVL80: 7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 798 .loc 1 7036 8 discriminator 1 view .LVU268 799 001c F0B9 cbnz r0, .L69 7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 800 .loc 1 7042 5 is_stmt 1 view .LVU269 7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 801 .loc 1 7042 8 is_stmt 0 view .LVU270 802 001e B5F1FF3F cmp r5, #-1 803 0022 F1D0 beq .L66 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 804 .loc 1 7044 7 is_stmt 1 view .LVU271 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 805 .loc 1 7044 13 is_stmt 0 view .LVU272 806 0024 FFF7FEFF bl HAL_GetTick 807 .LVL81: 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 808 .loc 1 7044 27 discriminator 1 view .LVU273 809 0028 801B subs r0, r0, r6 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 810 .loc 1 7044 10 discriminator 1 view .LVU274 ARM GAS /tmp/ccN54YTb.s page 150 811 002a A842 cmp r0, r5 812 002c 01D8 bhi .L67 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 813 .loc 1 7044 51 discriminator 1 view .LVU275 814 002e 002D cmp r5, #0 815 0030 EAD1 bne .L66 816 .L67: 7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 817 .loc 1 7046 9 is_stmt 1 view .LVU276 7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 818 .loc 1 7046 14 is_stmt 0 view .LVU277 819 0032 2368 ldr r3, [r4] 820 0034 9B69 ldr r3, [r3, #24] 7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 821 .loc 1 7046 12 view .LVU278 822 0036 13F0020F tst r3, #2 823 003a E5D1 bne .L66 7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 824 .loc 1 7048 11 is_stmt 1 view .LVU279 7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 825 .loc 1 7048 15 is_stmt 0 view .LVU280 826 003c 636C ldr r3, [r4, #68] 7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 827 .loc 1 7048 27 view .LVU281 828 003e 43F02003 orr r3, r3, #32 829 0042 6364 str r3, [r4, #68] 7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 830 .loc 1 7049 11 is_stmt 1 view .LVU282 7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 831 .loc 1 7049 23 is_stmt 0 view .LVU283 832 0044 2023 movs r3, #32 833 0046 84F84130 strb r3, [r4, #65] 7050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 834 .loc 1 7050 11 is_stmt 1 view .LVU284 7050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 835 .loc 1 7050 22 is_stmt 0 view .LVU285 836 004a 0023 movs r3, #0 837 004c 84F84230 strb r3, [r4, #66] 7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 838 .loc 1 7053 11 is_stmt 1 view .LVU286 7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 839 .loc 1 7053 11 view .LVU287 840 0050 84F84030 strb r3, [r4, #64] 7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 841 .loc 1 7053 11 view .LVU288 7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 842 .loc 1 7055 11 view .LVU289 7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 843 .loc 1 7055 18 is_stmt 0 view .LVU290 844 0054 0120 movs r0, #1 845 0056 00E0 b .L65 846 .L71: 7060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 847 .loc 1 7060 10 view .LVU291 848 0058 0020 movs r0, #0 849 .L65: 7061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 151 850 .loc 1 7061 1 view .LVU292 851 005a 70BD pop {r4, r5, r6, pc} 852 .LVL82: 853 .L69: 7038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 854 .loc 1 7038 14 view .LVU293 855 005c 0120 movs r0, #1 856 005e FCE7 b .L65 857 .cfi_endproc 858 .LFE408: 860 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 861 .align 1 862 .syntax unified 863 .thumb 864 .thumb_func 866 I2C_WaitOnFlagUntilTimeout: 867 .LVL83: 868 .LFB407: 6992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 869 .loc 1 6992 1 is_stmt 1 view -0 870 .cfi_startproc 871 @ args = 4, pretend = 0, frame = 0 872 @ frame_needed = 0, uses_anonymous_args = 0 6992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 873 .loc 1 6992 1 is_stmt 0 view .LVU295 874 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 875 .cfi_def_cfa_offset 32 876 .cfi_offset 3, -32 877 .cfi_offset 4, -28 878 .cfi_offset 5, -24 879 .cfi_offset 6, -20 880 .cfi_offset 7, -16 881 .cfi_offset 8, -12 882 .cfi_offset 9, -8 883 .cfi_offset 14, -4 884 0004 0546 mov r5, r0 885 0006 8846 mov r8, r1 886 0008 1746 mov r7, r2 887 000a 1E46 mov r6, r3 888 000c DDF82090 ldr r9, [sp, #32] 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 889 .loc 1 6993 3 is_stmt 1 view .LVU296 890 .LVL84: 891 .L75: 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 892 .loc 1 6993 41 view .LVU297 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 893 .loc 1 6993 10 is_stmt 0 view .LVU298 894 0010 2B68 ldr r3, [r5] 895 0012 9C69 ldr r4, [r3, #24] 896 0014 38EA0404 bics r4, r8, r4 897 0018 0CBF ite eq 898 001a 0123 moveq r3, #1 899 001c 0023 movne r3, #0 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 900 .loc 1 6993 41 view .LVU299 901 001e BB42 cmp r3, r7 ARM GAS /tmp/ccN54YTb.s page 152 902 0020 27D1 bne .L80 6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 903 .loc 1 6996 5 is_stmt 1 view .LVU300 6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 904 .loc 1 6996 9 is_stmt 0 view .LVU301 905 0022 4A46 mov r2, r9 906 0024 3146 mov r1, r6 907 0026 2846 mov r0, r5 908 0028 FFF7FEFF bl I2C_IsErrorOccurred 909 .LVL85: 6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 910 .loc 1 6996 8 discriminator 1 view .LVU302 911 002c 20BB cbnz r0, .L78 7002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 912 .loc 1 7002 5 is_stmt 1 view .LVU303 7002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 913 .loc 1 7002 8 is_stmt 0 view .LVU304 914 002e B6F1FF3F cmp r6, #-1 915 0032 EDD0 beq .L75 7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 916 .loc 1 7004 7 is_stmt 1 view .LVU305 7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 917 .loc 1 7004 13 is_stmt 0 view .LVU306 918 0034 FFF7FEFF bl HAL_GetTick 919 .LVL86: 7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 920 .loc 1 7004 27 discriminator 1 view .LVU307 921 0038 A0EB0900 sub r0, r0, r9 7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 922 .loc 1 7004 10 discriminator 1 view .LVU308 923 003c B042 cmp r0, r6 924 003e 01D8 bhi .L76 7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 925 .loc 1 7004 51 discriminator 1 view .LVU309 926 0040 002E cmp r6, #0 927 0042 E5D1 bne .L75 928 .L76: 7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 929 .loc 1 7006 9 is_stmt 1 view .LVU310 7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 930 .loc 1 7006 14 is_stmt 0 view .LVU311 931 0044 2B68 ldr r3, [r5] 932 0046 9B69 ldr r3, [r3, #24] 933 0048 38EA0303 bics r3, r8, r3 934 004c 0CBF ite eq 935 004e 0123 moveq r3, #1 936 0050 0023 movne r3, #0 7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 937 .loc 1 7006 12 view .LVU312 938 0052 BB42 cmp r3, r7 939 0054 DCD1 bne .L75 7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 940 .loc 1 7008 11 is_stmt 1 view .LVU313 7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 941 .loc 1 7008 15 is_stmt 0 view .LVU314 942 0056 6B6C ldr r3, [r5, #68] 7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccN54YTb.s page 153 943 .loc 1 7008 27 view .LVU315 944 0058 43F02003 orr r3, r3, #32 945 005c 6B64 str r3, [r5, #68] 7009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 946 .loc 1 7009 11 is_stmt 1 view .LVU316 7009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 947 .loc 1 7009 23 is_stmt 0 view .LVU317 948 005e 2023 movs r3, #32 949 0060 85F84130 strb r3, [r5, #65] 7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 950 .loc 1 7010 11 is_stmt 1 view .LVU318 7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 951 .loc 1 7010 22 is_stmt 0 view .LVU319 952 0064 0023 movs r3, #0 953 0066 85F84230 strb r3, [r5, #66] 7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 954 .loc 1 7013 11 is_stmt 1 view .LVU320 7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 955 .loc 1 7013 11 view .LVU321 956 006a 85F84030 strb r3, [r5, #64] 7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 957 .loc 1 7013 11 view .LVU322 7014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 958 .loc 1 7014 11 view .LVU323 7014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 959 .loc 1 7014 18 is_stmt 0 view .LVU324 960 006e 0120 movs r0, #1 961 0070 00E0 b .L74 962 .L80: 7019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 963 .loc 1 7019 10 view .LVU325 964 0072 0020 movs r0, #0 965 .L74: 7020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 966 .loc 1 7020 1 view .LVU326 967 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 968 .LVL87: 969 .L78: 6998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 970 .loc 1 6998 14 view .LVU327 971 0078 0120 movs r0, #1 972 007a FBE7 b .L74 973 .cfi_endproc 974 .LFE407: 976 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 977 .align 1 978 .syntax unified 979 .thumb 980 .thumb_func 982 I2C_RequestMemoryWrite: 983 .LVL88: 984 .LFB390: 5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 985 .loc 1 5837 1 is_stmt 1 view -0 986 .cfi_startproc 987 @ args = 8, pretend = 0, frame = 0 988 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccN54YTb.s page 154 5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 989 .loc 1 5837 1 is_stmt 0 view .LVU329 990 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 991 .cfi_def_cfa_offset 24 992 .cfi_offset 4, -24 993 .cfi_offset 5, -20 994 .cfi_offset 6, -16 995 .cfi_offset 7, -12 996 .cfi_offset 8, -8 997 .cfi_offset 14, -4 998 0004 82B0 sub sp, sp, #8 999 .cfi_def_cfa_offset 32 1000 0006 0446 mov r4, r0 1001 0008 9046 mov r8, r2 1002 000a 1D46 mov r5, r3 1003 000c 089E ldr r6, [sp, #32] 1004 000e 099F ldr r7, [sp, #36] 5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1005 .loc 1 5838 3 is_stmt 1 view .LVU330 1006 0010 194B ldr r3, .L90 1007 .LVL89: 5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1008 .loc 1 5838 3 is_stmt 0 view .LVU331 1009 0012 0093 str r3, [sp] 1010 0014 4FF08073 mov r3, #16777216 1011 0018 EAB2 uxtb r2, r5 1012 .LVL90: 5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1013 .loc 1 5838 3 view .LVU332 1014 001a FFF7FEFF bl I2C_TransferConfig 1015 .LVL91: 5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1016 .loc 1 5841 3 is_stmt 1 view .LVU333 5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1017 .loc 1 5841 7 is_stmt 0 view .LVU334 1018 001e 3A46 mov r2, r7 1019 0020 3146 mov r1, r6 1020 0022 2046 mov r0, r4 1021 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1022 .LVL92: 5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1023 .loc 1 5841 6 discriminator 1 view .LVU335 1024 0028 F8B9 cbnz r0, .L85 5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1025 .loc 1 5847 3 is_stmt 1 view .LVU336 5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1026 .loc 1 5847 6 is_stmt 0 view .LVU337 1027 002a 012D cmp r5, #1 1028 002c 0ED1 bne .L83 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1029 .loc 1 5850 5 is_stmt 1 view .LVU338 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1030 .loc 1 5850 9 is_stmt 0 view .LVU339 1031 002e 2368 ldr r3, [r4] 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1032 .loc 1 5850 28 view .LVU340 1033 0030 5FFA88F2 uxtb r2, r8 ARM GAS /tmp/ccN54YTb.s page 155 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1034 .loc 1 5850 26 view .LVU341 1035 0034 9A62 str r2, [r3, #40] 1036 .L84: 5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1037 .loc 1 5869 3 is_stmt 1 view .LVU342 5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1038 .loc 1 5869 7 is_stmt 0 view .LVU343 1039 0036 0097 str r7, [sp] 1040 0038 3346 mov r3, r6 1041 003a 0022 movs r2, #0 1042 003c 8021 movs r1, #128 1043 003e 2046 mov r0, r4 1044 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1045 .LVL93: 5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1046 .loc 1 5869 6 discriminator 1 view .LVU344 1047 0044 A8B9 cbnz r0, .L89 1048 .L82: 5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1049 .loc 1 5875 1 view .LVU345 1050 0046 02B0 add sp, sp, #8 1051 .cfi_remember_state 1052 .cfi_def_cfa_offset 24 1053 @ sp needed 1054 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1055 .LVL94: 1056 .L83: 1057 .cfi_restore_state 5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1058 .loc 1 5856 5 is_stmt 1 view .LVU346 5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1059 .loc 1 5856 9 is_stmt 0 view .LVU347 1060 004c 2368 ldr r3, [r4] 5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1061 .loc 1 5856 28 view .LVU348 1062 004e 4FEA1822 lsr r2, r8, #8 5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1063 .loc 1 5856 26 view .LVU349 1064 0052 9A62 str r2, [r3, #40] 5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1065 .loc 1 5859 5 is_stmt 1 view .LVU350 5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1066 .loc 1 5859 9 is_stmt 0 view .LVU351 1067 0054 3A46 mov r2, r7 1068 0056 3146 mov r1, r6 1069 0058 2046 mov r0, r4 1070 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1071 .LVL95: 5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1072 .loc 1 5859 8 discriminator 1 view .LVU352 1073 005e 30B9 cbnz r0, .L86 5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1074 .loc 1 5865 5 is_stmt 1 view .LVU353 5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1075 .loc 1 5865 9 is_stmt 0 view .LVU354 1076 0060 2368 ldr r3, [r4] ARM GAS /tmp/ccN54YTb.s page 156 5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1077 .loc 1 5865 28 view .LVU355 1078 0062 5FFA88F2 uxtb r2, r8 5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1079 .loc 1 5865 26 view .LVU356 1080 0066 9A62 str r2, [r3, #40] 1081 0068 E5E7 b .L84 1082 .L85: 5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1083 .loc 1 5843 12 view .LVU357 1084 006a 0120 movs r0, #1 1085 006c EBE7 b .L82 1086 .L86: 5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1087 .loc 1 5861 14 view .LVU358 1088 006e 0120 movs r0, #1 1089 0070 E9E7 b .L82 1090 .L89: 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1091 .loc 1 5871 12 view .LVU359 1092 0072 0120 movs r0, #1 1093 0074 E7E7 b .L82 1094 .L91: 1095 0076 00BF .align 2 1096 .L90: 1097 0078 00200080 .word -2147475456 1098 .cfi_endproc 1099 .LFE390: 1101 .section .text.I2C_RequestMemoryRead,"ax",%progbits 1102 .align 1 1103 .syntax unified 1104 .thumb 1105 .thumb_func 1107 I2C_RequestMemoryRead: 1108 .LVL96: 1109 .LFB391: 5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1110 .loc 1 5892 1 is_stmt 1 view -0 1111 .cfi_startproc 1112 @ args = 8, pretend = 0, frame = 0 1113 @ frame_needed = 0, uses_anonymous_args = 0 5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1114 .loc 1 5892 1 is_stmt 0 view .LVU361 1115 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1116 .cfi_def_cfa_offset 24 1117 .cfi_offset 4, -24 1118 .cfi_offset 5, -20 1119 .cfi_offset 6, -16 1120 .cfi_offset 7, -12 1121 .cfi_offset 8, -8 1122 .cfi_offset 14, -4 1123 0004 82B0 sub sp, sp, #8 1124 .cfi_def_cfa_offset 32 1125 0006 0446 mov r4, r0 1126 0008 9046 mov r8, r2 1127 000a 1D46 mov r5, r3 1128 000c 089E ldr r6, [sp, #32] ARM GAS /tmp/ccN54YTb.s page 157 1129 000e 099F ldr r7, [sp, #36] 5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1130 .loc 1 5893 3 is_stmt 1 view .LVU362 1131 0010 184B ldr r3, .L101 1132 .LVL97: 5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1133 .loc 1 5893 3 is_stmt 0 view .LVU363 1134 0012 0093 str r3, [sp] 1135 0014 0023 movs r3, #0 1136 0016 EAB2 uxtb r2, r5 1137 .LVL98: 5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1138 .loc 1 5893 3 view .LVU364 1139 0018 FFF7FEFF bl I2C_TransferConfig 1140 .LVL99: 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1141 .loc 1 5896 3 is_stmt 1 view .LVU365 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1142 .loc 1 5896 7 is_stmt 0 view .LVU366 1143 001c 3A46 mov r2, r7 1144 001e 3146 mov r1, r6 1145 0020 2046 mov r0, r4 1146 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1147 .LVL100: 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1148 .loc 1 5896 6 discriminator 1 view .LVU367 1149 0026 F8B9 cbnz r0, .L96 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1150 .loc 1 5902 3 is_stmt 1 view .LVU368 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1151 .loc 1 5902 6 is_stmt 0 view .LVU369 1152 0028 012D cmp r5, #1 1153 002a 0ED1 bne .L94 5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1154 .loc 1 5905 5 is_stmt 1 view .LVU370 5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1155 .loc 1 5905 9 is_stmt 0 view .LVU371 1156 002c 2368 ldr r3, [r4] 5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1157 .loc 1 5905 28 view .LVU372 1158 002e 5FFA88F2 uxtb r2, r8 5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1159 .loc 1 5905 26 view .LVU373 1160 0032 9A62 str r2, [r3, #40] 1161 .L95: 5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1162 .loc 1 5924 3 is_stmt 1 view .LVU374 5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1163 .loc 1 5924 7 is_stmt 0 view .LVU375 1164 0034 0097 str r7, [sp] 1165 0036 3346 mov r3, r6 1166 0038 0022 movs r2, #0 1167 003a 4021 movs r1, #64 1168 003c 2046 mov r0, r4 1169 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1170 .LVL101: 5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 158 1171 .loc 1 5924 6 discriminator 1 view .LVU376 1172 0042 A8B9 cbnz r0, .L100 1173 .L93: 5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1174 .loc 1 5930 1 view .LVU377 1175 0044 02B0 add sp, sp, #8 1176 .cfi_remember_state 1177 .cfi_def_cfa_offset 24 1178 @ sp needed 1179 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1180 .LVL102: 1181 .L94: 1182 .cfi_restore_state 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1183 .loc 1 5911 5 is_stmt 1 view .LVU378 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1184 .loc 1 5911 9 is_stmt 0 view .LVU379 1185 004a 2368 ldr r3, [r4] 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1186 .loc 1 5911 28 view .LVU380 1187 004c 4FEA1822 lsr r2, r8, #8 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1188 .loc 1 5911 26 view .LVU381 1189 0050 9A62 str r2, [r3, #40] 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1190 .loc 1 5914 5 is_stmt 1 view .LVU382 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1191 .loc 1 5914 9 is_stmt 0 view .LVU383 1192 0052 3A46 mov r2, r7 1193 0054 3146 mov r1, r6 1194 0056 2046 mov r0, r4 1195 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1196 .LVL103: 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1197 .loc 1 5914 8 discriminator 1 view .LVU384 1198 005c 30B9 cbnz r0, .L97 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1199 .loc 1 5920 5 is_stmt 1 view .LVU385 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1200 .loc 1 5920 9 is_stmt 0 view .LVU386 1201 005e 2368 ldr r3, [r4] 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1202 .loc 1 5920 28 view .LVU387 1203 0060 5FFA88F2 uxtb r2, r8 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1204 .loc 1 5920 26 view .LVU388 1205 0064 9A62 str r2, [r3, #40] 1206 0066 E5E7 b .L95 1207 .L96: 5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1208 .loc 1 5898 12 view .LVU389 1209 0068 0120 movs r0, #1 1210 006a EBE7 b .L93 1211 .L97: 5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1212 .loc 1 5916 14 view .LVU390 1213 006c 0120 movs r0, #1 ARM GAS /tmp/ccN54YTb.s page 159 1214 006e E9E7 b .L93 1215 .L100: 5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1216 .loc 1 5926 12 view .LVU391 1217 0070 0120 movs r0, #1 1218 0072 E7E7 b .L93 1219 .L102: 1220 .align 2 1221 .L101: 1222 0074 00200080 .word -2147475456 1223 .cfi_endproc 1224 .LFE391: 1226 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1227 .align 1 1228 .syntax unified 1229 .thumb 1230 .thumb_func 1232 I2C_WaitOnSTOPFlagUntilTimeout: 1233 .LVL104: 1234 .LFB409: 7073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1235 .loc 1 7073 1 is_stmt 1 view -0 1236 .cfi_startproc 1237 @ args = 0, pretend = 0, frame = 0 1238 @ frame_needed = 0, uses_anonymous_args = 0 7073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1239 .loc 1 7073 1 is_stmt 0 view .LVU393 1240 0000 70B5 push {r4, r5, r6, lr} 1241 .cfi_def_cfa_offset 16 1242 .cfi_offset 4, -16 1243 .cfi_offset 5, -12 1244 .cfi_offset 6, -8 1245 .cfi_offset 14, -4 1246 0002 0446 mov r4, r0 1247 0004 0D46 mov r5, r1 1248 0006 1646 mov r6, r2 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1249 .loc 1 7074 3 is_stmt 1 view .LVU394 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1250 .loc 1 7074 9 is_stmt 0 view .LVU395 1251 0008 04E0 b .L104 1252 .LVL105: 1253 .L106: 7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1254 .loc 1 7085 7 is_stmt 1 view .LVU396 7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1255 .loc 1 7085 12 is_stmt 0 view .LVU397 1256 000a 2368 ldr r3, [r4] 1257 000c 9B69 ldr r3, [r3, #24] 7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1258 .loc 1 7085 10 view .LVU398 1259 000e 13F0200F tst r3, #32 1260 0012 12D0 beq .L110 1261 .L104: 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1262 .loc 1 7074 51 is_stmt 1 view .LVU399 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 160 1263 .loc 1 7074 10 is_stmt 0 view .LVU400 1264 0014 2368 ldr r3, [r4] 1265 0016 9B69 ldr r3, [r3, #24] 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1266 .loc 1 7074 51 view .LVU401 1267 0018 13F0200F tst r3, #32 1268 001c 1BD1 bne .L111 7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1269 .loc 1 7077 5 is_stmt 1 view .LVU402 7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1270 .loc 1 7077 9 is_stmt 0 view .LVU403 1271 001e 3246 mov r2, r6 1272 0020 2946 mov r1, r5 1273 0022 2046 mov r0, r4 1274 0024 FFF7FEFF bl I2C_IsErrorOccurred 1275 .LVL106: 7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1276 .loc 1 7077 8 discriminator 1 view .LVU404 1277 0028 B8B9 cbnz r0, .L108 7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1278 .loc 1 7083 5 is_stmt 1 view .LVU405 7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1279 .loc 1 7083 11 is_stmt 0 view .LVU406 1280 002a FFF7FEFF bl HAL_GetTick 1281 .LVL107: 7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1282 .loc 1 7083 25 discriminator 1 view .LVU407 1283 002e 801B subs r0, r0, r6 7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1284 .loc 1 7083 8 discriminator 1 view .LVU408 1285 0030 A842 cmp r0, r5 1286 0032 EAD8 bhi .L106 7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1287 .loc 1 7083 49 discriminator 1 view .LVU409 1288 0034 002D cmp r5, #0 1289 0036 EDD1 bne .L104 1290 0038 E7E7 b .L106 1291 .L110: 7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1292 .loc 1 7087 9 is_stmt 1 view .LVU410 7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1293 .loc 1 7087 13 is_stmt 0 view .LVU411 1294 003a 636C ldr r3, [r4, #68] 7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1295 .loc 1 7087 25 view .LVU412 1296 003c 43F02003 orr r3, r3, #32 1297 0040 6364 str r3, [r4, #68] 7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1298 .loc 1 7088 9 is_stmt 1 view .LVU413 7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1299 .loc 1 7088 21 is_stmt 0 view .LVU414 1300 0042 2023 movs r3, #32 1301 0044 84F84130 strb r3, [r4, #65] 7089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1302 .loc 1 7089 9 is_stmt 1 view .LVU415 7089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1303 .loc 1 7089 20 is_stmt 0 view .LVU416 ARM GAS /tmp/ccN54YTb.s page 161 1304 0048 0023 movs r3, #0 1305 004a 84F84230 strb r3, [r4, #66] 7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1306 .loc 1 7092 9 is_stmt 1 view .LVU417 7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1307 .loc 1 7092 9 view .LVU418 1308 004e 84F84030 strb r3, [r4, #64] 7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1309 .loc 1 7092 9 view .LVU419 7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1310 .loc 1 7094 9 view .LVU420 7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1311 .loc 1 7094 16 is_stmt 0 view .LVU421 1312 0052 0120 movs r0, #1 1313 0054 00E0 b .L105 1314 .L111: 7098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1315 .loc 1 7098 10 view .LVU422 1316 0056 0020 movs r0, #0 1317 .L105: 7099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1318 .loc 1 7099 1 view .LVU423 1319 0058 70BD pop {r4, r5, r6, pc} 1320 .LVL108: 1321 .L108: 7079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1322 .loc 1 7079 14 view .LVU424 1323 005a 0120 movs r0, #1 1324 005c FCE7 b .L105 1325 .cfi_endproc 1326 .LFE409: 1328 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1329 .align 1 1330 .syntax unified 1331 .thumb 1332 .thumb_func 1334 I2C_WaitOnRXNEFlagUntilTimeout: 1335 .LVL109: 1336 .LFB410: 7111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1337 .loc 1 7111 1 is_stmt 1 view -0 1338 .cfi_startproc 1339 @ args = 0, pretend = 0, frame = 0 1340 @ frame_needed = 0, uses_anonymous_args = 0 7111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1341 .loc 1 7111 1 is_stmt 0 view .LVU426 1342 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1343 .cfi_def_cfa_offset 24 1344 .cfi_offset 3, -24 1345 .cfi_offset 4, -20 1346 .cfi_offset 5, -16 1347 .cfi_offset 6, -12 1348 .cfi_offset 7, -8 1349 .cfi_offset 14, -4 1350 0002 0446 mov r4, r0 1351 0004 0E46 mov r6, r1 1352 0006 1746 mov r7, r2 ARM GAS /tmp/ccN54YTb.s page 162 7112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1353 .loc 1 7112 3 is_stmt 1 view .LVU427 1354 .LVL110: 7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1355 .loc 1 7114 3 view .LVU428 7112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1356 .loc 1 7112 21 is_stmt 0 view .LVU429 1357 0008 0025 movs r5, #0 7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1358 .loc 1 7114 9 view .LVU430 1359 000a 18E0 b .L113 1360 .LVL111: 1361 .L116: 7156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1362 .loc 1 7156 9 is_stmt 1 view .LVU431 7156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1363 .loc 1 7156 25 is_stmt 0 view .LVU432 1364 000c 0023 movs r3, #0 1365 000e 6364 str r3, [r4, #68] 1366 .LVL112: 1367 .L115: 7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1368 .loc 1 7161 5 is_stmt 1 view .LVU433 7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1369 .loc 1 7161 12 is_stmt 0 view .LVU434 1370 0010 FFF7FEFF bl HAL_GetTick 1371 .LVL113: 7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1372 .loc 1 7161 26 discriminator 1 view .LVU435 1373 0014 C01B subs r0, r0, r7 7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1374 .loc 1 7161 8 discriminator 1 view .LVU436 1375 0016 B042 cmp r0, r6 1376 0018 00D8 bhi .L117 7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1377 .loc 1 7161 50 discriminator 2 view .LVU437 1378 001a 86B9 cbnz r6, .L113 1379 .L117: 7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1380 .loc 1 7161 70 discriminator 3 view .LVU438 1381 001c 7DB9 cbnz r5, .L113 7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1382 .loc 1 7163 7 is_stmt 1 view .LVU439 7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1383 .loc 1 7163 12 is_stmt 0 view .LVU440 1384 001e 2368 ldr r3, [r4] 1385 0020 9B69 ldr r3, [r3, #24] 7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1386 .loc 1 7163 10 view .LVU441 1387 0022 13F0040F tst r3, #4 1388 0026 0AD1 bne .L113 7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1389 .loc 1 7165 9 is_stmt 1 view .LVU442 7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1390 .loc 1 7165 13 is_stmt 0 view .LVU443 1391 0028 636C ldr r3, [r4, #68] 7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccN54YTb.s page 163 1392 .loc 1 7165 25 view .LVU444 1393 002a 43F02003 orr r3, r3, #32 1394 002e 6364 str r3, [r4, #68] 7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1395 .loc 1 7166 9 is_stmt 1 view .LVU445 7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1396 .loc 1 7166 21 is_stmt 0 view .LVU446 1397 0030 2023 movs r3, #32 1398 0032 84F84130 strb r3, [r4, #65] 7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1399 .loc 1 7169 9 is_stmt 1 view .LVU447 7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1400 .loc 1 7169 9 view .LVU448 1401 0036 0023 movs r3, #0 1402 0038 84F84030 strb r3, [r4, #64] 7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1403 .loc 1 7169 9 view .LVU449 7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1404 .loc 1 7171 9 view .LVU450 1405 .LVL114: 7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1406 .loc 1 7171 16 is_stmt 0 view .LVU451 1407 003c 0125 movs r5, #1 1408 .LVL115: 1409 .L113: 7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1410 .loc 1 7114 61 is_stmt 1 view .LVU452 7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1411 .loc 1 7114 11 is_stmt 0 view .LVU453 1412 003e 2368 ldr r3, [r4] 1413 0040 9B69 ldr r3, [r3, #24] 7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1414 .loc 1 7114 61 view .LVU454 1415 0042 13F0040F tst r3, #4 1416 0046 2ED1 bne .L119 7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1417 .loc 1 7114 61 discriminator 1 view .LVU455 1418 0048 6DBB cbnz r5, .L119 7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1419 .loc 1 7117 5 is_stmt 1 view .LVU456 7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1420 .loc 1 7117 9 is_stmt 0 view .LVU457 1421 004a 3A46 mov r2, r7 1422 004c 3146 mov r1, r6 1423 004e 2046 mov r0, r4 1424 0050 FFF7FEFF bl I2C_IsErrorOccurred 1425 .LVL116: 7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1426 .loc 1 7117 8 discriminator 1 view .LVU458 1427 0054 00B1 cbz r0, .L114 7119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1428 .loc 1 7119 14 view .LVU459 1429 0056 0125 movs r5, #1 1430 .LVL117: 1431 .L114: 7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1432 .loc 1 7123 5 is_stmt 1 view .LVU460 ARM GAS /tmp/ccN54YTb.s page 164 7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1433 .loc 1 7123 10 is_stmt 0 view .LVU461 1434 0058 2368 ldr r3, [r4] 1435 005a 9A69 ldr r2, [r3, #24] 7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1436 .loc 1 7123 8 view .LVU462 1437 005c 12F0200F tst r2, #32 1438 0060 D6D0 beq .L115 7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1439 .loc 1 7123 59 discriminator 1 view .LVU463 1440 0062 002D cmp r5, #0 1441 0064 D4D1 bne .L115 7127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1442 .loc 1 7127 7 is_stmt 1 view .LVU464 7127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1443 .loc 1 7127 12 is_stmt 0 view .LVU465 1444 0066 9A69 ldr r2, [r3, #24] 7131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1445 .loc 1 7131 9 is_stmt 1 view .LVU466 7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1446 .loc 1 7135 7 view .LVU467 7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1447 .loc 1 7135 11 is_stmt 0 view .LVU468 1448 0068 9A69 ldr r2, [r3, #24] 7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1449 .loc 1 7135 10 view .LVU469 1450 006a 12F0100F tst r2, #16 1451 006e CDD0 beq .L116 7137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 1452 .loc 1 7137 9 is_stmt 1 view .LVU470 1453 0070 1022 movs r2, #16 1454 0072 DA61 str r2, [r3, #28] 7138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1455 .loc 1 7138 9 view .LVU471 7138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1456 .loc 1 7138 25 is_stmt 0 view .LVU472 1457 0074 0423 movs r3, #4 1458 0076 6364 str r3, [r4, #68] 7141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1459 .loc 1 7141 9 is_stmt 1 view .LVU473 1460 0078 2368 ldr r3, [r4] 1461 007a 2022 movs r2, #32 1462 007c DA61 str r2, [r3, #28] 7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1463 .loc 1 7144 9 view .LVU474 1464 007e 2168 ldr r1, [r4] 1465 0080 4B68 ldr r3, [r1, #4] 1466 0082 23F0FF73 bic r3, r3, #33423360 1467 0086 23F48B33 bic r3, r3, #71168 1468 008a 23F4FF73 bic r3, r3, #510 1469 008e 23F00103 bic r3, r3, #1 1470 0092 4B60 str r3, [r1, #4] 7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1471 .loc 1 7146 9 view .LVU475 7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1472 .loc 1 7146 21 is_stmt 0 view .LVU476 1473 0094 84F84120 strb r2, [r4, #65] ARM GAS /tmp/ccN54YTb.s page 165 7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1474 .loc 1 7147 9 is_stmt 1 view .LVU477 7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1475 .loc 1 7147 20 is_stmt 0 view .LVU478 1476 0098 0023 movs r3, #0 1477 009a 84F84230 strb r3, [r4, #66] 7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1478 .loc 1 7150 9 is_stmt 1 view .LVU479 7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1479 .loc 1 7150 9 view .LVU480 1480 009e 84F84030 strb r3, [r4, #64] 7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1481 .loc 1 7150 9 view .LVU481 7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1482 .loc 1 7152 9 view .LVU482 1483 .LVL118: 7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1484 .loc 1 7152 16 is_stmt 0 view .LVU483 1485 00a2 0125 movs r5, #1 1486 00a4 B4E7 b .L115 1487 .LVL119: 1488 .L119: 7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1489 .loc 1 7175 3 is_stmt 1 view .LVU484 7176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1490 .loc 1 7176 1 is_stmt 0 view .LVU485 1491 00a6 2846 mov r0, r5 1492 00a8 F8BD pop {r3, r4, r5, r6, r7, pc} 7176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1493 .loc 1 7176 1 view .LVU486 1494 .cfi_endproc 1495 .LFE410: 1497 .section .text.HAL_I2C_MspInit,"ax",%progbits 1498 .align 1 1499 .weak HAL_I2C_MspInit 1500 .syntax unified 1501 .thumb 1502 .thumb_func 1504 HAL_I2C_MspInit: 1505 .LVL120: 1506 .LFB337: 697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1507 .loc 1 697 1 is_stmt 1 view -0 1508 .cfi_startproc 1509 @ args = 0, pretend = 0, frame = 0 1510 @ frame_needed = 0, uses_anonymous_args = 0 1511 @ link register save eliminated. 699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1512 .loc 1 699 3 view .LVU488 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1513 .loc 1 704 1 is_stmt 0 view .LVU489 1514 0000 7047 bx lr 1515 .cfi_endproc 1516 .LFE337: 1518 .section .text.HAL_I2C_Init,"ax",%progbits 1519 .align 1 1520 .global HAL_I2C_Init ARM GAS /tmp/ccN54YTb.s page 166 1521 .syntax unified 1522 .thumb 1523 .thumb_func 1525 HAL_I2C_Init: 1526 .LVL121: 1527 .LFB335: 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1528 .loc 1 536 1 is_stmt 1 view -0 1529 .cfi_startproc 1530 @ args = 0, pretend = 0, frame = 0 1531 @ frame_needed = 0, uses_anonymous_args = 0 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1532 .loc 1 538 3 view .LVU491 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1533 .loc 1 538 6 is_stmt 0 view .LVU492 1534 0000 0028 cmp r0, #0 1535 0002 5DD0 beq .L131 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1536 .loc 1 536 1 view .LVU493 1537 0004 10B5 push {r4, lr} 1538 .cfi_def_cfa_offset 8 1539 .cfi_offset 4, -8 1540 .cfi_offset 14, -4 1541 0006 0446 mov r4, r0 544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1542 .loc 1 544 3 is_stmt 1 view .LVU494 545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1543 .loc 1 545 3 view .LVU495 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1544 .loc 1 546 3 view .LVU496 547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1545 .loc 1 547 3 view .LVU497 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1546 .loc 1 548 3 view .LVU498 549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1547 .loc 1 549 3 view .LVU499 550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1548 .loc 1 550 3 view .LVU500 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1549 .loc 1 551 3 view .LVU501 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1550 .loc 1 553 3 view .LVU502 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1551 .loc 1 553 11 is_stmt 0 view .LVU503 1552 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1553 .loc 1 553 6 view .LVU504 1554 000c 002B cmp r3, #0 1555 000e 46D0 beq .L136 1556 .LVL122: 1557 .L126: 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1558 .loc 1 584 3 is_stmt 1 view .LVU505 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1559 .loc 1 584 15 is_stmt 0 view .LVU506 1560 0010 2423 movs r3, #36 1561 0012 84F84130 strb r3, [r4, #65] ARM GAS /tmp/ccN54YTb.s page 167 587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1562 .loc 1 587 3 is_stmt 1 view .LVU507 1563 0016 2268 ldr r2, [r4] 1564 0018 1368 ldr r3, [r2] 1565 001a 23F00103 bic r3, r3, #1 1566 001e 1360 str r3, [r2] 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1567 .loc 1 591 3 view .LVU508 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1568 .loc 1 591 39 is_stmt 0 view .LVU509 1569 0020 6368 ldr r3, [r4, #4] 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1570 .loc 1 591 7 view .LVU510 1571 0022 2268 ldr r2, [r4] 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1572 .loc 1 591 47 view .LVU511 1573 0024 23F07063 bic r3, r3, #251658240 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1574 .loc 1 591 27 view .LVU512 1575 0028 1361 str r3, [r2, #16] 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1576 .loc 1 595 3 is_stmt 1 view .LVU513 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1577 .loc 1 595 7 is_stmt 0 view .LVU514 1578 002a 2268 ldr r2, [r4] 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1579 .loc 1 595 17 view .LVU515 1580 002c 9368 ldr r3, [r2, #8] 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1581 .loc 1 595 24 view .LVU516 1582 002e 23F40043 bic r3, r3, #32768 1583 0032 9360 str r3, [r2, #8] 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1584 .loc 1 598 3 is_stmt 1 view .LVU517 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1585 .loc 1 598 17 is_stmt 0 view .LVU518 1586 0034 E368 ldr r3, [r4, #12] 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1587 .loc 1 598 6 view .LVU519 1588 0036 012B cmp r3, #1 1589 0038 36D0 beq .L137 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1590 .loc 1 604 5 is_stmt 1 view .LVU520 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1591 .loc 1 604 75 is_stmt 0 view .LVU521 1592 003a A368 ldr r3, [r4, #8] 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1593 .loc 1 604 9 view .LVU522 1594 003c 2268 ldr r2, [r4] 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1595 .loc 1 604 63 view .LVU523 1596 003e 43F40443 orr r3, r3, #33792 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1597 .loc 1 604 26 view .LVU524 1598 0042 9360 str r3, [r2, #8] 1599 .L128: 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 168 1600 .loc 1 609 3 is_stmt 1 view .LVU525 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1601 .loc 1 609 17 is_stmt 0 view .LVU526 1602 0044 E368 ldr r3, [r4, #12] 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1603 .loc 1 609 6 view .LVU527 1604 0046 022B cmp r3, #2 1605 0048 34D0 beq .L138 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1606 .loc 1 616 5 is_stmt 1 view .LVU528 1607 004a 2268 ldr r2, [r4] 1608 004c 5368 ldr r3, [r2, #4] 1609 004e 23F40063 bic r3, r3, #2048 1610 0052 5360 str r3, [r2, #4] 1611 .L130: 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1612 .loc 1 619 3 view .LVU529 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1613 .loc 1 619 7 is_stmt 0 view .LVU530 1614 0054 2268 ldr r2, [r4] 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1615 .loc 1 619 17 view .LVU531 1616 0056 5168 ldr r1, [r2, #4] 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1617 .loc 1 619 23 view .LVU532 1618 0058 1A4B ldr r3, .L139 1619 005a 0B43 orrs r3, r3, r1 1620 005c 5360 str r3, [r2, #4] 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1621 .loc 1 623 3 is_stmt 1 view .LVU533 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1622 .loc 1 623 7 is_stmt 0 view .LVU534 1623 005e 2268 ldr r2, [r4] 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1624 .loc 1 623 17 view .LVU535 1625 0060 D368 ldr r3, [r2, #12] 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1626 .loc 1 623 24 view .LVU536 1627 0062 23F40043 bic r3, r3, #32768 1628 0066 D360 str r3, [r2, #12] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1629 .loc 1 626 3 is_stmt 1 view .LVU537 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1630 .loc 1 626 37 is_stmt 0 view .LVU538 1631 0068 2369 ldr r3, [r4, #16] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1632 .loc 1 626 66 view .LVU539 1633 006a 6269 ldr r2, [r4, #20] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1634 .loc 1 626 54 view .LVU540 1635 006c 1343 orrs r3, r3, r2 627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1636 .loc 1 627 38 view .LVU541 1637 006e A169 ldr r1, [r4, #24] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1638 .loc 1 626 7 view .LVU542 1639 0070 2268 ldr r2, [r4] ARM GAS /tmp/ccN54YTb.s page 169 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1640 .loc 1 626 79 view .LVU543 1641 0072 43EA0123 orr r3, r3, r1, lsl #8 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1642 .loc 1 626 24 view .LVU544 1643 0076 D360 str r3, [r2, #12] 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1644 .loc 1 631 3 is_stmt 1 view .LVU545 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1645 .loc 1 631 36 is_stmt 0 view .LVU546 1646 0078 E369 ldr r3, [r4, #28] 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1647 .loc 1 631 65 view .LVU547 1648 007a 216A ldr r1, [r4, #32] 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1649 .loc 1 631 7 view .LVU548 1650 007c 2268 ldr r2, [r4] 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1651 .loc 1 631 53 view .LVU549 1652 007e 0B43 orrs r3, r3, r1 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1653 .loc 1 631 23 view .LVU550 1654 0080 1360 str r3, [r2] 634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1655 .loc 1 634 3 is_stmt 1 view .LVU551 1656 0082 2268 ldr r2, [r4] 1657 0084 1368 ldr r3, [r2] 1658 0086 43F00103 orr r3, r3, #1 1659 008a 1360 str r3, [r2] 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1660 .loc 1 636 3 view .LVU552 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1661 .loc 1 636 19 is_stmt 0 view .LVU553 1662 008c 0020 movs r0, #0 1663 008e 6064 str r0, [r4, #68] 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1664 .loc 1 637 3 is_stmt 1 view .LVU554 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1665 .loc 1 637 15 is_stmt 0 view .LVU555 1666 0090 2023 movs r3, #32 1667 0092 84F84130 strb r3, [r4, #65] 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1668 .loc 1 638 3 is_stmt 1 view .LVU556 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1669 .loc 1 638 23 is_stmt 0 view .LVU557 1670 0096 2063 str r0, [r4, #48] 639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1671 .loc 1 639 3 is_stmt 1 view .LVU558 639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1672 .loc 1 639 14 is_stmt 0 view .LVU559 1673 0098 84F84200 strb r0, [r4, #66] 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1674 .loc 1 641 3 is_stmt 1 view .LVU560 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1675 .loc 1 642 1 is_stmt 0 view .LVU561 1676 009c 10BD pop {r4, pc} 1677 .LVL123: ARM GAS /tmp/ccN54YTb.s page 170 1678 .L136: 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1679 .loc 1 556 5 is_stmt 1 view .LVU562 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1680 .loc 1 556 16 is_stmt 0 view .LVU563 1681 009e 80F84030 strb r3, [r0, #64] 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1682 .loc 1 580 5 is_stmt 1 view .LVU564 1683 00a2 FFF7FEFF bl HAL_I2C_MspInit 1684 .LVL124: 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1685 .loc 1 580 5 is_stmt 0 view .LVU565 1686 00a6 B3E7 b .L126 1687 .L137: 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1688 .loc 1 600 5 is_stmt 1 view .LVU566 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1689 .loc 1 600 56 is_stmt 0 view .LVU567 1690 00a8 A368 ldr r3, [r4, #8] 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1691 .loc 1 600 9 view .LVU568 1692 00aa 2268 ldr r2, [r4] 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1693 .loc 1 600 44 view .LVU569 1694 00ac 43F40043 orr r3, r3, #32768 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1695 .loc 1 600 26 view .LVU570 1696 00b0 9360 str r3, [r2, #8] 1697 00b2 C7E7 b .L128 1698 .L138: 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1699 .loc 1 611 5 is_stmt 1 view .LVU571 1700 00b4 2268 ldr r2, [r4] 1701 00b6 5368 ldr r3, [r2, #4] 1702 00b8 43F40063 orr r3, r3, #2048 1703 00bc 5360 str r3, [r2, #4] 1704 00be C9E7 b .L130 1705 .LVL125: 1706 .L131: 1707 .cfi_def_cfa_offset 0 1708 .cfi_restore 4 1709 .cfi_restore 14 540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1710 .loc 1 540 12 is_stmt 0 view .LVU572 1711 00c0 0120 movs r0, #1 1712 .LVL126: 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1713 .loc 1 642 1 view .LVU573 1714 00c2 7047 bx lr 1715 .L140: 1716 .align 2 1717 .L139: 1718 00c4 00800002 .word 33587200 1719 .cfi_endproc 1720 .LFE335: 1722 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1723 .align 1 ARM GAS /tmp/ccN54YTb.s page 171 1724 .weak HAL_I2C_MspDeInit 1725 .syntax unified 1726 .thumb 1727 .thumb_func 1729 HAL_I2C_MspDeInit: 1730 .LVL127: 1731 .LFB338: 713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1732 .loc 1 713 1 is_stmt 1 view -0 1733 .cfi_startproc 1734 @ args = 0, pretend = 0, frame = 0 1735 @ frame_needed = 0, uses_anonymous_args = 0 1736 @ link register save eliminated. 715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1737 .loc 1 715 3 view .LVU575 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1738 .loc 1 720 1 is_stmt 0 view .LVU576 1739 0000 7047 bx lr 1740 .cfi_endproc 1741 .LFE338: 1743 .section .text.HAL_I2C_DeInit,"ax",%progbits 1744 .align 1 1745 .global HAL_I2C_DeInit 1746 .syntax unified 1747 .thumb 1748 .thumb_func 1750 HAL_I2C_DeInit: 1751 .LVL128: 1752 .LFB336: 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1753 .loc 1 651 1 is_stmt 1 view -0 1754 .cfi_startproc 1755 @ args = 0, pretend = 0, frame = 0 1756 @ frame_needed = 0, uses_anonymous_args = 0 653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1757 .loc 1 653 3 view .LVU578 653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1758 .loc 1 653 6 is_stmt 0 view .LVU579 1759 0000 A8B1 cbz r0, .L144 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1760 .loc 1 651 1 view .LVU580 1761 0002 10B5 push {r4, lr} 1762 .cfi_def_cfa_offset 8 1763 .cfi_offset 4, -8 1764 .cfi_offset 14, -4 1765 0004 0446 mov r4, r0 659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1766 .loc 1 659 3 is_stmt 1 view .LVU581 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1767 .loc 1 661 3 view .LVU582 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1768 .loc 1 661 15 is_stmt 0 view .LVU583 1769 0006 2423 movs r3, #36 1770 0008 80F84130 strb r3, [r0, #65] 664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1771 .loc 1 664 3 is_stmt 1 view .LVU584 1772 000c 0268 ldr r2, [r0] ARM GAS /tmp/ccN54YTb.s page 172 1773 000e 1368 ldr r3, [r2] 1774 0010 23F00103 bic r3, r3, #1 1775 0014 1360 str r3, [r2] 676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1776 .loc 1 676 3 view .LVU585 1777 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1778 .LVL129: 679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1779 .loc 1 679 3 view .LVU586 679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1780 .loc 1 679 19 is_stmt 0 view .LVU587 1781 001a 0020 movs r0, #0 1782 001c 6064 str r0, [r4, #68] 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1783 .loc 1 680 3 is_stmt 1 view .LVU588 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1784 .loc 1 680 15 is_stmt 0 view .LVU589 1785 001e 84F84100 strb r0, [r4, #65] 681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1786 .loc 1 681 3 is_stmt 1 view .LVU590 681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1787 .loc 1 681 23 is_stmt 0 view .LVU591 1788 0022 2063 str r0, [r4, #48] 682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1789 .loc 1 682 3 is_stmt 1 view .LVU592 682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1790 .loc 1 682 14 is_stmt 0 view .LVU593 1791 0024 84F84200 strb r0, [r4, #66] 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1792 .loc 1 685 3 is_stmt 1 view .LVU594 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1793 .loc 1 685 3 view .LVU595 1794 0028 84F84000 strb r0, [r4, #64] 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1795 .loc 1 685 3 view .LVU596 687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1796 .loc 1 687 3 view .LVU597 688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1797 .loc 1 688 1 is_stmt 0 view .LVU598 1798 002c 10BD pop {r4, pc} 1799 .LVL130: 1800 .L144: 1801 .cfi_def_cfa_offset 0 1802 .cfi_restore 4 1803 .cfi_restore 14 655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1804 .loc 1 655 12 view .LVU599 1805 002e 0120 movs r0, #1 1806 .LVL131: 688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1807 .loc 1 688 1 view .LVU600 1808 0030 7047 bx lr 1809 .cfi_endproc 1810 .LFE336: 1812 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1813 .align 1 1814 .global HAL_I2C_Master_Transmit ARM GAS /tmp/ccN54YTb.s page 173 1815 .syntax unified 1816 .thumb 1817 .thumb_func 1819 HAL_I2C_Master_Transmit: 1820 .LVL132: 1821 .LFB339: 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1822 .loc 1 1121 1 is_stmt 1 view -0 1823 .cfi_startproc 1824 @ args = 4, pretend = 0, frame = 0 1825 @ frame_needed = 0, uses_anonymous_args = 0 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1826 .loc 1 1121 1 is_stmt 0 view .LVU602 1827 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1828 .cfi_def_cfa_offset 32 1829 .cfi_offset 4, -32 1830 .cfi_offset 5, -28 1831 .cfi_offset 6, -24 1832 .cfi_offset 7, -20 1833 .cfi_offset 8, -16 1834 .cfi_offset 9, -12 1835 .cfi_offset 10, -8 1836 .cfi_offset 14, -4 1837 0004 82B0 sub sp, sp, #8 1838 .cfi_def_cfa_offset 40 1839 0006 0F46 mov r7, r1 1840 0008 0A9E ldr r6, [sp, #40] 1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1841 .loc 1 1122 3 is_stmt 1 view .LVU603 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1842 .loc 1 1123 3 view .LVU604 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1843 .loc 1 1125 3 view .LVU605 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1844 .loc 1 1125 11 is_stmt 0 view .LVU606 1845 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1846 .LVL133: 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1847 .loc 1 1125 6 view .LVU607 1848 000e 2029 cmp r1, #32 1849 0010 40F0B780 bne .L159 1850 0014 0446 mov r4, r0 1851 0016 9146 mov r9, r2 1852 0018 9846 mov r8, r3 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1853 .loc 1 1128 5 is_stmt 1 view .LVU608 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1854 .loc 1 1128 5 view .LVU609 1855 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1856 .LVL134: 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1857 .loc 1 1128 5 is_stmt 0 view .LVU610 1858 001e 012B cmp r3, #1 1859 0020 00F0B380 beq .L160 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1860 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU611 1861 0024 4FF0010A mov r10, #1 ARM GAS /tmp/ccN54YTb.s page 174 1862 0028 80F840A0 strb r10, [r0, #64] 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1863 .loc 1 1128 5 view .LVU612 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1864 .loc 1 1131 5 view .LVU613 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1865 .loc 1 1131 17 is_stmt 0 view .LVU614 1866 002c FFF7FEFF bl HAL_GetTick 1867 .LVL135: 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1868 .loc 1 1131 17 view .LVU615 1869 0030 0546 mov r5, r0 1870 .LVL136: 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1871 .loc 1 1133 5 is_stmt 1 view .LVU616 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1872 .loc 1 1133 9 is_stmt 0 view .LVU617 1873 0032 0090 str r0, [sp] 1874 0034 1923 movs r3, #25 1875 0036 5246 mov r2, r10 1876 0038 4FF40041 mov r1, #32768 1877 003c 2046 mov r0, r4 1878 .LVL137: 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1879 .loc 1 1133 9 view .LVU618 1880 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1881 .LVL138: 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1882 .loc 1 1133 8 discriminator 1 view .LVU619 1883 0042 0028 cmp r0, #0 1884 0044 40F0A380 bne .L161 1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1885 .loc 1 1138 5 is_stmt 1 view .LVU620 1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1886 .loc 1 1138 21 is_stmt 0 view .LVU621 1887 0048 2123 movs r3, #33 1888 004a 84F84130 strb r3, [r4, #65] 1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1889 .loc 1 1139 5 is_stmt 1 view .LVU622 1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1890 .loc 1 1139 21 is_stmt 0 view .LVU623 1891 004e 1023 movs r3, #16 1892 0050 84F84230 strb r3, [r4, #66] 1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1893 .loc 1 1140 5 is_stmt 1 view .LVU624 1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1894 .loc 1 1140 21 is_stmt 0 view .LVU625 1895 0054 0023 movs r3, #0 1896 0056 6364 str r3, [r4, #68] 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1897 .loc 1 1143 5 is_stmt 1 view .LVU626 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1898 .loc 1 1143 21 is_stmt 0 view .LVU627 1899 0058 C4F82490 str r9, [r4, #36] 1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1900 .loc 1 1144 5 is_stmt 1 view .LVU628 1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; ARM GAS /tmp/ccN54YTb.s page 175 1901 .loc 1 1144 21 is_stmt 0 view .LVU629 1902 005c A4F82A80 strh r8, [r4, #42] @ movhi 1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1903 .loc 1 1145 5 is_stmt 1 view .LVU630 1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1904 .loc 1 1145 21 is_stmt 0 view .LVU631 1905 0060 6363 str r3, [r4, #52] 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1906 .loc 1 1147 5 is_stmt 1 view .LVU632 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1907 .loc 1 1147 13 is_stmt 0 view .LVU633 1908 0062 638D ldrh r3, [r4, #42] 1909 0064 9BB2 uxth r3, r3 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1910 .loc 1 1147 8 view .LVU634 1911 0066 FF2B cmp r3, #255 1912 0068 1ED9 bls .L151 1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1913 .loc 1 1149 7 is_stmt 1 view .LVU635 1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1914 .loc 1 1149 22 is_stmt 0 view .LVU636 1915 006a FF23 movs r3, #255 1916 006c 2385 strh r3, [r4, #40] @ movhi 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1917 .loc 1 1150 7 is_stmt 1 view .LVU637 1918 .LVL139: 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1919 .loc 1 1150 16 is_stmt 0 view .LVU638 1920 006e 4FF08073 mov r3, #16777216 1921 .LVL140: 1922 .L152: 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1923 .loc 1 1158 5 is_stmt 1 view .LVU639 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1924 .loc 1 1158 13 is_stmt 0 view .LVU640 1925 0072 228D ldrh r2, [r4, #40] 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1926 .loc 1 1158 8 view .LVU641 1927 0074 EAB1 cbz r2, .L153 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1928 .loc 1 1162 7 is_stmt 1 view .LVU642 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1929 .loc 1 1162 11 is_stmt 0 view .LVU643 1930 0076 2268 ldr r2, [r4] 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1931 .loc 1 1162 30 view .LVU644 1932 0078 99F80010 ldrb r1, [r9] @ zero_extendqisi2 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1933 .loc 1 1162 28 view .LVU645 1934 007c 9162 str r1, [r2, #40] 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1935 .loc 1 1165 7 is_stmt 1 view .LVU646 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1936 .loc 1 1165 11 is_stmt 0 view .LVU647 1937 007e 626A ldr r2, [r4, #36] 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1938 .loc 1 1165 21 view .LVU648 ARM GAS /tmp/ccN54YTb.s page 176 1939 0080 0132 adds r2, r2, #1 1940 0082 6262 str r2, [r4, #36] 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1941 .loc 1 1167 7 is_stmt 1 view .LVU649 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1942 .loc 1 1167 11 is_stmt 0 view .LVU650 1943 0084 628D ldrh r2, [r4, #42] 1944 0086 92B2 uxth r2, r2 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1945 .loc 1 1167 22 view .LVU651 1946 0088 013A subs r2, r2, #1 1947 008a 92B2 uxth r2, r2 1948 008c 6285 strh r2, [r4, #42] @ movhi 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1949 .loc 1 1168 7 is_stmt 1 view .LVU652 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1950 .loc 1 1168 11 is_stmt 0 view .LVU653 1951 008e 228D ldrh r2, [r4, #40] 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1952 .loc 1 1168 21 view .LVU654 1953 0090 013A subs r2, r2, #1 1954 0092 92B2 uxth r2, r2 1955 0094 2285 strh r2, [r4, #40] @ movhi 1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1956 .loc 1 1172 7 is_stmt 1 view .LVU655 1957 0096 0132 adds r2, r2, #1 1958 0098 4149 ldr r1, .L167 1959 009a 0091 str r1, [sp] 1960 009c D2B2 uxtb r2, r2 1961 009e 3946 mov r1, r7 1962 00a0 2046 mov r0, r4 1963 00a2 FFF7FEFF bl I2C_TransferConfig 1964 .LVL141: 1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1965 .loc 1 1172 7 is_stmt 0 view .LVU656 1966 00a6 18E0 b .L157 1967 .LVL142: 1968 .L151: 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1969 .loc 1 1154 7 is_stmt 1 view .LVU657 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1970 .loc 1 1154 28 is_stmt 0 view .LVU658 1971 00a8 638D ldrh r3, [r4, #42] 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1972 .loc 1 1154 22 view .LVU659 1973 00aa 2385 strh r3, [r4, #40] @ movhi 1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1974 .loc 1 1155 7 is_stmt 1 view .LVU660 1975 .LVL143: 1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1976 .loc 1 1155 16 is_stmt 0 view .LVU661 1977 00ac 4FF00073 mov r3, #33554432 1978 00b0 DFE7 b .L152 1979 .LVL144: 1980 .L153: 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1981 .loc 1 1179 7 is_stmt 1 view .LVU662 ARM GAS /tmp/ccN54YTb.s page 177 1982 00b2 3B49 ldr r1, .L167 1983 00b4 0091 str r1, [sp] 1984 00b6 D2B2 uxtb r2, r2 1985 00b8 3946 mov r1, r7 1986 00ba 2046 mov r0, r4 1987 00bc FFF7FEFF bl I2C_TransferConfig 1988 .LVL145: 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1989 .loc 1 1179 7 is_stmt 0 view .LVU663 1990 00c0 0BE0 b .L157 1991 .L156: 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 11 is_stmt 1 view .LVU664 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1993 .loc 1 1215 32 is_stmt 0 view .LVU665 1994 00c2 628D ldrh r2, [r4, #42] 1995 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, 1996 .loc 1 1215 26 view .LVU666 1997 00c6 2285 strh r2, [r4, #40] @ movhi 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1998 .loc 1 1216 11 is_stmt 1 view .LVU667 1999 00c8 0023 movs r3, #0 2000 00ca 0093 str r3, [sp] 2001 00cc 4FF00073 mov r3, #33554432 2002 00d0 D2B2 uxtb r2, r2 2003 00d2 3946 mov r1, r7 2004 00d4 2046 mov r0, r4 2005 00d6 FFF7FEFF bl I2C_TransferConfig 2006 .LVL146: 2007 .L157: 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2008 .loc 1 1183 28 view .LVU668 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2009 .loc 1 1183 16 is_stmt 0 view .LVU669 2010 00da 638D ldrh r3, [r4, #42] 2011 00dc 9BB2 uxth r3, r3 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2012 .loc 1 1183 28 view .LVU670 2013 00de 002B cmp r3, #0 2014 00e0 33D0 beq .L166 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2015 .loc 1 1186 7 is_stmt 1 view .LVU671 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2016 .loc 1 1186 11 is_stmt 0 view .LVU672 2017 00e2 2A46 mov r2, r5 2018 00e4 3146 mov r1, r6 2019 00e6 2046 mov r0, r4 2020 00e8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2021 .LVL147: 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2022 .loc 1 1186 10 discriminator 1 view .LVU673 2023 00ec 0028 cmp r0, #0 2024 00ee 50D1 bne .L162 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2025 .loc 1 1191 7 is_stmt 1 view .LVU674 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 178 2026 .loc 1 1191 35 is_stmt 0 view .LVU675 2027 00f0 626A ldr r2, [r4, #36] 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2028 .loc 1 1191 11 view .LVU676 2029 00f2 2368 ldr r3, [r4] 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2030 .loc 1 1191 30 view .LVU677 2031 00f4 1278 ldrb r2, [r2] @ zero_extendqisi2 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2032 .loc 1 1191 28 view .LVU678 2033 00f6 9A62 str r2, [r3, #40] 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2034 .loc 1 1194 7 is_stmt 1 view .LVU679 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2035 .loc 1 1194 11 is_stmt 0 view .LVU680 2036 00f8 636A ldr r3, [r4, #36] 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2037 .loc 1 1194 21 view .LVU681 2038 00fa 0133 adds r3, r3, #1 2039 00fc 6362 str r3, [r4, #36] 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2040 .loc 1 1196 7 is_stmt 1 view .LVU682 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2041 .loc 1 1196 11 is_stmt 0 view .LVU683 2042 00fe 638D ldrh r3, [r4, #42] 2043 0100 9BB2 uxth r3, r3 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2044 .loc 1 1196 22 view .LVU684 2045 0102 013B subs r3, r3, #1 2046 0104 9BB2 uxth r3, r3 2047 0106 6385 strh r3, [r4, #42] @ movhi 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2048 .loc 1 1197 7 is_stmt 1 view .LVU685 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2049 .loc 1 1197 11 is_stmt 0 view .LVU686 2050 0108 238D ldrh r3, [r4, #40] 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2051 .loc 1 1197 21 view .LVU687 2052 010a 013B subs r3, r3, #1 2053 010c 9BB2 uxth r3, r3 2054 010e 2385 strh r3, [r4, #40] @ movhi 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2055 .loc 1 1199 7 is_stmt 1 view .LVU688 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2056 .loc 1 1199 16 is_stmt 0 view .LVU689 2057 0110 628D ldrh r2, [r4, #42] 2058 0112 92B2 uxth r2, r2 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2059 .loc 1 1199 10 view .LVU690 2060 0114 002A cmp r2, #0 2061 0116 E0D0 beq .L157 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2062 .loc 1 1199 35 discriminator 1 view .LVU691 2063 0118 002B cmp r3, #0 2064 011a DED1 bne .L157 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2065 .loc 1 1202 9 is_stmt 1 view .LVU692 ARM GAS /tmp/ccN54YTb.s page 179 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2066 .loc 1 1202 13 is_stmt 0 view .LVU693 2067 011c 0095 str r5, [sp] 2068 011e 3346 mov r3, r6 2069 0120 0022 movs r2, #0 2070 0122 8021 movs r1, #128 2071 0124 2046 mov r0, r4 2072 0126 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2073 .LVL148: 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2074 .loc 1 1202 12 discriminator 1 view .LVU694 2075 012a A0BB cbnz r0, .L163 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2076 .loc 1 1207 9 is_stmt 1 view .LVU695 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2077 .loc 1 1207 17 is_stmt 0 view .LVU696 2078 012c 638D ldrh r3, [r4, #42] 2079 012e 9BB2 uxth r3, r3 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2080 .loc 1 1207 12 view .LVU697 2081 0130 FF2B cmp r3, #255 2082 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, 2083 .loc 1 1209 11 is_stmt 1 view .LVU698 1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2084 .loc 1 1209 26 is_stmt 0 view .LVU699 2085 0134 FF22 movs r2, #255 2086 0136 2285 strh r2, [r4, #40] @ movhi 1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2087 .loc 1 1210 11 is_stmt 1 view .LVU700 2088 0138 0023 movs r3, #0 2089 013a 0093 str r3, [sp] 2090 013c 4FF08073 mov r3, #16777216 2091 0140 3946 mov r1, r7 2092 0142 2046 mov r0, r4 2093 0144 FFF7FEFF bl I2C_TransferConfig 2094 .LVL149: 2095 0148 C7E7 b .L157 2096 .L166: 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2097 .loc 1 1224 5 view .LVU701 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2098 .loc 1 1224 9 is_stmt 0 view .LVU702 2099 014a 2A46 mov r2, r5 2100 014c 3146 mov r1, r6 2101 014e 2046 mov r0, r4 2102 0150 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2103 .LVL150: 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2104 .loc 1 1224 8 discriminator 1 view .LVU703 2105 0154 08BB cbnz r0, .L164 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2106 .loc 1 1230 5 is_stmt 1 view .LVU704 2107 0156 2368 ldr r3, [r4] 2108 0158 2022 movs r2, #32 2109 015a DA61 str r2, [r3, #28] 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 180 2110 .loc 1 1233 5 view .LVU705 2111 015c 2168 ldr r1, [r4] 2112 015e 4B68 ldr r3, [r1, #4] 2113 0160 23F0FF73 bic r3, r3, #33423360 2114 0164 23F48B33 bic r3, r3, #71168 2115 0168 23F4FF73 bic r3, r3, #510 2116 016c 23F00103 bic r3, r3, #1 2117 0170 4B60 str r3, [r1, #4] 1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2118 .loc 1 1235 5 view .LVU706 1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2119 .loc 1 1235 17 is_stmt 0 view .LVU707 2120 0172 84F84120 strb r2, [r4, #65] 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2121 .loc 1 1236 5 is_stmt 1 view .LVU708 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2122 .loc 1 1236 17 is_stmt 0 view .LVU709 2123 0176 0023 movs r3, #0 2124 0178 84F84230 strb r3, [r4, #66] 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2125 .loc 1 1239 5 is_stmt 1 view .LVU710 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2126 .loc 1 1239 5 view .LVU711 2127 017c 84F84030 strb r3, [r4, #64] 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2128 .loc 1 1239 5 view .LVU712 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2129 .loc 1 1241 5 view .LVU713 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2130 .loc 1 1241 12 is_stmt 0 view .LVU714 2131 0180 00E0 b .L150 2132 .LVL151: 2133 .L159: 1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2134 .loc 1 1245 12 view .LVU715 2135 0182 0220 movs r0, #2 2136 .LVL152: 2137 .L150: 1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2138 .loc 1 1247 1 view .LVU716 2139 0184 02B0 add sp, sp, #8 2140 .cfi_remember_state 2141 .cfi_def_cfa_offset 32 2142 @ sp needed 2143 0186 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2144 .LVL153: 2145 .L160: 2146 .cfi_restore_state 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2147 .loc 1 1128 5 discriminator 1 view .LVU717 2148 018a 0220 movs r0, #2 2149 .LVL154: 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2150 .loc 1 1128 5 discriminator 1 view .LVU718 2151 018c FAE7 b .L150 2152 .LVL155: 2153 .L161: ARM GAS /tmp/ccN54YTb.s page 181 1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2154 .loc 1 1135 14 view .LVU719 2155 018e 0120 movs r0, #1 2156 0190 F8E7 b .L150 2157 .LVL156: 2158 .L162: 1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2159 .loc 1 1188 16 view .LVU720 2160 0192 0120 movs r0, #1 2161 0194 F6E7 b .L150 2162 .L163: 1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2163 .loc 1 1204 18 view .LVU721 2164 0196 0120 movs r0, #1 2165 0198 F4E7 b .L150 2166 .L164: 1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2167 .loc 1 1226 14 view .LVU722 2168 019a 0120 movs r0, #1 2169 019c F2E7 b .L150 2170 .L168: 2171 019e 00BF .align 2 2172 .L167: 2173 01a0 00200080 .word -2147475456 2174 .cfi_endproc 2175 .LFE339: 2177 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2178 .align 1 2179 .global HAL_I2C_Master_Receive 2180 .syntax unified 2181 .thumb 2182 .thumb_func 2184 HAL_I2C_Master_Receive: 2185 .LVL157: 2186 .LFB340: 1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2187 .loc 1 1262 1 is_stmt 1 view -0 2188 .cfi_startproc 2189 @ args = 4, pretend = 0, frame = 0 2190 @ frame_needed = 0, uses_anonymous_args = 0 1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2191 .loc 1 1262 1 is_stmt 0 view .LVU724 2192 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2193 .cfi_def_cfa_offset 32 2194 .cfi_offset 4, -32 2195 .cfi_offset 5, -28 2196 .cfi_offset 6, -24 2197 .cfi_offset 7, -20 2198 .cfi_offset 8, -16 2199 .cfi_offset 9, -12 2200 .cfi_offset 10, -8 2201 .cfi_offset 14, -4 2202 0004 82B0 sub sp, sp, #8 2203 .cfi_def_cfa_offset 40 2204 0006 0F46 mov r7, r1 2205 0008 0A9E ldr r6, [sp, #40] 1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 182 2206 .loc 1 1263 3 is_stmt 1 view .LVU725 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2207 .loc 1 1265 3 view .LVU726 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2208 .loc 1 1265 11 is_stmt 0 view .LVU727 2209 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 2210 .LVL158: 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2211 .loc 1 1265 6 view .LVU728 2212 000e 2029 cmp r1, #32 2213 0010 40F0A280 bne .L177 2214 0014 0446 mov r4, r0 2215 0016 9146 mov r9, r2 2216 0018 9846 mov r8, r3 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2217 .loc 1 1268 5 is_stmt 1 view .LVU729 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2218 .loc 1 1268 5 view .LVU730 2219 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2220 .LVL159: 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2221 .loc 1 1268 5 is_stmt 0 view .LVU731 2222 001e 012B cmp r3, #1 2223 0020 00F09E80 beq .L178 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2224 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU732 2225 0024 4FF0010A mov r10, #1 2226 0028 80F840A0 strb r10, [r0, #64] 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2227 .loc 1 1268 5 view .LVU733 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2228 .loc 1 1271 5 view .LVU734 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2229 .loc 1 1271 17 is_stmt 0 view .LVU735 2230 002c FFF7FEFF bl HAL_GetTick 2231 .LVL160: 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2232 .loc 1 1271 17 view .LVU736 2233 0030 0546 mov r5, r0 2234 .LVL161: 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2235 .loc 1 1273 5 is_stmt 1 view .LVU737 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2236 .loc 1 1273 9 is_stmt 0 view .LVU738 2237 0032 0090 str r0, [sp] 2238 0034 1923 movs r3, #25 2239 0036 5246 mov r2, r10 2240 0038 4FF40041 mov r1, #32768 2241 003c 2046 mov r0, r4 2242 .LVL162: 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2243 .loc 1 1273 9 view .LVU739 2244 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2245 .LVL163: 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2246 .loc 1 1273 8 discriminator 1 view .LVU740 2247 0042 0028 cmp r0, #0 ARM GAS /tmp/ccN54YTb.s page 183 2248 0044 40F08E80 bne .L179 1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2249 .loc 1 1278 5 is_stmt 1 view .LVU741 1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2250 .loc 1 1278 21 is_stmt 0 view .LVU742 2251 0048 2223 movs r3, #34 2252 004a 84F84130 strb r3, [r4, #65] 1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2253 .loc 1 1279 5 is_stmt 1 view .LVU743 1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2254 .loc 1 1279 21 is_stmt 0 view .LVU744 2255 004e 1023 movs r3, #16 2256 0050 84F84230 strb r3, [r4, #66] 1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2257 .loc 1 1280 5 is_stmt 1 view .LVU745 1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2258 .loc 1 1280 21 is_stmt 0 view .LVU746 2259 0054 0023 movs r3, #0 2260 0056 6364 str r3, [r4, #68] 1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2261 .loc 1 1283 5 is_stmt 1 view .LVU747 1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2262 .loc 1 1283 21 is_stmt 0 view .LVU748 2263 0058 C4F82490 str r9, [r4, #36] 1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2264 .loc 1 1284 5 is_stmt 1 view .LVU749 1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2265 .loc 1 1284 21 is_stmt 0 view .LVU750 2266 005c A4F82A80 strh r8, [r4, #42] @ movhi 1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2267 .loc 1 1285 5 is_stmt 1 view .LVU751 1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2268 .loc 1 1285 21 is_stmt 0 view .LVU752 2269 0060 6363 str r3, [r4, #52] 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2270 .loc 1 1289 5 is_stmt 1 view .LVU753 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2271 .loc 1 1289 13 is_stmt 0 view .LVU754 2272 0062 638D ldrh r3, [r4, #42] 2273 0064 9BB2 uxth r3, r3 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2274 .loc 1 1289 8 view .LVU755 2275 0066 FF2B cmp r3, #255 2276 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, 2277 .loc 1 1291 7 is_stmt 1 view .LVU756 1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2278 .loc 1 1291 22 is_stmt 0 view .LVU757 2279 006a FF22 movs r2, #255 2280 006c 2285 strh r2, [r4, #40] @ movhi 1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2281 .loc 1 1292 7 is_stmt 1 view .LVU758 2282 006e 414B ldr r3, .L185 2283 0070 0093 str r3, [sp] 2284 0072 4FF08073 mov r3, #16777216 2285 0076 3946 mov r1, r7 2286 0078 2046 mov r0, r4 ARM GAS /tmp/ccN54YTb.s page 184 2287 007a FFF7FEFF bl I2C_TransferConfig 2288 .LVL164: 2289 007e 18E0 b .L175 2290 .L171: 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 7 view .LVU759 1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2292 .loc 1 1297 28 is_stmt 0 view .LVU760 2293 0080 628D ldrh r2, [r4, #42] 2294 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, 2295 .loc 1 1297 22 view .LVU761 2296 0084 2285 strh r2, [r4, #40] @ movhi 1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2297 .loc 1 1298 7 is_stmt 1 view .LVU762 2298 0086 3B4B ldr r3, .L185 2299 0088 0093 str r3, [sp] 2300 008a 4FF00073 mov r3, #33554432 2301 008e D2B2 uxtb r2, r2 2302 0090 3946 mov r1, r7 2303 0092 2046 mov r0, r4 2304 0094 FFF7FEFF bl I2C_TransferConfig 2305 .LVL165: 2306 0098 0BE0 b .L175 2307 .L174: 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 11 view .LVU763 1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2309 .loc 1 1335 32 is_stmt 0 view .LVU764 2310 009a 628D ldrh r2, [r4, #42] 2311 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, 2312 .loc 1 1335 26 view .LVU765 2313 009e 2285 strh r2, [r4, #40] @ movhi 1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2314 .loc 1 1336 11 is_stmt 1 view .LVU766 2315 00a0 0023 movs r3, #0 2316 00a2 0093 str r3, [sp] 2317 00a4 4FF00073 mov r3, #33554432 2318 00a8 D2B2 uxtb r2, r2 2319 00aa 3946 mov r1, r7 2320 00ac 2046 mov r0, r4 2321 00ae FFF7FEFF bl I2C_TransferConfig 2322 .LVL166: 2323 .L175: 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2324 .loc 1 1302 28 view .LVU767 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2325 .loc 1 1302 16 is_stmt 0 view .LVU768 2326 00b2 638D ldrh r3, [r4, #42] 2327 00b4 9BB2 uxth r3, r3 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2328 .loc 1 1302 28 view .LVU769 2329 00b6 002B cmp r3, #0 2330 00b8 32D0 beq .L184 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2331 .loc 1 1305 7 is_stmt 1 view .LVU770 ARM GAS /tmp/ccN54YTb.s page 185 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2332 .loc 1 1305 11 is_stmt 0 view .LVU771 2333 00ba 2A46 mov r2, r5 2334 00bc 3146 mov r1, r6 2335 00be 2046 mov r0, r4 2336 00c0 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2337 .LVL167: 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2338 .loc 1 1305 10 discriminator 1 view .LVU772 2339 00c4 0028 cmp r0, #0 2340 00c6 4FD1 bne .L180 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2341 .loc 1 1311 7 is_stmt 1 view .LVU773 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2342 .loc 1 1311 38 is_stmt 0 view .LVU774 2343 00c8 2368 ldr r3, [r4] 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2344 .loc 1 1311 48 view .LVU775 2345 00ca 5A6A ldr r2, [r3, #36] 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2346 .loc 1 1311 12 view .LVU776 2347 00cc 636A ldr r3, [r4, #36] 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2348 .loc 1 1311 23 view .LVU777 2349 00ce 1A70 strb r2, [r3] 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2350 .loc 1 1314 7 is_stmt 1 view .LVU778 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2351 .loc 1 1314 11 is_stmt 0 view .LVU779 2352 00d0 636A ldr r3, [r4, #36] 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2353 .loc 1 1314 21 view .LVU780 2354 00d2 0133 adds r3, r3, #1 2355 00d4 6362 str r3, [r4, #36] 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2356 .loc 1 1316 7 is_stmt 1 view .LVU781 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2357 .loc 1 1316 11 is_stmt 0 view .LVU782 2358 00d6 228D ldrh r2, [r4, #40] 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2359 .loc 1 1316 21 view .LVU783 2360 00d8 013A subs r2, r2, #1 2361 00da 92B2 uxth r2, r2 2362 00dc 2285 strh r2, [r4, #40] @ movhi 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2363 .loc 1 1317 7 is_stmt 1 view .LVU784 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2364 .loc 1 1317 11 is_stmt 0 view .LVU785 2365 00de 638D ldrh r3, [r4, #42] 2366 00e0 9BB2 uxth r3, r3 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2367 .loc 1 1317 22 view .LVU786 2368 00e2 013B subs r3, r3, #1 2369 00e4 9BB2 uxth r3, r3 2370 00e6 6385 strh r3, [r4, #42] @ movhi 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2371 .loc 1 1319 7 is_stmt 1 view .LVU787 ARM GAS /tmp/ccN54YTb.s page 186 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2372 .loc 1 1319 16 is_stmt 0 view .LVU788 2373 00e8 638D ldrh r3, [r4, #42] 2374 00ea 9BB2 uxth r3, r3 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2375 .loc 1 1319 10 view .LVU789 2376 00ec 002B cmp r3, #0 2377 00ee E0D0 beq .L175 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2378 .loc 1 1319 35 discriminator 1 view .LVU790 2379 00f0 002A cmp r2, #0 2380 00f2 DED1 bne .L175 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2381 .loc 1 1322 9 is_stmt 1 view .LVU791 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2382 .loc 1 1322 13 is_stmt 0 view .LVU792 2383 00f4 0095 str r5, [sp] 2384 00f6 3346 mov r3, r6 2385 00f8 8021 movs r1, #128 2386 00fa 2046 mov r0, r4 2387 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2388 .LVL168: 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2389 .loc 1 1322 12 discriminator 1 view .LVU793 2390 0100 A0BB cbnz r0, .L181 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2391 .loc 1 1327 9 is_stmt 1 view .LVU794 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2392 .loc 1 1327 17 is_stmt 0 view .LVU795 2393 0102 638D ldrh r3, [r4, #42] 2394 0104 9BB2 uxth r3, r3 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2395 .loc 1 1327 12 view .LVU796 2396 0106 FF2B cmp r3, #255 2397 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, 2398 .loc 1 1329 11 is_stmt 1 view .LVU797 1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2399 .loc 1 1329 26 is_stmt 0 view .LVU798 2400 010a FF22 movs r2, #255 2401 010c 2285 strh r2, [r4, #40] @ movhi 1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2402 .loc 1 1330 11 is_stmt 1 view .LVU799 2403 010e 0023 movs r3, #0 2404 0110 0093 str r3, [sp] 2405 0112 4FF08073 mov r3, #16777216 2406 0116 3946 mov r1, r7 2407 0118 2046 mov r0, r4 2408 011a FFF7FEFF bl I2C_TransferConfig 2409 .LVL169: 2410 011e C8E7 b .L175 2411 .L184: 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2412 .loc 1 1344 5 view .LVU800 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2413 .loc 1 1344 9 is_stmt 0 view .LVU801 2414 0120 2A46 mov r2, r5 ARM GAS /tmp/ccN54YTb.s page 187 2415 0122 3146 mov r1, r6 2416 0124 2046 mov r0, r4 2417 0126 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2418 .LVL170: 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2419 .loc 1 1344 8 discriminator 1 view .LVU802 2420 012a 08BB cbnz r0, .L182 1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2421 .loc 1 1350 5 is_stmt 1 view .LVU803 2422 012c 2368 ldr r3, [r4] 2423 012e 2022 movs r2, #32 2424 0130 DA61 str r2, [r3, #28] 1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2425 .loc 1 1353 5 view .LVU804 2426 0132 2168 ldr r1, [r4] 2427 0134 4B68 ldr r3, [r1, #4] 2428 0136 23F0FF73 bic r3, r3, #33423360 2429 013a 23F48B33 bic r3, r3, #71168 2430 013e 23F4FF73 bic r3, r3, #510 2431 0142 23F00103 bic r3, r3, #1 2432 0146 4B60 str r3, [r1, #4] 1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2433 .loc 1 1355 5 view .LVU805 1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2434 .loc 1 1355 17 is_stmt 0 view .LVU806 2435 0148 84F84120 strb r2, [r4, #65] 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2436 .loc 1 1356 5 is_stmt 1 view .LVU807 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2437 .loc 1 1356 17 is_stmt 0 view .LVU808 2438 014c 0023 movs r3, #0 2439 014e 84F84230 strb r3, [r4, #66] 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2440 .loc 1 1359 5 is_stmt 1 view .LVU809 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2441 .loc 1 1359 5 view .LVU810 2442 0152 84F84030 strb r3, [r4, #64] 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2443 .loc 1 1359 5 view .LVU811 1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2444 .loc 1 1361 5 view .LVU812 1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2445 .loc 1 1361 12 is_stmt 0 view .LVU813 2446 0156 00E0 b .L170 2447 .LVL171: 2448 .L177: 1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2449 .loc 1 1365 12 view .LVU814 2450 0158 0220 movs r0, #2 2451 .LVL172: 2452 .L170: 1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2453 .loc 1 1367 1 view .LVU815 2454 015a 02B0 add sp, sp, #8 2455 .cfi_remember_state 2456 .cfi_def_cfa_offset 32 2457 @ sp needed ARM GAS /tmp/ccN54YTb.s page 188 2458 015c BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2459 .LVL173: 2460 .L178: 2461 .cfi_restore_state 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2462 .loc 1 1268 5 discriminator 1 view .LVU816 2463 0160 0220 movs r0, #2 2464 .LVL174: 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2465 .loc 1 1268 5 discriminator 1 view .LVU817 2466 0162 FAE7 b .L170 2467 .LVL175: 2468 .L179: 1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2469 .loc 1 1275 14 view .LVU818 2470 0164 0120 movs r0, #1 2471 0166 F8E7 b .L170 2472 .L180: 1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2473 .loc 1 1307 16 view .LVU819 2474 0168 0120 movs r0, #1 2475 016a F6E7 b .L170 2476 .L181: 1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2477 .loc 1 1324 18 view .LVU820 2478 016c 0120 movs r0, #1 2479 016e F4E7 b .L170 2480 .L182: 1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2481 .loc 1 1346 14 view .LVU821 2482 0170 0120 movs r0, #1 2483 0172 F2E7 b .L170 2484 .L186: 2485 .align 2 2486 .L185: 2487 0174 00240080 .word -2147474432 2488 .cfi_endproc 2489 .LFE340: 2491 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2492 .align 1 2493 .global HAL_I2C_Slave_Transmit 2494 .syntax unified 2495 .thumb 2496 .thumb_func 2498 HAL_I2C_Slave_Transmit: 2499 .LVL176: 2500 .LFB341: 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2501 .loc 1 1380 1 is_stmt 1 view -0 2502 .cfi_startproc 2503 @ args = 0, pretend = 0, frame = 0 2504 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2505 .loc 1 1380 1 is_stmt 0 view .LVU823 2506 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2507 .cfi_def_cfa_offset 24 2508 .cfi_offset 4, -24 ARM GAS /tmp/ccN54YTb.s page 189 2509 .cfi_offset 5, -20 2510 .cfi_offset 6, -16 2511 .cfi_offset 7, -12 2512 .cfi_offset 8, -8 2513 .cfi_offset 14, -4 2514 0004 82B0 sub sp, sp, #8 2515 .cfi_def_cfa_offset 32 2516 0006 1D46 mov r5, r3 1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t tmpXferCount; 2517 .loc 1 1381 3 is_stmt 1 view .LVU824 1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef error; 2518 .loc 1 1382 3 view .LVU825 1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2519 .loc 1 1383 3 view .LVU826 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2520 .loc 1 1385 3 view .LVU827 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2521 .loc 1 1385 11 is_stmt 0 view .LVU828 2522 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2523 .LVL177: 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2524 .loc 1 1385 6 view .LVU829 2525 000c 202B cmp r3, #32 2526 000e 40F0EA80 bne .L202 2527 0012 0446 mov r4, r0 2528 0014 8846 mov r8, r1 2529 0016 1746 mov r7, r2 1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2530 .loc 1 1387 5 is_stmt 1 view .LVU830 1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2531 .loc 1 1387 8 is_stmt 0 view .LVU831 2532 0018 002A cmp r2, #0 2533 001a 18BF it ne 2534 001c 0029 cmpne r1, #0 2535 001e 55D0 beq .L205 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2536 .loc 1 1393 5 is_stmt 1 view .LVU832 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2537 .loc 1 1393 5 view .LVU833 2538 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2539 0024 012B cmp r3, #1 2540 0026 00F0E280 beq .L203 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2541 .loc 1 1393 5 discriminator 2 view .LVU834 2542 002a 0123 movs r3, #1 2543 002c 80F84030 strb r3, [r0, #64] 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2544 .loc 1 1393 5 view .LVU835 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2545 .loc 1 1396 5 view .LVU836 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2546 .loc 1 1396 17 is_stmt 0 view .LVU837 2547 0030 FFF7FEFF bl HAL_GetTick 2548 .LVL178: 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2549 .loc 1 1396 17 view .LVU838 2550 0034 0646 mov r6, r0 ARM GAS /tmp/ccN54YTb.s page 190 2551 .LVL179: 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2552 .loc 1 1398 5 is_stmt 1 view .LVU839 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2553 .loc 1 1398 21 is_stmt 0 view .LVU840 2554 0036 2123 movs r3, #33 2555 0038 84F84130 strb r3, [r4, #65] 1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2556 .loc 1 1399 5 is_stmt 1 view .LVU841 1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2557 .loc 1 1399 21 is_stmt 0 view .LVU842 2558 003c 2023 movs r3, #32 2559 003e 84F84230 strb r3, [r4, #66] 1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2560 .loc 1 1400 5 is_stmt 1 view .LVU843 1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2561 .loc 1 1400 21 is_stmt 0 view .LVU844 2562 0042 0023 movs r3, #0 2563 0044 6364 str r3, [r4, #68] 1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2564 .loc 1 1403 5 is_stmt 1 view .LVU845 1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2565 .loc 1 1403 21 is_stmt 0 view .LVU846 2566 0046 C4F82480 str r8, [r4, #36] 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2567 .loc 1 1404 5 is_stmt 1 view .LVU847 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2568 .loc 1 1404 21 is_stmt 0 view .LVU848 2569 004a 6785 strh r7, [r4, #42] @ movhi 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2570 .loc 1 1405 5 is_stmt 1 view .LVU849 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2571 .loc 1 1405 21 is_stmt 0 view .LVU850 2572 004c 6363 str r3, [r4, #52] 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2573 .loc 1 1408 5 is_stmt 1 view .LVU851 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2574 .loc 1 1408 9 is_stmt 0 view .LVU852 2575 004e 2268 ldr r2, [r4] 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2576 .loc 1 1408 19 view .LVU853 2577 0050 5368 ldr r3, [r2, #4] 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2578 .loc 1 1408 25 view .LVU854 2579 0052 23F40043 bic r3, r3, #32768 2580 0056 5360 str r3, [r2, #4] 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2581 .loc 1 1411 5 is_stmt 1 view .LVU855 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2582 .loc 1 1411 19 is_stmt 0 view .LVU856 2583 0058 236A ldr r3, [r4, #32] 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2584 .loc 1 1411 8 view .LVU857 2585 005a B3F5003F cmp r3, #131072 2586 005e 3AD0 beq .L206 2587 .L190: 1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 191 2588 .loc 1 1424 5 is_stmt 1 view .LVU858 1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2589 .loc 1 1424 9 is_stmt 0 view .LVU859 2590 0060 0096 str r6, [sp] 2591 0062 2B46 mov r3, r5 2592 0064 0022 movs r2, #0 2593 0066 0821 movs r1, #8 2594 0068 2046 mov r0, r4 2595 .LVL180: 1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2596 .loc 1 1424 9 view .LVU860 2597 006a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2598 .LVL181: 1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2599 .loc 1 1424 8 discriminator 1 view .LVU861 2600 006e 0028 cmp r0, #0 2601 0070 3ED1 bne .L207 1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2602 .loc 1 1436 5 is_stmt 1 view .LVU862 2603 0072 2368 ldr r3, [r4] 2604 0074 0822 movs r2, #8 2605 0076 DA61 str r2, [r3, #28] 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2606 .loc 1 1439 5 view .LVU863 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2607 .loc 1 1439 19 is_stmt 0 view .LVU864 2608 0078 E368 ldr r3, [r4, #12] 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2609 .loc 1 1439 8 view .LVU865 2610 007a 022B cmp r3, #2 2611 007c 42D0 beq .L208 2612 .L192: 1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2613 .loc 1 1458 5 is_stmt 1 view .LVU866 1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2614 .loc 1 1458 9 is_stmt 0 view .LVU867 2615 007e 0096 str r6, [sp] 2616 0080 2B46 mov r3, r5 2617 0082 0022 movs r2, #0 2618 0084 4FF48031 mov r1, #65536 2619 0088 2046 mov r0, r4 2620 008a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2621 .LVL182: 1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2622 .loc 1 1458 8 discriminator 1 view .LVU868 2623 008e 0028 cmp r0, #0 2624 0090 4ED1 bne .L209 2625 .L194: 1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2626 .loc 1 1469 28 is_stmt 1 view .LVU869 1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2627 .loc 1 1469 16 is_stmt 0 view .LVU870 2628 0092 628D ldrh r2, [r4, #42] 2629 0094 92B2 uxth r2, r2 1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2630 .loc 1 1469 28 view .LVU871 2631 0096 002A cmp r2, #0 ARM GAS /tmp/ccN54YTb.s page 192 2632 0098 5BD0 beq .L210 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2633 .loc 1 1472 7 is_stmt 1 view .LVU872 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2634 .loc 1 1472 11 is_stmt 0 view .LVU873 2635 009a 3246 mov r2, r6 2636 009c 2946 mov r1, r5 2637 009e 2046 mov r0, r4 2638 00a0 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2639 .LVL183: 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2640 .loc 1 1472 10 discriminator 1 view .LVU874 2641 00a4 0028 cmp r0, #0 2642 00a6 4DD1 bne .L211 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2643 .loc 1 1480 7 is_stmt 1 view .LVU875 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2644 .loc 1 1480 35 is_stmt 0 view .LVU876 2645 00a8 626A ldr r2, [r4, #36] 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2646 .loc 1 1480 11 view .LVU877 2647 00aa 2368 ldr r3, [r4] 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2648 .loc 1 1480 30 view .LVU878 2649 00ac 1278 ldrb r2, [r2] @ zero_extendqisi2 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2650 .loc 1 1480 28 view .LVU879 2651 00ae 9A62 str r2, [r3, #40] 1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2652 .loc 1 1483 7 is_stmt 1 view .LVU880 1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2653 .loc 1 1483 11 is_stmt 0 view .LVU881 2654 00b0 636A ldr r3, [r4, #36] 1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2655 .loc 1 1483 21 view .LVU882 2656 00b2 0133 adds r3, r3, #1 2657 00b4 6362 str r3, [r4, #36] 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2658 .loc 1 1485 7 is_stmt 1 view .LVU883 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2659 .loc 1 1485 11 is_stmt 0 view .LVU884 2660 00b6 B4F82AC0 ldrh ip, [r4, #42] 2661 00ba 1FFA8CFC uxth ip, ip 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2662 .loc 1 1485 22 view .LVU885 2663 00be 0CF1FF3C add ip, ip, #-1 2664 00c2 1FFA8CFC uxth ip, ip 2665 00c6 A4F82AC0 strh ip, [r4, #42] @ movhi 2666 00ca E2E7 b .L194 2667 .LVL184: 2668 .L205: 1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2669 .loc 1 1389 7 is_stmt 1 view .LVU886 1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2670 .loc 1 1389 23 is_stmt 0 view .LVU887 2671 00cc 4FF40073 mov r3, #512 2672 00d0 4364 str r3, [r0, #68] ARM GAS /tmp/ccN54YTb.s page 193 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2673 .loc 1 1390 7 is_stmt 1 view .LVU888 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2674 .loc 1 1390 15 is_stmt 0 view .LVU889 2675 00d2 0120 movs r0, #1 2676 .LVL185: 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2677 .loc 1 1390 15 view .LVU890 2678 00d4 88E0 b .L188 2679 .LVL186: 2680 .L206: 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2681 .loc 1 1415 7 is_stmt 1 view .LVU891 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2682 .loc 1 1415 35 is_stmt 0 view .LVU892 2683 00d6 626A ldr r2, [r4, #36] 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2684 .loc 1 1415 11 view .LVU893 2685 00d8 2368 ldr r3, [r4] 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2686 .loc 1 1415 30 view .LVU894 2687 00da 1278 ldrb r2, [r2] @ zero_extendqisi2 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2688 .loc 1 1415 28 view .LVU895 2689 00dc 9A62 str r2, [r3, #40] 1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2690 .loc 1 1418 7 is_stmt 1 view .LVU896 1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2691 .loc 1 1418 11 is_stmt 0 view .LVU897 2692 00de 636A ldr r3, [r4, #36] 1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2693 .loc 1 1418 21 view .LVU898 2694 00e0 0133 adds r3, r3, #1 2695 00e2 6362 str r3, [r4, #36] 1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2696 .loc 1 1420 7 is_stmt 1 view .LVU899 1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2697 .loc 1 1420 11 is_stmt 0 view .LVU900 2698 00e4 638D ldrh r3, [r4, #42] 2699 00e6 9BB2 uxth r3, r3 1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2700 .loc 1 1420 22 view .LVU901 2701 00e8 013B subs r3, r3, #1 2702 00ea 9BB2 uxth r3, r3 2703 00ec 6385 strh r3, [r4, #42] @ movhi 2704 00ee B7E7 b .L190 2705 .LVL187: 2706 .L207: 1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2707 .loc 1 1427 7 is_stmt 1 view .LVU902 1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2708 .loc 1 1427 11 is_stmt 0 view .LVU903 2709 00f0 2268 ldr r2, [r4] 1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2710 .loc 1 1427 21 view .LVU904 2711 00f2 5368 ldr r3, [r2, #4] 1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 194 2712 .loc 1 1427 27 view .LVU905 2713 00f4 43F40043 orr r3, r3, #32768 2714 00f8 5360 str r3, [r2, #4] 1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2715 .loc 1 1430 7 is_stmt 1 view .LVU906 2716 00fa 2046 mov r0, r4 2717 00fc FFF7FEFF bl I2C_Flush_TXDR 2718 .LVL188: 1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2719 .loc 1 1432 7 view .LVU907 1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2720 .loc 1 1432 14 is_stmt 0 view .LVU908 2721 0100 0120 movs r0, #1 2722 0102 71E0 b .L188 2723 .L208: 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2724 .loc 1 1442 7 is_stmt 1 view .LVU909 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2725 .loc 1 1442 11 is_stmt 0 view .LVU910 2726 0104 0096 str r6, [sp] 2727 0106 2B46 mov r3, r5 2728 0108 0022 movs r2, #0 2729 010a 0821 movs r1, #8 2730 010c 2046 mov r0, r4 2731 010e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2732 .LVL189: 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2733 .loc 1 1442 10 discriminator 1 view .LVU911 2734 0112 18B9 cbnz r0, .L212 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2735 .loc 1 1454 7 is_stmt 1 view .LVU912 2736 0114 2368 ldr r3, [r4] 2737 0116 0822 movs r2, #8 2738 0118 DA61 str r2, [r3, #28] 2739 011a B0E7 b .L192 2740 .L212: 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2741 .loc 1 1445 9 view .LVU913 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2742 .loc 1 1445 13 is_stmt 0 view .LVU914 2743 011c 2268 ldr r2, [r4] 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2744 .loc 1 1445 23 view .LVU915 2745 011e 5368 ldr r3, [r2, #4] 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2746 .loc 1 1445 29 view .LVU916 2747 0120 43F40043 orr r3, r3, #32768 2748 0124 5360 str r3, [r2, #4] 1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2749 .loc 1 1448 9 is_stmt 1 view .LVU917 2750 0126 2046 mov r0, r4 2751 0128 FFF7FEFF bl I2C_Flush_TXDR 2752 .LVL190: 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2753 .loc 1 1450 9 view .LVU918 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2754 .loc 1 1450 16 is_stmt 0 view .LVU919 ARM GAS /tmp/ccN54YTb.s page 195 2755 012c 0120 movs r0, #1 2756 012e 5BE0 b .L188 2757 .L209: 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2758 .loc 1 1461 7 is_stmt 1 view .LVU920 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2759 .loc 1 1461 11 is_stmt 0 view .LVU921 2760 0130 2268 ldr r2, [r4] 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2761 .loc 1 1461 21 view .LVU922 2762 0132 5368 ldr r3, [r2, #4] 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2763 .loc 1 1461 27 view .LVU923 2764 0134 43F40043 orr r3, r3, #32768 2765 0138 5360 str r3, [r2, #4] 1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2766 .loc 1 1464 7 is_stmt 1 view .LVU924 2767 013a 2046 mov r0, r4 2768 013c FFF7FEFF bl I2C_Flush_TXDR 2769 .LVL191: 1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2770 .loc 1 1466 7 view .LVU925 1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2771 .loc 1 1466 14 is_stmt 0 view .LVU926 2772 0140 0120 movs r0, #1 2773 0142 51E0 b .L188 2774 .L211: 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2775 .loc 1 1475 9 is_stmt 1 view .LVU927 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2776 .loc 1 1475 13 is_stmt 0 view .LVU928 2777 0144 2268 ldr r2, [r4] 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2778 .loc 1 1475 23 view .LVU929 2779 0146 5368 ldr r3, [r2, #4] 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2780 .loc 1 1475 29 view .LVU930 2781 0148 43F40043 orr r3, r3, #32768 2782 014c 5360 str r3, [r2, #4] 1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2783 .loc 1 1476 9 is_stmt 1 view .LVU931 1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2784 .loc 1 1476 16 is_stmt 0 view .LVU932 2785 014e 0120 movs r0, #1 2786 0150 4AE0 b .L188 2787 .L210: 1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2788 .loc 1 1489 5 is_stmt 1 view .LVU933 1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2789 .loc 1 1489 13 is_stmt 0 view .LVU934 2790 0152 0096 str r6, [sp] 2791 0154 2B46 mov r3, r5 2792 0156 1021 movs r1, #16 2793 0158 2046 mov r0, r4 2794 015a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2795 .LVL192: 1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 196 2796 .loc 1 1491 5 is_stmt 1 view .LVU935 1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2797 .loc 1 1491 8 is_stmt 0 view .LVU936 2798 015e E8B1 cbz r0, .L197 1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2799 .loc 1 1497 7 is_stmt 1 view .LVU937 1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2800 .loc 1 1497 20 is_stmt 0 view .LVU938 2801 0160 638D ldrh r3, [r4, #42] 2802 0162 9BB2 uxth r3, r3 2803 .LVL193: 1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2804 .loc 1 1498 7 is_stmt 1 view .LVU939 1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2805 .loc 1 1498 16 is_stmt 0 view .LVU940 2806 0164 626C ldr r2, [r4, #68] 1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2807 .loc 1 1498 10 view .LVU941 2808 0166 042A cmp r2, #4 2809 0168 11D1 bne .L198 1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2810 .loc 1 1498 49 discriminator 1 view .LVU942 2811 016a 83B9 cbnz r3, .L198 1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2812 .loc 1 1501 9 is_stmt 1 view .LVU943 1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2813 .loc 1 1501 25 is_stmt 0 view .LVU944 2814 016c 6364 str r3, [r4, #68] 2815 .LVL194: 2816 .L199: 1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2817 .loc 1 1532 5 is_stmt 1 view .LVU945 1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2818 .loc 1 1532 9 is_stmt 0 view .LVU946 2819 016e 0096 str r6, [sp] 2820 0170 2B46 mov r3, r5 2821 0172 0122 movs r2, #1 2822 0174 4FF40041 mov r1, #32768 2823 0178 2046 mov r0, r4 2824 017a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2825 .LVL195: 1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2826 .loc 1 1532 8 discriminator 1 view .LVU947 2827 017e 20B3 cbz r0, .L201 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2828 .loc 1 1535 7 is_stmt 1 view .LVU948 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2829 .loc 1 1535 11 is_stmt 0 view .LVU949 2830 0180 2268 ldr r2, [r4] 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2831 .loc 1 1535 21 view .LVU950 2832 0182 5368 ldr r3, [r2, #4] 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2833 .loc 1 1535 27 view .LVU951 2834 0184 43F40043 orr r3, r3, #32768 2835 0188 5360 str r3, [r2, #4] 1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 197 2836 .loc 1 1536 7 is_stmt 1 view .LVU952 1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2837 .loc 1 1536 14 is_stmt 0 view .LVU953 2838 018a 0120 movs r0, #1 2839 018c 2CE0 b .L188 2840 .LVL196: 2841 .L198: 1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2842 .loc 1 1506 9 is_stmt 1 view .LVU954 1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2843 .loc 1 1506 13 is_stmt 0 view .LVU955 2844 018e 2268 ldr r2, [r4] 1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2845 .loc 1 1506 23 view .LVU956 2846 0190 5368 ldr r3, [r2, #4] 2847 .LVL197: 1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2848 .loc 1 1506 29 view .LVU957 2849 0192 43F40043 orr r3, r3, #32768 2850 0196 5360 str r3, [r2, #4] 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2851 .loc 1 1507 9 is_stmt 1 view .LVU958 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2852 .loc 1 1507 16 is_stmt 0 view .LVU959 2853 0198 0120 movs r0, #1 2854 .LVL198: 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2855 .loc 1 1507 16 view .LVU960 2856 019a 25E0 b .L188 2857 .LVL199: 2858 .L197: 1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2859 .loc 1 1513 7 is_stmt 1 view .LVU961 2860 019c 2046 mov r0, r4 2861 .LVL200: 1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2862 .loc 1 1513 7 is_stmt 0 view .LVU962 2863 019e FFF7FEFF bl I2C_Flush_TXDR 2864 .LVL201: 1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2865 .loc 1 1516 7 is_stmt 1 view .LVU963 2866 01a2 2368 ldr r3, [r4] 2867 01a4 1022 movs r2, #16 2868 01a6 DA61 str r2, [r3, #28] 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2869 .loc 1 1519 7 view .LVU964 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2870 .loc 1 1519 11 is_stmt 0 view .LVU965 2871 01a8 3246 mov r2, r6 2872 01aa 2946 mov r1, r5 2873 01ac 2046 mov r0, r4 2874 01ae FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2875 .LVL202: 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2876 .loc 1 1519 10 discriminator 1 view .LVU966 2877 01b2 18B9 cbnz r0, .L213 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 198 2878 .loc 1 1528 7 is_stmt 1 view .LVU967 2879 01b4 2368 ldr r3, [r4] 2880 01b6 2022 movs r2, #32 2881 01b8 DA61 str r2, [r3, #28] 2882 01ba D8E7 b .L199 2883 .L213: 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2884 .loc 1 1522 9 view .LVU968 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2885 .loc 1 1522 13 is_stmt 0 view .LVU969 2886 01bc 2268 ldr r2, [r4] 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2887 .loc 1 1522 23 view .LVU970 2888 01be 5368 ldr r3, [r2, #4] 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2889 .loc 1 1522 29 view .LVU971 2890 01c0 43F40043 orr r3, r3, #32768 2891 01c4 5360 str r3, [r2, #4] 1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2892 .loc 1 1524 9 is_stmt 1 view .LVU972 1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2893 .loc 1 1524 16 is_stmt 0 view .LVU973 2894 01c6 0120 movs r0, #1 2895 01c8 0EE0 b .L188 2896 .L201: 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2897 .loc 1 1540 5 is_stmt 1 view .LVU974 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2898 .loc 1 1540 9 is_stmt 0 view .LVU975 2899 01ca 2268 ldr r2, [r4] 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2900 .loc 1 1540 19 view .LVU976 2901 01cc 5368 ldr r3, [r2, #4] 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2902 .loc 1 1540 25 view .LVU977 2903 01ce 43F40043 orr r3, r3, #32768 2904 01d2 5360 str r3, [r2, #4] 1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2905 .loc 1 1542 5 is_stmt 1 view .LVU978 1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2906 .loc 1 1542 17 is_stmt 0 view .LVU979 2907 01d4 2023 movs r3, #32 2908 01d6 84F84130 strb r3, [r4, #65] 1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2909 .loc 1 1543 5 is_stmt 1 view .LVU980 1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2910 .loc 1 1543 17 is_stmt 0 view .LVU981 2911 01da 0023 movs r3, #0 2912 01dc 84F84230 strb r3, [r4, #66] 1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2913 .loc 1 1546 5 is_stmt 1 view .LVU982 1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2914 .loc 1 1546 5 view .LVU983 2915 01e0 84F84030 strb r3, [r4, #64] 1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2916 .loc 1 1546 5 view .LVU984 1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 199 2917 .loc 1 1548 5 view .LVU985 1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2918 .loc 1 1548 12 is_stmt 0 view .LVU986 2919 01e4 00E0 b .L188 2920 .LVL203: 2921 .L202: 1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2922 .loc 1 1552 12 view .LVU987 2923 01e6 0220 movs r0, #2 2924 .LVL204: 2925 .L188: 1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2926 .loc 1 1554 1 view .LVU988 2927 01e8 02B0 add sp, sp, #8 2928 .cfi_remember_state 2929 .cfi_def_cfa_offset 24 2930 @ sp needed 2931 01ea BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2932 .LVL205: 2933 .L203: 2934 .cfi_restore_state 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2935 .loc 1 1393 5 discriminator 1 view .LVU989 2936 01ee 0220 movs r0, #2 2937 .LVL206: 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2938 .loc 1 1393 5 discriminator 1 view .LVU990 2939 01f0 FAE7 b .L188 2940 .cfi_endproc 2941 .LFE341: 2943 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2944 .align 1 2945 .global HAL_I2C_Slave_Receive 2946 .syntax unified 2947 .thumb 2948 .thumb_func 2950 HAL_I2C_Slave_Receive: 2951 .LVL207: 2952 .LFB342: 1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2953 .loc 1 1567 1 is_stmt 1 view -0 2954 .cfi_startproc 2955 @ args = 0, pretend = 0, frame = 0 2956 @ frame_needed = 0, uses_anonymous_args = 0 1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2957 .loc 1 1567 1 is_stmt 0 view .LVU992 2958 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2959 .cfi_def_cfa_offset 24 2960 .cfi_offset 4, -24 2961 .cfi_offset 5, -20 2962 .cfi_offset 6, -16 2963 .cfi_offset 7, -12 2964 .cfi_offset 8, -8 2965 .cfi_offset 14, -4 2966 0004 82B0 sub sp, sp, #8 2967 .cfi_def_cfa_offset 32 2968 0006 1D46 mov r5, r3 ARM GAS /tmp/ccN54YTb.s page 200 1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2969 .loc 1 1568 3 is_stmt 1 view .LVU993 1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2970 .loc 1 1570 3 view .LVU994 1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2971 .loc 1 1570 11 is_stmt 0 view .LVU995 2972 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2973 .LVL208: 1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2974 .loc 1 1570 6 view .LVU996 2975 000c 202B cmp r3, #32 2976 000e 40F0B280 bne .L224 2977 0012 0446 mov r4, r0 2978 0014 8846 mov r8, r1 2979 0016 1746 mov r7, r2 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2980 .loc 1 1572 5 is_stmt 1 view .LVU997 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2981 .loc 1 1572 8 is_stmt 0 view .LVU998 2982 0018 002A cmp r2, #0 2983 001a 18BF it ne 2984 001c 0029 cmpne r1, #0 2985 001e 2BD0 beq .L227 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2986 .loc 1 1578 5 is_stmt 1 view .LVU999 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2987 .loc 1 1578 5 view .LVU1000 2988 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2989 0024 012B cmp r3, #1 2990 0026 00F0AA80 beq .L225 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2991 .loc 1 1578 5 discriminator 2 view .LVU1001 2992 002a 0123 movs r3, #1 2993 002c 80F84030 strb r3, [r0, #64] 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2994 .loc 1 1578 5 view .LVU1002 1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2995 .loc 1 1581 5 view .LVU1003 1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2996 .loc 1 1581 17 is_stmt 0 view .LVU1004 2997 0030 FFF7FEFF bl HAL_GetTick 2998 .LVL209: 1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2999 .loc 1 1581 17 view .LVU1005 3000 0034 0646 mov r6, r0 3001 .LVL210: 1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3002 .loc 1 1583 5 is_stmt 1 view .LVU1006 1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3003 .loc 1 1583 21 is_stmt 0 view .LVU1007 3004 0036 2223 movs r3, #34 3005 0038 84F84130 strb r3, [r4, #65] 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3006 .loc 1 1584 5 is_stmt 1 view .LVU1008 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3007 .loc 1 1584 21 is_stmt 0 view .LVU1009 3008 003c 2023 movs r3, #32 ARM GAS /tmp/ccN54YTb.s page 201 3009 003e 84F84230 strb r3, [r4, #66] 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3010 .loc 1 1585 5 is_stmt 1 view .LVU1010 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3011 .loc 1 1585 21 is_stmt 0 view .LVU1011 3012 0042 0022 movs r2, #0 3013 0044 6264 str r2, [r4, #68] 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3014 .loc 1 1588 5 is_stmt 1 view .LVU1012 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3015 .loc 1 1588 21 is_stmt 0 view .LVU1013 3016 0046 C4F82480 str r8, [r4, #36] 1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3017 .loc 1 1589 5 is_stmt 1 view .LVU1014 1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3018 .loc 1 1589 21 is_stmt 0 view .LVU1015 3019 004a 6785 strh r7, [r4, #42] @ movhi 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3020 .loc 1 1590 5 is_stmt 1 view .LVU1016 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3021 .loc 1 1590 26 is_stmt 0 view .LVU1017 3022 004c 638D ldrh r3, [r4, #42] 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3023 .loc 1 1590 20 view .LVU1018 3024 004e 2385 strh r3, [r4, #40] @ movhi 1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3025 .loc 1 1591 5 is_stmt 1 view .LVU1019 1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3026 .loc 1 1591 21 is_stmt 0 view .LVU1020 3027 0050 6263 str r2, [r4, #52] 1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3028 .loc 1 1594 5 is_stmt 1 view .LVU1021 1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3029 .loc 1 1594 9 is_stmt 0 view .LVU1022 3030 0052 2168 ldr r1, [r4] 1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3031 .loc 1 1594 19 view .LVU1023 3032 0054 4B68 ldr r3, [r1, #4] 1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3033 .loc 1 1594 25 view .LVU1024 3034 0056 23F40043 bic r3, r3, #32768 3035 005a 4B60 str r3, [r1, #4] 1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3036 .loc 1 1597 5 is_stmt 1 view .LVU1025 1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3037 .loc 1 1597 9 is_stmt 0 view .LVU1026 3038 005c 0090 str r0, [sp] 3039 005e 2B46 mov r3, r5 3040 0060 0821 movs r1, #8 3041 0062 2046 mov r0, r4 3042 .LVL211: 1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3043 .loc 1 1597 9 view .LVU1027 3044 0064 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3045 .LVL212: 1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3046 .loc 1 1597 8 discriminator 1 view .LVU1028 ARM GAS /tmp/ccN54YTb.s page 202 3047 0068 58B1 cbz r0, .L217 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3048 .loc 1 1600 7 is_stmt 1 view .LVU1029 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3049 .loc 1 1600 11 is_stmt 0 view .LVU1030 3050 006a 2268 ldr r2, [r4] 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3051 .loc 1 1600 21 view .LVU1031 3052 006c 5368 ldr r3, [r2, #4] 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3053 .loc 1 1600 27 view .LVU1032 3054 006e 43F40043 orr r3, r3, #32768 3055 0072 5360 str r3, [r2, #4] 1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3056 .loc 1 1601 7 is_stmt 1 view .LVU1033 1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3057 .loc 1 1601 14 is_stmt 0 view .LVU1034 3058 0074 0120 movs r0, #1 3059 0076 7FE0 b .L215 3060 .LVL213: 3061 .L227: 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3062 .loc 1 1574 7 is_stmt 1 view .LVU1035 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3063 .loc 1 1574 23 is_stmt 0 view .LVU1036 3064 0078 4FF40073 mov r3, #512 3065 007c 4364 str r3, [r0, #68] 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3066 .loc 1 1575 7 is_stmt 1 view .LVU1037 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3067 .loc 1 1575 15 is_stmt 0 view .LVU1038 3068 007e 0120 movs r0, #1 3069 .LVL214: 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3070 .loc 1 1575 15 view .LVU1039 3071 0080 7AE0 b .L215 3072 .LVL215: 3073 .L217: 1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3074 .loc 1 1605 5 is_stmt 1 view .LVU1040 3075 0082 2368 ldr r3, [r4] 3076 0084 0822 movs r2, #8 3077 0086 DA61 str r2, [r3, #28] 1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3078 .loc 1 1608 5 view .LVU1041 1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3079 .loc 1 1608 9 is_stmt 0 view .LVU1042 3080 0088 0096 str r6, [sp] 3081 008a 2B46 mov r3, r5 3082 008c 0122 movs r2, #1 3083 008e 4FF48031 mov r1, #65536 3084 0092 2046 mov r0, r4 3085 0094 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3086 .LVL216: 1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3087 .loc 1 1608 8 discriminator 1 view .LVU1043 3088 0098 F0B9 cbnz r0, .L228 ARM GAS /tmp/ccN54YTb.s page 203 3089 .L218: 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3090 .loc 1 1615 28 is_stmt 1 view .LVU1044 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3091 .loc 1 1615 16 is_stmt 0 view .LVU1045 3092 009a 638D ldrh r3, [r4, #42] 3093 009c 9BB2 uxth r3, r3 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3094 .loc 1 1615 28 view .LVU1046 3095 009e 002B cmp r3, #0 3096 00a0 3BD0 beq .L229 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3097 .loc 1 1618 7 is_stmt 1 view .LVU1047 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3098 .loc 1 1618 11 is_stmt 0 view .LVU1048 3099 00a2 3246 mov r2, r6 3100 00a4 2946 mov r1, r5 3101 00a6 2046 mov r0, r4 3102 00a8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 3103 .LVL217: 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3104 .loc 1 1618 10 discriminator 1 view .LVU1049 3105 00ac D8B9 cbnz r0, .L230 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3106 .loc 1 1640 7 is_stmt 1 view .LVU1050 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3107 .loc 1 1640 38 is_stmt 0 view .LVU1051 3108 00ae 2368 ldr r3, [r4] 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3109 .loc 1 1640 48 view .LVU1052 3110 00b0 5A6A ldr r2, [r3, #36] 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3111 .loc 1 1640 12 view .LVU1053 3112 00b2 636A ldr r3, [r4, #36] 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3113 .loc 1 1640 23 view .LVU1054 3114 00b4 1A70 strb r2, [r3] 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3115 .loc 1 1643 7 is_stmt 1 view .LVU1055 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3116 .loc 1 1643 11 is_stmt 0 view .LVU1056 3117 00b6 636A ldr r3, [r4, #36] 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3118 .loc 1 1643 21 view .LVU1057 3119 00b8 0133 adds r3, r3, #1 3120 00ba 6362 str r3, [r4, #36] 1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3121 .loc 1 1645 7 is_stmt 1 view .LVU1058 1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3122 .loc 1 1645 11 is_stmt 0 view .LVU1059 3123 00bc B4F82AC0 ldrh ip, [r4, #42] 3124 00c0 1FFA8CFC uxth ip, ip 1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3125 .loc 1 1645 22 view .LVU1060 3126 00c4 0CF1FF3C add ip, ip, #-1 3127 00c8 1FFA8CFC uxth ip, ip 3128 00cc A4F82AC0 strh ip, [r4, #42] @ movhi ARM GAS /tmp/ccN54YTb.s page 204 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3129 .loc 1 1646 7 is_stmt 1 view .LVU1061 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3130 .loc 1 1646 11 is_stmt 0 view .LVU1062 3131 00d0 238D ldrh r3, [r4, #40] 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3132 .loc 1 1646 21 view .LVU1063 3133 00d2 013B subs r3, r3, #1 3134 00d4 2385 strh r3, [r4, #40] @ movhi 3135 00d6 E0E7 b .L218 3136 .L228: 1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3137 .loc 1 1611 7 is_stmt 1 view .LVU1064 1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3138 .loc 1 1611 11 is_stmt 0 view .LVU1065 3139 00d8 2268 ldr r2, [r4] 1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3140 .loc 1 1611 21 view .LVU1066 3141 00da 5368 ldr r3, [r2, #4] 1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3142 .loc 1 1611 27 view .LVU1067 3143 00dc 43F40043 orr r3, r3, #32768 3144 00e0 5360 str r3, [r2, #4] 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3145 .loc 1 1612 7 is_stmt 1 view .LVU1068 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3146 .loc 1 1612 14 is_stmt 0 view .LVU1069 3147 00e2 0120 movs r0, #1 3148 00e4 48E0 b .L215 3149 .L230: 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3150 .loc 1 1621 9 is_stmt 1 view .LVU1070 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3151 .loc 1 1621 13 is_stmt 0 view .LVU1071 3152 00e6 2268 ldr r2, [r4] 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3153 .loc 1 1621 23 view .LVU1072 3154 00e8 5368 ldr r3, [r2, #4] 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3155 .loc 1 1621 29 view .LVU1073 3156 00ea 43F40043 orr r3, r3, #32768 3157 00ee 5360 str r3, [r2, #4] 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3158 .loc 1 1624 9 is_stmt 1 view .LVU1074 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3159 .loc 1 1624 13 is_stmt 0 view .LVU1075 3160 00f0 2368 ldr r3, [r4] 3161 00f2 9A69 ldr r2, [r3, #24] 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3162 .loc 1 1624 12 view .LVU1076 3163 00f4 12F0040F tst r2, #4 3164 00f8 0DD0 beq .L220 1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3165 .loc 1 1627 11 is_stmt 1 view .LVU1077 1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3166 .loc 1 1627 52 is_stmt 0 view .LVU1078 3167 00fa 5A6A ldr r2, [r3, #36] ARM GAS /tmp/ccN54YTb.s page 205 1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3168 .loc 1 1627 16 view .LVU1079 3169 00fc 636A ldr r3, [r4, #36] 1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3170 .loc 1 1627 27 view .LVU1080 3171 00fe 1A70 strb r2, [r3] 1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3172 .loc 1 1630 11 is_stmt 1 view .LVU1081 1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3173 .loc 1 1630 15 is_stmt 0 view .LVU1082 3174 0100 636A ldr r3, [r4, #36] 1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3175 .loc 1 1630 25 view .LVU1083 3176 0102 0133 adds r3, r3, #1 3177 0104 6362 str r3, [r4, #36] 1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3178 .loc 1 1632 11 is_stmt 1 view .LVU1084 1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3179 .loc 1 1632 15 is_stmt 0 view .LVU1085 3180 0106 638D ldrh r3, [r4, #42] 3181 0108 9BB2 uxth r3, r3 1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3182 .loc 1 1632 26 view .LVU1086 3183 010a 013B subs r3, r3, #1 3184 010c 9BB2 uxth r3, r3 3185 010e 6385 strh r3, [r4, #42] @ movhi 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3186 .loc 1 1633 11 is_stmt 1 view .LVU1087 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3187 .loc 1 1633 15 is_stmt 0 view .LVU1088 3188 0110 238D ldrh r3, [r4, #40] 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3189 .loc 1 1633 25 view .LVU1089 3190 0112 013B subs r3, r3, #1 3191 0114 2385 strh r3, [r4, #40] @ movhi 3192 .L220: 1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3193 .loc 1 1636 9 is_stmt 1 view .LVU1090 1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3194 .loc 1 1636 16 is_stmt 0 view .LVU1091 3195 0116 0120 movs r0, #1 3196 0118 2EE0 b .L215 3197 .L229: 1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3198 .loc 1 1650 5 is_stmt 1 view .LVU1092 1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3199 .loc 1 1650 9 is_stmt 0 view .LVU1093 3200 011a 3246 mov r2, r6 3201 011c 2946 mov r1, r5 3202 011e 2046 mov r0, r4 3203 0120 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 3204 .LVL218: 1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3205 .loc 1 1650 8 discriminator 1 view .LVU1094 3206 0124 30B1 cbz r0, .L222 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3207 .loc 1 1653 7 is_stmt 1 view .LVU1095 ARM GAS /tmp/ccN54YTb.s page 206 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3208 .loc 1 1653 11 is_stmt 0 view .LVU1096 3209 0126 2268 ldr r2, [r4] 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3210 .loc 1 1653 21 view .LVU1097 3211 0128 5368 ldr r3, [r2, #4] 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3212 .loc 1 1653 27 view .LVU1098 3213 012a 43F40043 orr r3, r3, #32768 3214 012e 5360 str r3, [r2, #4] 1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3215 .loc 1 1654 7 is_stmt 1 view .LVU1099 1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3216 .loc 1 1654 14 is_stmt 0 view .LVU1100 3217 0130 0120 movs r0, #1 3218 0132 21E0 b .L215 3219 .L222: 1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3220 .loc 1 1658 5 is_stmt 1 view .LVU1101 3221 0134 2368 ldr r3, [r4] 3222 0136 2022 movs r2, #32 3223 0138 DA61 str r2, [r3, #28] 1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3224 .loc 1 1661 5 view .LVU1102 1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3225 .loc 1 1661 9 is_stmt 0 view .LVU1103 3226 013a 0096 str r6, [sp] 3227 013c 2B46 mov r3, r5 3228 013e 0122 movs r2, #1 3229 0140 4FF40041 mov r1, #32768 3230 0144 2046 mov r0, r4 3231 0146 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3232 .LVL219: 1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3233 .loc 1 1661 8 discriminator 1 view .LVU1104 3234 014a 30B1 cbz r0, .L223 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3235 .loc 1 1664 7 is_stmt 1 view .LVU1105 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3236 .loc 1 1664 11 is_stmt 0 view .LVU1106 3237 014c 2268 ldr r2, [r4] 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3238 .loc 1 1664 21 view .LVU1107 3239 014e 5368 ldr r3, [r2, #4] 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3240 .loc 1 1664 27 view .LVU1108 3241 0150 43F40043 orr r3, r3, #32768 3242 0154 5360 str r3, [r2, #4] 1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3243 .loc 1 1665 7 is_stmt 1 view .LVU1109 1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3244 .loc 1 1665 14 is_stmt 0 view .LVU1110 3245 0156 0120 movs r0, #1 3246 0158 0EE0 b .L215 3247 .L223: 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3248 .loc 1 1669 5 is_stmt 1 view .LVU1111 ARM GAS /tmp/ccN54YTb.s page 207 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3249 .loc 1 1669 9 is_stmt 0 view .LVU1112 3250 015a 2268 ldr r2, [r4] 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3251 .loc 1 1669 19 view .LVU1113 3252 015c 5368 ldr r3, [r2, #4] 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3253 .loc 1 1669 25 view .LVU1114 3254 015e 43F40043 orr r3, r3, #32768 3255 0162 5360 str r3, [r2, #4] 1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3256 .loc 1 1671 5 is_stmt 1 view .LVU1115 1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3257 .loc 1 1671 17 is_stmt 0 view .LVU1116 3258 0164 2023 movs r3, #32 3259 0166 84F84130 strb r3, [r4, #65] 1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3260 .loc 1 1672 5 is_stmt 1 view .LVU1117 1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3261 .loc 1 1672 17 is_stmt 0 view .LVU1118 3262 016a 0023 movs r3, #0 3263 016c 84F84230 strb r3, [r4, #66] 1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3264 .loc 1 1675 5 is_stmt 1 view .LVU1119 1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3265 .loc 1 1675 5 view .LVU1120 3266 0170 84F84030 strb r3, [r4, #64] 1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3267 .loc 1 1675 5 view .LVU1121 1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3268 .loc 1 1677 5 view .LVU1122 1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3269 .loc 1 1677 12 is_stmt 0 view .LVU1123 3270 0174 00E0 b .L215 3271 .LVL220: 3272 .L224: 1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3273 .loc 1 1681 12 view .LVU1124 3274 0176 0220 movs r0, #2 3275 .LVL221: 3276 .L215: 1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3277 .loc 1 1683 1 view .LVU1125 3278 0178 02B0 add sp, sp, #8 3279 .cfi_remember_state 3280 .cfi_def_cfa_offset 24 3281 @ sp needed 3282 017a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3283 .LVL222: 3284 .L225: 3285 .cfi_restore_state 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3286 .loc 1 1578 5 discriminator 1 view .LVU1126 3287 017e 0220 movs r0, #2 3288 .LVL223: 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3289 .loc 1 1578 5 discriminator 1 view .LVU1127 ARM GAS /tmp/ccN54YTb.s page 208 3290 0180 FAE7 b .L215 3291 .cfi_endproc 3292 .LFE342: 3294 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3295 .align 1 3296 .global HAL_I2C_Master_Transmit_IT 3297 .syntax unified 3298 .thumb 3299 .thumb_func 3301 HAL_I2C_Master_Transmit_IT: 3302 .LVL224: 3303 .LFB343: 1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3304 .loc 1 1697 1 is_stmt 1 view -0 3305 .cfi_startproc 3306 @ args = 0, pretend = 0, frame = 0 3307 @ frame_needed = 0, uses_anonymous_args = 0 1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3308 .loc 1 1697 1 is_stmt 0 view .LVU1129 3309 0000 30B5 push {r4, r5, lr} 3310 .cfi_def_cfa_offset 12 3311 .cfi_offset 4, -12 3312 .cfi_offset 5, -8 3313 .cfi_offset 14, -4 3314 0002 83B0 sub sp, sp, #12 3315 .cfi_def_cfa_offset 24 3316 0004 0446 mov r4, r0 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3317 .loc 1 1698 3 is_stmt 1 view .LVU1130 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3318 .loc 1 1700 3 view .LVU1131 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3319 .loc 1 1700 11 is_stmt 0 view .LVU1132 3320 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3321 .LVL225: 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3322 .loc 1 1700 6 view .LVU1133 3323 000a 2028 cmp r0, #32 3324 000c 4ED1 bne .L237 1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3325 .loc 1 1702 5 is_stmt 1 view .LVU1134 1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3326 .loc 1 1702 9 is_stmt 0 view .LVU1135 3327 000e 2068 ldr r0, [r4] 3328 0010 8569 ldr r5, [r0, #24] 1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3329 .loc 1 1702 8 view .LVU1136 3330 0012 15F4004F tst r5, #32768 3331 0016 4BD1 bne .L238 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3332 .loc 1 1708 5 is_stmt 1 view .LVU1137 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3333 .loc 1 1708 5 view .LVU1138 3334 0018 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 3335 001c 012D cmp r5, #1 3336 001e 49D0 beq .L239 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 209 3337 .loc 1 1708 5 discriminator 2 view .LVU1139 3338 0020 0125 movs r5, #1 3339 0022 84F84050 strb r5, [r4, #64] 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3340 .loc 1 1708 5 view .LVU1140 1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3341 .loc 1 1710 5 view .LVU1141 1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3342 .loc 1 1710 23 is_stmt 0 view .LVU1142 3343 0026 2125 movs r5, #33 3344 0028 84F84150 strb r5, [r4, #65] 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3345 .loc 1 1711 5 is_stmt 1 view .LVU1143 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3346 .loc 1 1711 23 is_stmt 0 view .LVU1144 3347 002c 1025 movs r5, #16 3348 002e 84F84250 strb r5, [r4, #66] 1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3349 .loc 1 1712 5 is_stmt 1 view .LVU1145 1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3350 .loc 1 1712 23 is_stmt 0 view .LVU1146 3351 0032 0025 movs r5, #0 3352 0034 6564 str r5, [r4, #68] 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3353 .loc 1 1715 5 is_stmt 1 view .LVU1147 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3354 .loc 1 1715 23 is_stmt 0 view .LVU1148 3355 0036 6262 str r2, [r4, #36] 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3356 .loc 1 1716 5 is_stmt 1 view .LVU1149 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3357 .loc 1 1716 23 is_stmt 0 view .LVU1150 3358 0038 6385 strh r3, [r4, #42] @ movhi 1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3359 .loc 1 1717 5 is_stmt 1 view .LVU1151 1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3360 .loc 1 1717 23 is_stmt 0 view .LVU1152 3361 003a 1F4B ldr r3, .L241 3362 .LVL226: 1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3363 .loc 1 1717 23 view .LVU1153 3364 003c E362 str r3, [r4, #44] 3365 .LVL227: 1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3366 .loc 1 1718 5 is_stmt 1 view .LVU1154 1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3367 .loc 1 1718 23 is_stmt 0 view .LVU1155 3368 003e 1F4B ldr r3, .L241+4 3369 0040 6363 str r3, [r4, #52] 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3370 .loc 1 1720 5 is_stmt 1 view .LVU1156 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3371 .loc 1 1720 13 is_stmt 0 view .LVU1157 3372 0042 638D ldrh r3, [r4, #42] 3373 0044 9BB2 uxth r3, r3 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3374 .loc 1 1720 8 view .LVU1158 ARM GAS /tmp/ccN54YTb.s page 210 3375 0046 FF2B cmp r3, #255 3376 0048 24D9 bls .L233 1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3377 .loc 1 1722 7 is_stmt 1 view .LVU1159 1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3378 .loc 1 1722 22 is_stmt 0 view .LVU1160 3379 004a FF23 movs r3, #255 3380 004c 2385 strh r3, [r4, #40] @ movhi 1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3381 .loc 1 1723 7 is_stmt 1 view .LVU1161 3382 .LVL228: 1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3383 .loc 1 1723 16 is_stmt 0 view .LVU1162 3384 004e 4FF08073 mov r3, #16777216 3385 .LVL229: 3386 .L234: 1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3387 .loc 1 1733 5 is_stmt 1 view .LVU1163 1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3388 .loc 1 1733 13 is_stmt 0 view .LVU1164 3389 0052 258D ldrh r5, [r4, #40] 1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3390 .loc 1 1733 8 view .LVU1165 3391 0054 1DB3 cbz r5, .L235 1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3392 .loc 1 1737 7 is_stmt 1 view .LVU1166 1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3393 .loc 1 1737 30 is_stmt 0 view .LVU1167 3394 0056 1278 ldrb r2, [r2] @ zero_extendqisi2 3395 .LVL230: 1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3396 .loc 1 1737 28 view .LVU1168 3397 0058 8262 str r2, [r0, #40] 3398 .LVL231: 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3399 .loc 1 1740 7 is_stmt 1 view .LVU1169 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3400 .loc 1 1740 11 is_stmt 0 view .LVU1170 3401 005a 626A ldr r2, [r4, #36] 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3402 .loc 1 1740 21 view .LVU1171 3403 005c 0132 adds r2, r2, #1 3404 005e 6262 str r2, [r4, #36] 1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3405 .loc 1 1742 7 is_stmt 1 view .LVU1172 1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3406 .loc 1 1742 11 is_stmt 0 view .LVU1173 3407 0060 628D ldrh r2, [r4, #42] 3408 0062 92B2 uxth r2, r2 1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3409 .loc 1 1742 22 view .LVU1174 3410 0064 013A subs r2, r2, #1 3411 0066 92B2 uxth r2, r2 3412 0068 6285 strh r2, [r4, #42] @ movhi 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3413 .loc 1 1743 7 is_stmt 1 view .LVU1175 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 211 3414 .loc 1 1743 11 is_stmt 0 view .LVU1176 3415 006a 228D ldrh r2, [r4, #40] 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3416 .loc 1 1743 21 view .LVU1177 3417 006c 013A subs r2, r2, #1 3418 006e 92B2 uxth r2, r2 3419 0070 2285 strh r2, [r4, #40] @ movhi 1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3420 .loc 1 1745 7 is_stmt 1 view .LVU1178 3421 0072 0132 adds r2, r2, #1 3422 0074 1248 ldr r0, .L241+8 3423 0076 0090 str r0, [sp] 3424 0078 D2B2 uxtb r2, r2 3425 007a 2046 mov r0, r4 3426 007c FFF7FEFF bl I2C_TransferConfig 3427 .LVL232: 3428 .L236: 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3429 .loc 1 1755 5 view .LVU1179 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3430 .loc 1 1755 5 view .LVU1180 3431 0080 0025 movs r5, #0 3432 0082 84F84050 strb r5, [r4, #64] 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3433 .loc 1 1755 5 view .LVU1181 1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3434 .loc 1 1765 5 view .LVU1182 3435 0086 0121 movs r1, #1 3436 0088 2046 mov r0, r4 3437 008a FFF7FEFF bl I2C_Enable_IRQ 3438 .LVL233: 1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3439 .loc 1 1767 5 view .LVU1183 1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3440 .loc 1 1767 12 is_stmt 0 view .LVU1184 3441 008e 2846 mov r0, r5 3442 .LVL234: 3443 .L232: 1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3444 .loc 1 1773 1 view .LVU1185 3445 0090 03B0 add sp, sp, #12 3446 .cfi_remember_state 3447 .cfi_def_cfa_offset 12 3448 @ sp needed 3449 0092 30BD pop {r4, r5, pc} 3450 .LVL235: 3451 .L233: 3452 .cfi_restore_state 1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3453 .loc 1 1727 7 is_stmt 1 view .LVU1186 1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3454 .loc 1 1727 28 is_stmt 0 view .LVU1187 3455 0094 638D ldrh r3, [r4, #42] 1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3456 .loc 1 1727 22 view .LVU1188 3457 0096 2385 strh r3, [r4, #40] @ movhi 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 212 3458 .loc 1 1728 7 is_stmt 1 view .LVU1189 3459 .LVL236: 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3460 .loc 1 1728 16 is_stmt 0 view .LVU1190 3461 0098 4FF00073 mov r3, #33554432 3462 009c D9E7 b .L234 3463 .LVL237: 3464 .L235: 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3465 .loc 1 1750 7 is_stmt 1 view .LVU1191 3466 009e 084A ldr r2, .L241+8 3467 .LVL238: 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3468 .loc 1 1750 7 is_stmt 0 view .LVU1192 3469 00a0 0092 str r2, [sp] 3470 .LVL239: 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3471 .loc 1 1750 7 view .LVU1193 3472 00a2 EAB2 uxtb r2, r5 3473 00a4 2046 mov r0, r4 3474 00a6 FFF7FEFF bl I2C_TransferConfig 3475 .LVL240: 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3476 .loc 1 1750 7 view .LVU1194 3477 00aa E9E7 b .L236 3478 .LVL241: 3479 .L237: 1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3480 .loc 1 1771 12 view .LVU1195 3481 00ac 0220 movs r0, #2 3482 00ae EFE7 b .L232 3483 .L238: 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3484 .loc 1 1704 14 view .LVU1196 3485 00b0 0220 movs r0, #2 3486 00b2 EDE7 b .L232 3487 .L239: 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3488 .loc 1 1708 5 discriminator 1 view .LVU1197 3489 00b4 0220 movs r0, #2 3490 00b6 EBE7 b .L232 3491 .L242: 3492 .align 2 3493 .L241: 3494 00b8 0000FFFF .word -65536 3495 00bc 00000000 .word I2C_Master_ISR_IT 3496 00c0 00200080 .word -2147475456 3497 .cfi_endproc 3498 .LFE343: 3500 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3501 .align 1 3502 .global HAL_I2C_Master_Receive_IT 3503 .syntax unified 3504 .thumb 3505 .thumb_func 3507 HAL_I2C_Master_Receive_IT: 3508 .LVL242: ARM GAS /tmp/ccN54YTb.s page 213 3509 .LFB344: 1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3510 .loc 1 1787 1 is_stmt 1 view -0 3511 .cfi_startproc 3512 @ args = 0, pretend = 0, frame = 0 3513 @ frame_needed = 0, uses_anonymous_args = 0 1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3514 .loc 1 1787 1 is_stmt 0 view .LVU1199 3515 0000 30B5 push {r4, r5, lr} 3516 .cfi_def_cfa_offset 12 3517 .cfi_offset 4, -12 3518 .cfi_offset 5, -8 3519 .cfi_offset 14, -4 3520 0002 83B0 sub sp, sp, #12 3521 .cfi_def_cfa_offset 24 3522 0004 0446 mov r4, r0 1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3523 .loc 1 1788 3 is_stmt 1 view .LVU1200 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3524 .loc 1 1790 3 view .LVU1201 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3525 .loc 1 1790 11 is_stmt 0 view .LVU1202 3526 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3527 .LVL243: 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3528 .loc 1 1790 6 view .LVU1203 3529 000a 2028 cmp r0, #32 3530 000c 37D1 bne .L247 1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3531 .loc 1 1792 5 is_stmt 1 view .LVU1204 1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3532 .loc 1 1792 9 is_stmt 0 view .LVU1205 3533 000e 2068 ldr r0, [r4] 3534 0010 8069 ldr r0, [r0, #24] 1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3535 .loc 1 1792 8 view .LVU1206 3536 0012 10F4004F tst r0, #32768 3537 0016 34D1 bne .L248 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3538 .loc 1 1798 5 is_stmt 1 view .LVU1207 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3539 .loc 1 1798 5 view .LVU1208 3540 0018 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3541 001c 0128 cmp r0, #1 3542 001e 32D0 beq .L249 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3543 .loc 1 1798 5 discriminator 2 view .LVU1209 3544 0020 0120 movs r0, #1 3545 0022 84F84000 strb r0, [r4, #64] 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3546 .loc 1 1798 5 view .LVU1210 1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3547 .loc 1 1800 5 view .LVU1211 1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3548 .loc 1 1800 23 is_stmt 0 view .LVU1212 3549 0026 2220 movs r0, #34 3550 0028 84F84100 strb r0, [r4, #65] ARM GAS /tmp/ccN54YTb.s page 214 1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3551 .loc 1 1801 5 is_stmt 1 view .LVU1213 1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3552 .loc 1 1801 23 is_stmt 0 view .LVU1214 3553 002c 1020 movs r0, #16 3554 002e 84F84200 strb r0, [r4, #66] 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3555 .loc 1 1802 5 is_stmt 1 view .LVU1215 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3556 .loc 1 1802 23 is_stmt 0 view .LVU1216 3557 0032 0020 movs r0, #0 3558 0034 6064 str r0, [r4, #68] 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3559 .loc 1 1805 5 is_stmt 1 view .LVU1217 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3560 .loc 1 1805 23 is_stmt 0 view .LVU1218 3561 0036 6262 str r2, [r4, #36] 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3562 .loc 1 1806 5 is_stmt 1 view .LVU1219 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3563 .loc 1 1806 23 is_stmt 0 view .LVU1220 3564 0038 6385 strh r3, [r4, #42] @ movhi 1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3565 .loc 1 1807 5 is_stmt 1 view .LVU1221 1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3566 .loc 1 1807 23 is_stmt 0 view .LVU1222 3567 003a 144B ldr r3, .L251 3568 .LVL244: 1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3569 .loc 1 1807 23 view .LVU1223 3570 003c E362 str r3, [r4, #44] 3571 .LVL245: 1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3572 .loc 1 1808 5 is_stmt 1 view .LVU1224 1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3573 .loc 1 1808 23 is_stmt 0 view .LVU1225 3574 003e 144B ldr r3, .L251+4 3575 0040 6363 str r3, [r4, #52] 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3576 .loc 1 1810 5 is_stmt 1 view .LVU1226 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3577 .loc 1 1810 13 is_stmt 0 view .LVU1227 3578 0042 638D ldrh r3, [r4, #42] 3579 0044 9BB2 uxth r3, r3 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3580 .loc 1 1810 8 view .LVU1228 3581 0046 FF2B cmp r3, #255 3582 0048 14D9 bls .L245 1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3583 .loc 1 1812 7 is_stmt 1 view .LVU1229 1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3584 .loc 1 1812 22 is_stmt 0 view .LVU1230 3585 004a FF23 movs r3, #255 3586 004c 2385 strh r3, [r4, #40] @ movhi 1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3587 .loc 1 1813 7 is_stmt 1 view .LVU1231 3588 .LVL246: ARM GAS /tmp/ccN54YTb.s page 215 1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3589 .loc 1 1813 16 is_stmt 0 view .LVU1232 3590 004e 4FF08073 mov r3, #16777216 3591 .LVL247: 3592 .L246: 1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3593 .loc 1 1823 5 is_stmt 1 view .LVU1233 3594 0052 104A ldr r2, .L251+8 3595 .LVL248: 1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3596 .loc 1 1823 5 is_stmt 0 view .LVU1234 3597 0054 0092 str r2, [sp] 3598 .LVL249: 1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3599 .loc 1 1823 5 view .LVU1235 3600 0056 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3601 005a 2046 mov r0, r4 3602 005c FFF7FEFF bl I2C_TransferConfig 3603 .LVL250: 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3604 .loc 1 1826 5 is_stmt 1 view .LVU1236 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3605 .loc 1 1826 5 view .LVU1237 3606 0060 0025 movs r5, #0 3607 0062 84F84050 strb r5, [r4, #64] 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3608 .loc 1 1826 5 view .LVU1238 1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3609 .loc 1 1836 5 view .LVU1239 3610 0066 0221 movs r1, #2 3611 0068 2046 mov r0, r4 3612 006a FFF7FEFF bl I2C_Enable_IRQ 3613 .LVL251: 1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3614 .loc 1 1838 5 view .LVU1240 1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3615 .loc 1 1838 12 is_stmt 0 view .LVU1241 3616 006e 2846 mov r0, r5 3617 .LVL252: 3618 .L244: 1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3619 .loc 1 1844 1 view .LVU1242 3620 0070 03B0 add sp, sp, #12 3621 .cfi_remember_state 3622 .cfi_def_cfa_offset 12 3623 @ sp needed 3624 0072 30BD pop {r4, r5, pc} 3625 .LVL253: 3626 .L245: 3627 .cfi_restore_state 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3628 .loc 1 1817 7 is_stmt 1 view .LVU1243 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3629 .loc 1 1817 28 is_stmt 0 view .LVU1244 3630 0074 638D ldrh r3, [r4, #42] 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3631 .loc 1 1817 22 view .LVU1245 ARM GAS /tmp/ccN54YTb.s page 216 3632 0076 2385 strh r3, [r4, #40] @ movhi 1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3633 .loc 1 1818 7 is_stmt 1 view .LVU1246 3634 .LVL254: 1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3635 .loc 1 1818 16 is_stmt 0 view .LVU1247 3636 0078 4FF00073 mov r3, #33554432 3637 007c E9E7 b .L246 3638 .LVL255: 3639 .L247: 1842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3640 .loc 1 1842 12 view .LVU1248 3641 007e 0220 movs r0, #2 3642 0080 F6E7 b .L244 3643 .L248: 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3644 .loc 1 1794 14 view .LVU1249 3645 0082 0220 movs r0, #2 3646 0084 F4E7 b .L244 3647 .L249: 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3648 .loc 1 1798 5 discriminator 1 view .LVU1250 3649 0086 0220 movs r0, #2 3650 0088 F2E7 b .L244 3651 .L252: 3652 008a 00BF .align 2 3653 .L251: 3654 008c 0000FFFF .word -65536 3655 0090 00000000 .word I2C_Master_ISR_IT 3656 0094 00240080 .word -2147474432 3657 .cfi_endproc 3658 .LFE344: 3660 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3661 .align 1 3662 .global HAL_I2C_Slave_Transmit_IT 3663 .syntax unified 3664 .thumb 3665 .thumb_func 3667 HAL_I2C_Slave_Transmit_IT: 3668 .LVL256: 3669 .LFB345: 1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3670 .loc 1 1855 1 is_stmt 1 view -0 3671 .cfi_startproc 3672 @ args = 0, pretend = 0, frame = 0 3673 @ frame_needed = 0, uses_anonymous_args = 0 1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3674 .loc 1 1856 3 view .LVU1252 1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3675 .loc 1 1856 11 is_stmt 0 view .LVU1253 3676 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3677 .loc 1 1856 6 view .LVU1254 3678 0004 202B cmp r3, #32 3679 0006 38D1 bne .L256 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3680 .loc 1 1859 5 is_stmt 1 view .LVU1255 ARM GAS /tmp/ccN54YTb.s page 217 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3681 .loc 1 1859 5 view .LVU1256 3682 0008 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3683 000c 012B cmp r3, #1 3684 000e 36D0 beq .L257 1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3685 .loc 1 1855 1 is_stmt 0 view .LVU1257 3686 0010 10B5 push {r4, lr} 3687 .cfi_def_cfa_offset 8 3688 .cfi_offset 4, -8 3689 .cfi_offset 14, -4 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3690 .loc 1 1859 5 is_stmt 1 discriminator 2 view .LVU1258 3691 0012 0123 movs r3, #1 3692 0014 80F84030 strb r3, [r0, #64] 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3693 .loc 1 1859 5 view .LVU1259 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3694 .loc 1 1861 5 view .LVU1260 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3695 .loc 1 1861 23 is_stmt 0 view .LVU1261 3696 0018 2123 movs r3, #33 3697 001a 80F84130 strb r3, [r0, #65] 1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3698 .loc 1 1862 5 is_stmt 1 view .LVU1262 1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3699 .loc 1 1862 23 is_stmt 0 view .LVU1263 3700 001e 2023 movs r3, #32 3701 0020 80F84230 strb r3, [r0, #66] 1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3702 .loc 1 1863 5 is_stmt 1 view .LVU1264 1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3703 .loc 1 1863 23 is_stmt 0 view .LVU1265 3704 0024 0023 movs r3, #0 3705 0026 4364 str r3, [r0, #68] 1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3706 .loc 1 1866 5 is_stmt 1 view .LVU1266 1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3707 .loc 1 1866 9 is_stmt 0 view .LVU1267 3708 0028 0468 ldr r4, [r0] 1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3709 .loc 1 1866 19 view .LVU1268 3710 002a 6368 ldr r3, [r4, #4] 1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3711 .loc 1 1866 25 view .LVU1269 3712 002c 23F40043 bic r3, r3, #32768 3713 0030 6360 str r3, [r4, #4] 1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3714 .loc 1 1869 5 is_stmt 1 view .LVU1270 1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3715 .loc 1 1869 23 is_stmt 0 view .LVU1271 3716 0032 4162 str r1, [r0, #36] 1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3717 .loc 1 1870 5 is_stmt 1 view .LVU1272 1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3718 .loc 1 1870 23 is_stmt 0 view .LVU1273 3719 0034 4285 strh r2, [r0, #42] @ movhi ARM GAS /tmp/ccN54YTb.s page 218 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3720 .loc 1 1871 5 is_stmt 1 view .LVU1274 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3721 .loc 1 1871 29 is_stmt 0 view .LVU1275 3722 0036 438D ldrh r3, [r0, #42] 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3723 .loc 1 1871 23 view .LVU1276 3724 0038 0385 strh r3, [r0, #40] @ movhi 1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3725 .loc 1 1872 5 is_stmt 1 view .LVU1277 1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3726 .loc 1 1872 23 is_stmt 0 view .LVU1278 3727 003a 124B ldr r3, .L263 3728 003c C362 str r3, [r0, #44] 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3729 .loc 1 1873 5 is_stmt 1 view .LVU1279 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3730 .loc 1 1873 23 is_stmt 0 view .LVU1280 3731 003e 124B ldr r3, .L263+4 3732 0040 4363 str r3, [r0, #52] 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3733 .loc 1 1876 5 is_stmt 1 view .LVU1281 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3734 .loc 1 1876 19 is_stmt 0 view .LVU1282 3735 0042 036A ldr r3, [r0, #32] 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3736 .loc 1 1876 8 view .LVU1283 3737 0044 B3F5003F cmp r3, #131072 3738 0048 08D0 beq .L262 3739 .LVL257: 3740 .L255: 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3741 .loc 1 1890 5 is_stmt 1 view .LVU1284 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3742 .loc 1 1890 5 view .LVU1285 3743 004a 0024 movs r4, #0 3744 004c 80F84040 strb r4, [r0, #64] 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3745 .loc 1 1890 5 view .LVU1286 1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3746 .loc 1 1900 5 view .LVU1287 3747 0050 48F20101 movw r1, #32769 3748 .LVL258: 1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3749 .loc 1 1900 5 is_stmt 0 view .LVU1288 3750 0054 FFF7FEFF bl I2C_Enable_IRQ 3751 .LVL259: 1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3752 .loc 1 1902 5 is_stmt 1 view .LVU1289 1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3753 .loc 1 1902 12 is_stmt 0 view .LVU1290 3754 0058 2046 mov r0, r4 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3755 .loc 1 1908 1 view .LVU1291 3756 005a 10BD pop {r4, pc} 3757 .LVL260: 3758 .L262: ARM GAS /tmp/ccN54YTb.s page 219 1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3759 .loc 1 1880 7 is_stmt 1 view .LVU1292 1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3760 .loc 1 1880 11 is_stmt 0 view .LVU1293 3761 005c 0368 ldr r3, [r0] 1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3762 .loc 1 1880 30 view .LVU1294 3763 005e 0A78 ldrb r2, [r1] @ zero_extendqisi2 3764 .LVL261: 1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3765 .loc 1 1880 28 view .LVU1295 3766 0060 9A62 str r2, [r3, #40] 1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3767 .loc 1 1883 7 is_stmt 1 view .LVU1296 1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3768 .loc 1 1883 11 is_stmt 0 view .LVU1297 3769 0062 436A ldr r3, [r0, #36] 1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3770 .loc 1 1883 21 view .LVU1298 3771 0064 0133 adds r3, r3, #1 3772 0066 4362 str r3, [r0, #36] 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3773 .loc 1 1885 7 is_stmt 1 view .LVU1299 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3774 .loc 1 1885 11 is_stmt 0 view .LVU1300 3775 0068 438D ldrh r3, [r0, #42] 3776 006a 9BB2 uxth r3, r3 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3777 .loc 1 1885 22 view .LVU1301 3778 006c 013B subs r3, r3, #1 3779 006e 9BB2 uxth r3, r3 3780 0070 4385 strh r3, [r0, #42] @ movhi 1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3781 .loc 1 1886 7 is_stmt 1 view .LVU1302 1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3782 .loc 1 1886 11 is_stmt 0 view .LVU1303 3783 0072 038D ldrh r3, [r0, #40] 1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3784 .loc 1 1886 21 view .LVU1304 3785 0074 013B subs r3, r3, #1 3786 0076 0385 strh r3, [r0, #40] @ movhi 3787 0078 E7E7 b .L255 3788 .LVL262: 3789 .L256: 3790 .cfi_def_cfa_offset 0 3791 .cfi_restore 4 3792 .cfi_restore 14 1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3793 .loc 1 1906 12 view .LVU1305 3794 007a 0220 movs r0, #2 3795 .LVL263: 1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3796 .loc 1 1906 12 view .LVU1306 3797 007c 7047 bx lr 3798 .LVL264: 3799 .L257: 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 220 3800 .loc 1 1859 5 discriminator 1 view .LVU1307 3801 007e 0220 movs r0, #2 3802 .LVL265: 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3803 .loc 1 1908 1 view .LVU1308 3804 0080 7047 bx lr 3805 .L264: 3806 0082 00BF .align 2 3807 .L263: 3808 0084 0000FFFF .word -65536 3809 0088 00000000 .word I2C_Slave_ISR_IT 3810 .cfi_endproc 3811 .LFE345: 3813 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3814 .align 1 3815 .global HAL_I2C_Slave_Receive_IT 3816 .syntax unified 3817 .thumb 3818 .thumb_func 3820 HAL_I2C_Slave_Receive_IT: 3821 .LVL266: 3822 .LFB346: 1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3823 .loc 1 1919 1 is_stmt 1 view -0 3824 .cfi_startproc 3825 @ args = 0, pretend = 0, frame = 0 3826 @ frame_needed = 0, uses_anonymous_args = 0 1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3827 .loc 1 1919 1 is_stmt 0 view .LVU1310 3828 0000 38B5 push {r3, r4, r5, lr} 3829 .cfi_def_cfa_offset 16 3830 .cfi_offset 3, -16 3831 .cfi_offset 4, -12 3832 .cfi_offset 5, -8 3833 .cfi_offset 14, -4 1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3834 .loc 1 1920 3 is_stmt 1 view .LVU1311 1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3835 .loc 1 1920 11 is_stmt 0 view .LVU1312 3836 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3837 .loc 1 1920 6 view .LVU1313 3838 0006 202B cmp r3, #32 3839 0008 23D1 bne .L267 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3840 .loc 1 1923 5 is_stmt 1 view .LVU1314 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3841 .loc 1 1923 5 view .LVU1315 3842 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3843 000e 012B cmp r3, #1 3844 0010 21D0 beq .L268 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3845 .loc 1 1923 5 discriminator 2 view .LVU1316 3846 0012 0123 movs r3, #1 3847 0014 80F84030 strb r3, [r0, #64] 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3848 .loc 1 1923 5 view .LVU1317 ARM GAS /tmp/ccN54YTb.s page 221 1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3849 .loc 1 1925 5 view .LVU1318 1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3850 .loc 1 1925 23 is_stmt 0 view .LVU1319 3851 0018 2223 movs r3, #34 3852 001a 80F84130 strb r3, [r0, #65] 1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3853 .loc 1 1926 5 is_stmt 1 view .LVU1320 1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3854 .loc 1 1926 23 is_stmt 0 view .LVU1321 3855 001e 2023 movs r3, #32 3856 0020 80F84230 strb r3, [r0, #66] 1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3857 .loc 1 1927 5 is_stmt 1 view .LVU1322 1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3858 .loc 1 1927 23 is_stmt 0 view .LVU1323 3859 0024 0024 movs r4, #0 3860 0026 4464 str r4, [r0, #68] 1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3861 .loc 1 1930 5 is_stmt 1 view .LVU1324 1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3862 .loc 1 1930 9 is_stmt 0 view .LVU1325 3863 0028 0568 ldr r5, [r0] 1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3864 .loc 1 1930 19 view .LVU1326 3865 002a 6B68 ldr r3, [r5, #4] 1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3866 .loc 1 1930 25 view .LVU1327 3867 002c 23F40043 bic r3, r3, #32768 3868 0030 6B60 str r3, [r5, #4] 1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3869 .loc 1 1933 5 is_stmt 1 view .LVU1328 1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3870 .loc 1 1933 23 is_stmt 0 view .LVU1329 3871 0032 4162 str r1, [r0, #36] 1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3872 .loc 1 1934 5 is_stmt 1 view .LVU1330 1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3873 .loc 1 1934 23 is_stmt 0 view .LVU1331 3874 0034 4285 strh r2, [r0, #42] @ movhi 1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3875 .loc 1 1935 5 is_stmt 1 view .LVU1332 1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3876 .loc 1 1935 29 is_stmt 0 view .LVU1333 3877 0036 438D ldrh r3, [r0, #42] 1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3878 .loc 1 1935 23 view .LVU1334 3879 0038 0385 strh r3, [r0, #40] @ movhi 1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3880 .loc 1 1936 5 is_stmt 1 view .LVU1335 1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3881 .loc 1 1936 23 is_stmt 0 view .LVU1336 3882 003a 084B ldr r3, .L270 3883 003c C362 str r3, [r0, #44] 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3884 .loc 1 1937 5 is_stmt 1 view .LVU1337 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 222 3885 .loc 1 1937 23 is_stmt 0 view .LVU1338 3886 003e 084B ldr r3, .L270+4 3887 0040 4363 str r3, [r0, #52] 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3888 .loc 1 1940 5 is_stmt 1 view .LVU1339 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3889 .loc 1 1940 5 view .LVU1340 3890 0042 80F84040 strb r4, [r0, #64] 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3891 .loc 1 1940 5 view .LVU1341 1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3892 .loc 1 1950 5 view .LVU1342 3893 0046 48F20201 movw r1, #32770 3894 .LVL267: 1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3895 .loc 1 1950 5 is_stmt 0 view .LVU1343 3896 004a FFF7FEFF bl I2C_Enable_IRQ 3897 .LVL268: 1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3898 .loc 1 1952 5 is_stmt 1 view .LVU1344 1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3899 .loc 1 1952 12 is_stmt 0 view .LVU1345 3900 004e 2046 mov r0, r4 3901 .L266: 1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3902 .loc 1 1958 1 view .LVU1346 3903 0050 38BD pop {r3, r4, r5, pc} 3904 .LVL269: 3905 .L267: 1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3906 .loc 1 1956 12 view .LVU1347 3907 0052 0220 movs r0, #2 3908 .LVL270: 1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3909 .loc 1 1956 12 view .LVU1348 3910 0054 FCE7 b .L266 3911 .LVL271: 3912 .L268: 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3913 .loc 1 1923 5 discriminator 1 view .LVU1349 3914 0056 0220 movs r0, #2 3915 .LVL272: 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3916 .loc 1 1923 5 discriminator 1 view .LVU1350 3917 0058 FAE7 b .L266 3918 .L271: 3919 005a 00BF .align 2 3920 .L270: 3921 005c 0000FFFF .word -65536 3922 0060 00000000 .word I2C_Slave_ISR_IT 3923 .cfi_endproc 3924 .LFE346: 3926 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3927 .align 1 3928 .global HAL_I2C_Master_Transmit_DMA 3929 .syntax unified 3930 .thumb ARM GAS /tmp/ccN54YTb.s page 223 3931 .thumb_func 3933 HAL_I2C_Master_Transmit_DMA: 3934 .LVL273: 3935 .LFB347: 1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3936 .loc 1 1972 1 is_stmt 1 view -0 3937 .cfi_startproc 3938 @ args = 0, pretend = 0, frame = 0 3939 @ frame_needed = 0, uses_anonymous_args = 0 1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3940 .loc 1 1972 1 is_stmt 0 view .LVU1352 3941 0000 70B5 push {r4, r5, r6, lr} 3942 .cfi_def_cfa_offset 16 3943 .cfi_offset 4, -16 3944 .cfi_offset 5, -12 3945 .cfi_offset 6, -8 3946 .cfi_offset 14, -4 3947 0002 82B0 sub sp, sp, #8 3948 .cfi_def_cfa_offset 24 3949 0004 0446 mov r4, r0 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3950 .loc 1 1973 3 is_stmt 1 view .LVU1353 1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3951 .loc 1 1974 3 view .LVU1354 1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3952 .loc 1 1975 3 view .LVU1355 3953 .LVL274: 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3954 .loc 1 1977 3 view .LVU1356 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3955 .loc 1 1977 11 is_stmt 0 view .LVU1357 3956 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3957 .LVL275: 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3958 .loc 1 1977 6 view .LVU1358 3959 000a 2028 cmp r0, #32 3960 000c 40F09D80 bne .L282 3961 0010 0D46 mov r5, r1 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3962 .loc 1 1979 5 is_stmt 1 view .LVU1359 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3963 .loc 1 1979 9 is_stmt 0 view .LVU1360 3964 0012 2068 ldr r0, [r4] 3965 0014 8169 ldr r1, [r0, #24] 3966 .LVL276: 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3967 .loc 1 1979 8 view .LVU1361 3968 0016 11F40041 ands r1, r1, #32768 3969 001a 40F09980 bne .L283 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3970 .loc 1 1985 5 is_stmt 1 view .LVU1362 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3971 .loc 1 1985 5 view .LVU1363 3972 001e 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 3973 0022 012E cmp r6, #1 3974 0024 00F09680 beq .L284 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 224 3975 .loc 1 1985 5 discriminator 2 view .LVU1364 3976 0028 0126 movs r6, #1 3977 002a 84F84060 strb r6, [r4, #64] 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3978 .loc 1 1985 5 view .LVU1365 1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3979 .loc 1 1987 5 view .LVU1366 1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3980 .loc 1 1987 23 is_stmt 0 view .LVU1367 3981 002e 2126 movs r6, #33 3982 0030 84F84160 strb r6, [r4, #65] 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3983 .loc 1 1988 5 is_stmt 1 view .LVU1368 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3984 .loc 1 1988 23 is_stmt 0 view .LVU1369 3985 0034 1026 movs r6, #16 3986 0036 84F84260 strb r6, [r4, #66] 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3987 .loc 1 1989 5 is_stmt 1 view .LVU1370 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3988 .loc 1 1989 23 is_stmt 0 view .LVU1371 3989 003a 0026 movs r6, #0 3990 003c 6664 str r6, [r4, #68] 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3991 .loc 1 1992 5 is_stmt 1 view .LVU1372 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3992 .loc 1 1992 23 is_stmt 0 view .LVU1373 3993 003e 6262 str r2, [r4, #36] 1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3994 .loc 1 1993 5 is_stmt 1 view .LVU1374 1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3995 .loc 1 1993 23 is_stmt 0 view .LVU1375 3996 0040 6385 strh r3, [r4, #42] @ movhi 1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3997 .loc 1 1994 5 is_stmt 1 view .LVU1376 1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3998 .loc 1 1994 23 is_stmt 0 view .LVU1377 3999 0042 454B ldr r3, .L288 4000 .LVL277: 1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4001 .loc 1 1994 23 view .LVU1378 4002 0044 E362 str r3, [r4, #44] 4003 .LVL278: 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4004 .loc 1 1995 5 is_stmt 1 view .LVU1379 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4005 .loc 1 1995 23 is_stmt 0 view .LVU1380 4006 0046 454B ldr r3, .L288+4 4007 0048 6363 str r3, [r4, #52] 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4008 .loc 1 1997 5 is_stmt 1 view .LVU1381 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4009 .loc 1 1997 13 is_stmt 0 view .LVU1382 4010 004a 638D ldrh r3, [r4, #42] 4011 004c 9BB2 uxth r3, r3 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4012 .loc 1 1997 8 view .LVU1383 ARM GAS /tmp/ccN54YTb.s page 225 4013 004e FF2B cmp r3, #255 4014 0050 37D9 bls .L274 1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4015 .loc 1 1999 7 is_stmt 1 view .LVU1384 1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4016 .loc 1 1999 22 is_stmt 0 view .LVU1385 4017 0052 FF23 movs r3, #255 4018 0054 2385 strh r3, [r4, #40] @ movhi 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4019 .loc 1 2000 7 is_stmt 1 view .LVU1386 4020 .LVL279: 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4021 .loc 1 2000 16 is_stmt 0 view .LVU1387 4022 0056 4FF08076 mov r6, #16777216 4023 .LVL280: 4024 .L275: 2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4025 .loc 1 2008 5 is_stmt 1 view .LVU1388 2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4026 .loc 1 2008 13 is_stmt 0 view .LVU1389 4027 005a 238D ldrh r3, [r4, #40] 2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4028 .loc 1 2008 8 view .LVU1390 4029 005c 63B1 cbz r3, .L276 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4030 .loc 1 2012 7 is_stmt 1 view .LVU1391 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4031 .loc 1 2012 30 is_stmt 0 view .LVU1392 4032 005e 1378 ldrb r3, [r2] @ zero_extendqisi2 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4033 .loc 1 2012 28 view .LVU1393 4034 0060 8362 str r3, [r0, #40] 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4035 .loc 1 2015 7 is_stmt 1 view .LVU1394 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4036 .loc 1 2015 11 is_stmt 0 view .LVU1395 4037 0062 636A ldr r3, [r4, #36] 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4038 .loc 1 2015 21 view .LVU1396 4039 0064 0133 adds r3, r3, #1 4040 0066 6362 str r3, [r4, #36] 2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4041 .loc 1 2017 7 is_stmt 1 view .LVU1397 2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4042 .loc 1 2017 24 is_stmt 0 view .LVU1398 4043 0068 218D ldrh r1, [r4, #40] 4044 .LVL281: 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4045 .loc 1 2018 7 is_stmt 1 view .LVU1399 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4046 .loc 1 2018 11 is_stmt 0 view .LVU1400 4047 006a 638D ldrh r3, [r4, #42] 4048 006c 9BB2 uxth r3, r3 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4049 .loc 1 2018 22 view .LVU1401 4050 006e 013B subs r3, r3, #1 4051 0070 9BB2 uxth r3, r3 ARM GAS /tmp/ccN54YTb.s page 226 4052 0072 6385 strh r3, [r4, #42] @ movhi 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4053 .loc 1 2019 7 is_stmt 1 view .LVU1402 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4054 .loc 1 2019 21 is_stmt 0 view .LVU1403 4055 0074 4B1E subs r3, r1, #1 4056 0076 2385 strh r3, [r4, #40] @ movhi 4057 .LVL282: 4058 .L276: 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4059 .loc 1 2022 5 is_stmt 1 view .LVU1404 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4060 .loc 1 2022 13 is_stmt 0 view .LVU1405 4061 0078 238D ldrh r3, [r4, #40] 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4062 .loc 1 2022 8 view .LVU1406 4063 007a 002B cmp r3, #0 4064 007c 51D0 beq .L277 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4065 .loc 1 2024 7 is_stmt 1 view .LVU1407 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4066 .loc 1 2024 15 is_stmt 0 view .LVU1408 4067 007e A36B ldr r3, [r4, #56] 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4068 .loc 1 2024 10 view .LVU1409 4069 0080 23B3 cbz r3, .L278 2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4070 .loc 1 2027 9 is_stmt 1 view .LVU1410 2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4071 .loc 1 2027 40 is_stmt 0 view .LVU1411 4072 0082 374A ldr r2, .L288+8 4073 .LVL283: 2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4074 .loc 1 2027 40 view .LVU1412 4075 0084 DA63 str r2, [r3, #60] 2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4076 .loc 1 2030 9 is_stmt 1 view .LVU1413 2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4077 .loc 1 2030 13 is_stmt 0 view .LVU1414 4078 0086 A36B ldr r3, [r4, #56] 2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4079 .loc 1 2030 41 view .LVU1415 4080 0088 364A ldr r2, .L288+12 4081 008a DA64 str r2, [r3, #76] 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4082 .loc 1 2033 9 is_stmt 1 view .LVU1416 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4083 .loc 1 2033 13 is_stmt 0 view .LVU1417 4084 008c A26B ldr r2, [r4, #56] 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4085 .loc 1 2033 44 view .LVU1418 4086 008e 0023 movs r3, #0 4087 0090 1364 str r3, [r2, #64] 2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4088 .loc 1 2034 9 is_stmt 1 view .LVU1419 2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4089 .loc 1 2034 13 is_stmt 0 view .LVU1420 ARM GAS /tmp/ccN54YTb.s page 227 4090 0092 A26B ldr r2, [r4, #56] 2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4091 .loc 1 2034 41 view .LVU1421 4092 0094 1365 str r3, [r2, #80] 2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4093 .loc 1 2037 9 is_stmt 1 view .LVU1422 2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4094 .loc 1 2038 57 is_stmt 0 view .LVU1423 4095 0096 2268 ldr r2, [r4] 2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4096 .loc 1 2037 25 view .LVU1424 4097 0098 238D ldrh r3, [r4, #40] 4098 009a 2832 adds r2, r2, #40 4099 009c 616A ldr r1, [r4, #36] 4100 .LVL284: 2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4101 .loc 1 2037 25 view .LVU1425 4102 009e A06B ldr r0, [r4, #56] 4103 00a0 FFF7FEFF bl HAL_DMA_Start_IT 4104 .LVL285: 2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4105 .loc 1 2055 7 is_stmt 1 view .LVU1426 2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4106 .loc 1 2055 10 is_stmt 0 view .LVU1427 4107 00a4 00B3 cbz r0, .L287 2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4108 .loc 1 2080 9 is_stmt 1 view .LVU1428 2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4109 .loc 1 2080 25 is_stmt 0 view .LVU1429 4110 00a6 2023 movs r3, #32 4111 00a8 84F84130 strb r3, [r4, #65] 2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4112 .loc 1 2081 9 is_stmt 1 view .LVU1430 2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4113 .loc 1 2081 25 is_stmt 0 view .LVU1431 4114 00ac 0022 movs r2, #0 4115 00ae 84F84220 strb r2, [r4, #66] 2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4116 .loc 1 2084 9 is_stmt 1 view .LVU1432 2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4117 .loc 1 2084 13 is_stmt 0 view .LVU1433 4118 00b2 636C ldr r3, [r4, #68] 2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4119 .loc 1 2084 25 view .LVU1434 4120 00b4 43F01003 orr r3, r3, #16 4121 00b8 6364 str r3, [r4, #68] 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4122 .loc 1 2087 9 is_stmt 1 view .LVU1435 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4123 .loc 1 2087 9 view .LVU1436 4124 00ba 84F84020 strb r2, [r4, #64] 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4125 .loc 1 2087 9 view .LVU1437 2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4126 .loc 1 2089 9 view .LVU1438 2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4127 .loc 1 2089 16 is_stmt 0 view .LVU1439 ARM GAS /tmp/ccN54YTb.s page 228 4128 00be 0120 movs r0, #1 4129 .LVL286: 2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4130 .loc 1 2089 16 view .LVU1440 4131 00c0 44E0 b .L273 4132 .LVL287: 4133 .L274: 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4134 .loc 1 2004 7 is_stmt 1 view .LVU1441 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4135 .loc 1 2004 28 is_stmt 0 view .LVU1442 4136 00c2 638D ldrh r3, [r4, #42] 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4137 .loc 1 2004 22 view .LVU1443 4138 00c4 2385 strh r3, [r4, #40] @ movhi 2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4139 .loc 1 2005 7 is_stmt 1 view .LVU1444 4140 .LVL288: 2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4141 .loc 1 2005 16 is_stmt 0 view .LVU1445 4142 00c6 4FF00076 mov r6, #33554432 4143 00ca C6E7 b .L275 4144 .LVL289: 4145 .L278: 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4146 .loc 1 2043 9 is_stmt 1 view .LVU1446 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4147 .loc 1 2043 25 is_stmt 0 view .LVU1447 4148 00cc 2023 movs r3, #32 4149 00ce 84F84130 strb r3, [r4, #65] 2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4150 .loc 1 2044 9 is_stmt 1 view .LVU1448 2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4151 .loc 1 2044 25 is_stmt 0 view .LVU1449 4152 00d2 0022 movs r2, #0 4153 .LVL290: 2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4154 .loc 1 2044 25 view .LVU1450 4155 00d4 84F84220 strb r2, [r4, #66] 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4156 .loc 1 2047 9 is_stmt 1 view .LVU1451 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4157 .loc 1 2047 13 is_stmt 0 view .LVU1452 4158 00d8 636C ldr r3, [r4, #68] 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4159 .loc 1 2047 25 view .LVU1453 4160 00da 43F08003 orr r3, r3, #128 4161 00de 6364 str r3, [r4, #68] 2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4162 .loc 1 2050 9 is_stmt 1 view .LVU1454 2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4163 .loc 1 2050 9 view .LVU1455 4164 00e0 84F84020 strb r2, [r4, #64] 2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4165 .loc 1 2050 9 view .LVU1456 2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4166 .loc 1 2052 9 view .LVU1457 ARM GAS /tmp/ccN54YTb.s page 229 2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4167 .loc 1 2052 16 is_stmt 0 view .LVU1458 4168 00e4 0120 movs r0, #1 4169 00e6 31E0 b .L273 4170 .LVL291: 4171 .L287: 2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4172 .loc 1 2059 9 is_stmt 1 view .LVU1459 2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4173 .loc 1 2059 60 is_stmt 0 view .LVU1460 4174 00e8 228D ldrh r2, [r4, #40] 2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4175 .loc 1 2059 9 view .LVU1461 4176 00ea 0132 adds r2, r2, #1 4177 00ec 1E4B ldr r3, .L288+16 4178 00ee 0093 str r3, [sp] 4179 00f0 3346 mov r3, r6 4180 00f2 D2B2 uxtb r2, r2 4181 00f4 2946 mov r1, r5 4182 00f6 2046 mov r0, r4 4183 .LVL292: 2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4184 .loc 1 2059 9 view .LVU1462 4185 00f8 FFF7FEFF bl I2C_TransferConfig 4186 .LVL293: 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4187 .loc 1 2063 9 is_stmt 1 view .LVU1463 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4188 .loc 1 2063 13 is_stmt 0 view .LVU1464 4189 00fc 638D ldrh r3, [r4, #42] 4190 00fe 9BB2 uxth r3, r3 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4191 .loc 1 2063 32 view .LVU1465 4192 0100 228D ldrh r2, [r4, #40] 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4193 .loc 1 2063 25 view .LVU1466 4194 0102 9B1A subs r3, r3, r2 4195 0104 9BB2 uxth r3, r3 4196 0106 6385 strh r3, [r4, #42] @ movhi 2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4197 .loc 1 2066 9 is_stmt 1 view .LVU1467 2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4198 .loc 1 2066 9 view .LVU1468 4199 0108 0023 movs r3, #0 4200 010a 84F84030 strb r3, [r4, #64] 2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4201 .loc 1 2066 9 view .LVU1469 2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4202 .loc 1 2072 9 view .LVU1470 4203 010e 1021 movs r1, #16 4204 0110 2046 mov r0, r4 4205 0112 FFF7FEFF bl I2C_Enable_IRQ 4206 .LVL294: 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4207 .loc 1 2075 9 view .LVU1471 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4208 .loc 1 2075 13 is_stmt 0 view .LVU1472 ARM GAS /tmp/ccN54YTb.s page 230 4209 0116 2268 ldr r2, [r4] 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4210 .loc 1 2075 23 view .LVU1473 4211 0118 1368 ldr r3, [r2] 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4212 .loc 1 2075 29 view .LVU1474 4213 011a 43F48043 orr r3, r3, #16384 4214 011e 1360 str r3, [r2] 4215 0120 11E0 b .L281 4216 .LVL295: 4217 .L277: 2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4218 .loc 1 2095 7 is_stmt 1 view .LVU1475 2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4219 .loc 1 2095 21 is_stmt 0 view .LVU1476 4220 0122 124B ldr r3, .L288+20 4221 0124 6363 str r3, [r4, #52] 2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4222 .loc 1 2099 7 is_stmt 1 view .LVU1477 4223 0126 104B ldr r3, .L288+16 4224 0128 0093 str r3, [sp] 4225 012a 4FF00073 mov r3, #33554432 4226 012e CAB2 uxtb r2, r1 4227 .LVL296: 2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4228 .loc 1 2099 7 is_stmt 0 view .LVU1478 4229 0130 2946 mov r1, r5 4230 .LVL297: 2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4231 .loc 1 2099 7 view .LVU1479 4232 0132 2046 mov r0, r4 4233 0134 FFF7FEFF bl I2C_TransferConfig 4234 .LVL298: 2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4235 .loc 1 2103 7 is_stmt 1 view .LVU1480 2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4236 .loc 1 2103 7 view .LVU1481 4237 0138 0023 movs r3, #0 4238 013a 84F84030 strb r3, [r4, #64] 2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4239 .loc 1 2103 7 view .LVU1482 2112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4240 .loc 1 2112 7 view .LVU1483 4241 013e 0121 movs r1, #1 4242 0140 2046 mov r0, r4 4243 0142 FFF7FEFF bl I2C_Enable_IRQ 4244 .LVL299: 4245 .L281: 2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4246 .loc 1 2115 5 view .LVU1484 2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4247 .loc 1 2115 12 is_stmt 0 view .LVU1485 4248 0146 0020 movs r0, #0 4249 0148 00E0 b .L273 4250 .LVL300: 4251 .L282: 2119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 231 4252 .loc 1 2119 12 view .LVU1486 4253 014a 0220 movs r0, #2 4254 .LVL301: 4255 .L273: 2121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4256 .loc 1 2121 1 view .LVU1487 4257 014c 02B0 add sp, sp, #8 4258 .cfi_remember_state 4259 .cfi_def_cfa_offset 16 4260 @ sp needed 4261 014e 70BD pop {r4, r5, r6, pc} 4262 .LVL302: 4263 .L283: 4264 .cfi_restore_state 1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4265 .loc 1 1981 14 view .LVU1488 4266 0150 0220 movs r0, #2 4267 0152 FBE7 b .L273 4268 .L284: 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4269 .loc 1 1985 5 discriminator 1 view .LVU1489 4270 0154 0220 movs r0, #2 4271 0156 F9E7 b .L273 4272 .L289: 4273 .align 2 4274 .L288: 4275 0158 0000FFFF .word -65536 4276 015c 00000000 .word I2C_Master_ISR_DMA 4277 0160 00000000 .word I2C_DMAMasterTransmitCplt 4278 0164 00000000 .word I2C_DMAError 4279 0168 00200080 .word -2147475456 4280 016c 00000000 .word I2C_Master_ISR_IT 4281 .cfi_endproc 4282 .LFE347: 4284 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4285 .align 1 4286 .global HAL_I2C_Master_Receive_DMA 4287 .syntax unified 4288 .thumb 4289 .thumb_func 4291 HAL_I2C_Master_Receive_DMA: 4292 .LVL303: 4293 .LFB348: 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 4294 .loc 1 2135 1 is_stmt 1 view -0 4295 .cfi_startproc 4296 @ args = 0, pretend = 0, frame = 0 4297 @ frame_needed = 0, uses_anonymous_args = 0 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 4298 .loc 1 2135 1 is_stmt 0 view .LVU1491 4299 0000 70B5 push {r4, r5, r6, lr} 4300 .cfi_def_cfa_offset 16 4301 .cfi_offset 4, -16 4302 .cfi_offset 5, -12 4303 .cfi_offset 6, -8 4304 .cfi_offset 14, -4 4305 0002 82B0 sub sp, sp, #8 ARM GAS /tmp/ccN54YTb.s page 232 4306 .cfi_def_cfa_offset 24 4307 0004 0446 mov r4, r0 2136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4308 .loc 1 2136 3 is_stmt 1 view .LVU1492 2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4309 .loc 1 2137 3 view .LVU1493 2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4310 .loc 1 2139 3 view .LVU1494 2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4311 .loc 1 2139 11 is_stmt 0 view .LVU1495 4312 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4313 .LVL304: 2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4314 .loc 1 2139 6 view .LVU1496 4315 000a 2028 cmp r0, #32 4316 000c 40F08C80 bne .L299 4317 0010 0D46 mov r5, r1 2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4318 .loc 1 2141 5 is_stmt 1 view .LVU1497 2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4319 .loc 1 2141 9 is_stmt 0 view .LVU1498 4320 0012 2168 ldr r1, [r4] 4321 .LVL305: 2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4322 .loc 1 2141 9 view .LVU1499 4323 0014 8969 ldr r1, [r1, #24] 2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4324 .loc 1 2141 8 view .LVU1500 4325 0016 11F4004F tst r1, #32768 4326 001a 40F08880 bne .L300 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4327 .loc 1 2147 5 is_stmt 1 view .LVU1501 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4328 .loc 1 2147 5 view .LVU1502 4329 001e 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 4330 0022 0129 cmp r1, #1 4331 0024 00F08580 beq .L301 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4332 .loc 1 2147 5 discriminator 2 view .LVU1503 4333 0028 0121 movs r1, #1 4334 002a 84F84010 strb r1, [r4, #64] 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4335 .loc 1 2147 5 view .LVU1504 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4336 .loc 1 2149 5 view .LVU1505 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4337 .loc 1 2149 23 is_stmt 0 view .LVU1506 4338 002e 2221 movs r1, #34 4339 0030 84F84110 strb r1, [r4, #65] 2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4340 .loc 1 2150 5 is_stmt 1 view .LVU1507 2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4341 .loc 1 2150 23 is_stmt 0 view .LVU1508 4342 0034 1021 movs r1, #16 4343 0036 84F84210 strb r1, [r4, #66] 2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4344 .loc 1 2151 5 is_stmt 1 view .LVU1509 ARM GAS /tmp/ccN54YTb.s page 233 2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4345 .loc 1 2151 23 is_stmt 0 view .LVU1510 4346 003a 0021 movs r1, #0 4347 003c 6164 str r1, [r4, #68] 2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4348 .loc 1 2154 5 is_stmt 1 view .LVU1511 2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4349 .loc 1 2154 23 is_stmt 0 view .LVU1512 4350 003e 6262 str r2, [r4, #36] 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4351 .loc 1 2155 5 is_stmt 1 view .LVU1513 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4352 .loc 1 2155 23 is_stmt 0 view .LVU1514 4353 0040 6385 strh r3, [r4, #42] @ movhi 2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4354 .loc 1 2156 5 is_stmt 1 view .LVU1515 2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4355 .loc 1 2156 23 is_stmt 0 view .LVU1516 4356 0042 3D4B ldr r3, .L305 4357 .LVL306: 2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4358 .loc 1 2156 23 view .LVU1517 4359 0044 E362 str r3, [r4, #44] 4360 .LVL307: 2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4361 .loc 1 2157 5 is_stmt 1 view .LVU1518 2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4362 .loc 1 2157 23 is_stmt 0 view .LVU1519 4363 0046 3D4B ldr r3, .L305+4 4364 0048 6363 str r3, [r4, #52] 2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4365 .loc 1 2159 5 is_stmt 1 view .LVU1520 2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4366 .loc 1 2159 13 is_stmt 0 view .LVU1521 4367 004a 638D ldrh r3, [r4, #42] 4368 004c 9BB2 uxth r3, r3 2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4369 .loc 1 2159 8 view .LVU1522 4370 004e FF2B cmp r3, #255 4371 0050 27D9 bls .L292 2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4372 .loc 1 2161 7 is_stmt 1 view .LVU1523 2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4373 .loc 1 2161 22 is_stmt 0 view .LVU1524 4374 0052 FF23 movs r3, #255 4375 0054 2385 strh r3, [r4, #40] @ movhi 2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4376 .loc 1 2162 7 is_stmt 1 view .LVU1525 4377 .LVL308: 2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4378 .loc 1 2162 16 is_stmt 0 view .LVU1526 4379 0056 4FF08076 mov r6, #16777216 4380 .LVL309: 4381 .L293: 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4382 .loc 1 2170 5 is_stmt 1 view .LVU1527 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 234 4383 .loc 1 2170 13 is_stmt 0 view .LVU1528 4384 005a 218D ldrh r1, [r4, #40] 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4385 .loc 1 2170 8 view .LVU1529 4386 005c 0029 cmp r1, #0 4387 005e 4FD0 beq .L294 2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4388 .loc 1 2172 7 is_stmt 1 view .LVU1530 2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4389 .loc 1 2172 15 is_stmt 0 view .LVU1531 4390 0060 E36B ldr r3, [r4, #60] 2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4391 .loc 1 2172 10 view .LVU1532 4392 0062 1BB3 cbz r3, .L295 2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4393 .loc 1 2175 9 is_stmt 1 view .LVU1533 2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4394 .loc 1 2175 40 is_stmt 0 view .LVU1534 4395 0064 3649 ldr r1, .L305+8 4396 0066 D963 str r1, [r3, #60] 2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4397 .loc 1 2178 9 is_stmt 1 view .LVU1535 2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4398 .loc 1 2178 13 is_stmt 0 view .LVU1536 4399 0068 E36B ldr r3, [r4, #60] 2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4400 .loc 1 2178 41 view .LVU1537 4401 006a 3649 ldr r1, .L305+12 4402 006c D964 str r1, [r3, #76] 2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4403 .loc 1 2181 9 is_stmt 1 view .LVU1538 2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4404 .loc 1 2181 13 is_stmt 0 view .LVU1539 4405 006e E16B ldr r1, [r4, #60] 2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4406 .loc 1 2181 44 view .LVU1540 4407 0070 0023 movs r3, #0 4408 0072 0B64 str r3, [r1, #64] 2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4409 .loc 1 2182 9 is_stmt 1 view .LVU1541 2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4410 .loc 1 2182 13 is_stmt 0 view .LVU1542 4411 0074 E16B ldr r1, [r4, #60] 2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4412 .loc 1 2182 41 view .LVU1543 4413 0076 0B65 str r3, [r1, #80] 2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4414 .loc 1 2185 9 is_stmt 1 view .LVU1544 2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4415 .loc 1 2185 71 is_stmt 0 view .LVU1545 4416 0078 2168 ldr r1, [r4] 2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4417 .loc 1 2185 25 view .LVU1546 4418 007a 238D ldrh r3, [r4, #40] 4419 007c 2431 adds r1, r1, #36 4420 007e E06B ldr r0, [r4, #60] 4421 0080 FFF7FEFF bl HAL_DMA_Start_IT ARM GAS /tmp/ccN54YTb.s page 235 4422 .LVL310: 2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4423 .loc 1 2203 7 is_stmt 1 view .LVU1547 2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4424 .loc 1 2203 10 is_stmt 0 view .LVU1548 4425 0084 00B3 cbz r0, .L304 2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4426 .loc 1 2227 9 is_stmt 1 view .LVU1549 2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4427 .loc 1 2227 25 is_stmt 0 view .LVU1550 4428 0086 2023 movs r3, #32 4429 0088 84F84130 strb r3, [r4, #65] 2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4430 .loc 1 2228 9 is_stmt 1 view .LVU1551 2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4431 .loc 1 2228 25 is_stmt 0 view .LVU1552 4432 008c 0022 movs r2, #0 4433 008e 84F84220 strb r2, [r4, #66] 2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4434 .loc 1 2231 9 is_stmt 1 view .LVU1553 2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4435 .loc 1 2231 13 is_stmt 0 view .LVU1554 4436 0092 636C ldr r3, [r4, #68] 2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4437 .loc 1 2231 25 view .LVU1555 4438 0094 43F01003 orr r3, r3, #16 4439 0098 6364 str r3, [r4, #68] 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4440 .loc 1 2234 9 is_stmt 1 view .LVU1556 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4441 .loc 1 2234 9 view .LVU1557 4442 009a 84F84020 strb r2, [r4, #64] 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4443 .loc 1 2234 9 view .LVU1558 2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4444 .loc 1 2236 9 view .LVU1559 2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4445 .loc 1 2236 16 is_stmt 0 view .LVU1560 4446 009e 0120 movs r0, #1 4447 .LVL311: 2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4448 .loc 1 2236 16 view .LVU1561 4449 00a0 43E0 b .L291 4450 .LVL312: 4451 .L292: 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4452 .loc 1 2166 7 is_stmt 1 view .LVU1562 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4453 .loc 1 2166 28 is_stmt 0 view .LVU1563 4454 00a2 638D ldrh r3, [r4, #42] 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4455 .loc 1 2166 22 view .LVU1564 4456 00a4 2385 strh r3, [r4, #40] @ movhi 2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4457 .loc 1 2167 7 is_stmt 1 view .LVU1565 4458 .LVL313: 2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 236 4459 .loc 1 2167 16 is_stmt 0 view .LVU1566 4460 00a6 4FF00076 mov r6, #33554432 4461 00aa D6E7 b .L293 4462 .LVL314: 4463 .L295: 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4464 .loc 1 2191 9 is_stmt 1 view .LVU1567 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4465 .loc 1 2191 25 is_stmt 0 view .LVU1568 4466 00ac 2023 movs r3, #32 4467 00ae 84F84130 strb r3, [r4, #65] 2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4468 .loc 1 2192 9 is_stmt 1 view .LVU1569 2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4469 .loc 1 2192 25 is_stmt 0 view .LVU1570 4470 00b2 0022 movs r2, #0 4471 .LVL315: 2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4472 .loc 1 2192 25 view .LVU1571 4473 00b4 84F84220 strb r2, [r4, #66] 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4474 .loc 1 2195 9 is_stmt 1 view .LVU1572 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4475 .loc 1 2195 13 is_stmt 0 view .LVU1573 4476 00b8 636C ldr r3, [r4, #68] 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4477 .loc 1 2195 25 view .LVU1574 4478 00ba 43F08003 orr r3, r3, #128 4479 00be 6364 str r3, [r4, #68] 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4480 .loc 1 2198 9 is_stmt 1 view .LVU1575 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4481 .loc 1 2198 9 view .LVU1576 4482 00c0 84F84020 strb r2, [r4, #64] 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4483 .loc 1 2198 9 view .LVU1577 2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4484 .loc 1 2200 9 view .LVU1578 2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4485 .loc 1 2200 16 is_stmt 0 view .LVU1579 4486 00c4 0120 movs r0, #1 4487 00c6 30E0 b .L291 4488 .LVL316: 4489 .L304: 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4490 .loc 1 2207 9 is_stmt 1 view .LVU1580 4491 00c8 1F4B ldr r3, .L305+16 4492 00ca 0093 str r3, [sp] 4493 00cc 3346 mov r3, r6 4494 00ce 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 4495 00d2 2946 mov r1, r5 4496 00d4 2046 mov r0, r4 4497 .LVL317: 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4498 .loc 1 2207 9 is_stmt 0 view .LVU1581 4499 00d6 FFF7FEFF bl I2C_TransferConfig 4500 .LVL318: ARM GAS /tmp/ccN54YTb.s page 237 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4501 .loc 1 2210 9 is_stmt 1 view .LVU1582 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4502 .loc 1 2210 13 is_stmt 0 view .LVU1583 4503 00da 638D ldrh r3, [r4, #42] 4504 00dc 9BB2 uxth r3, r3 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4505 .loc 1 2210 32 view .LVU1584 4506 00de 228D ldrh r2, [r4, #40] 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4507 .loc 1 2210 25 view .LVU1585 4508 00e0 9B1A subs r3, r3, r2 4509 00e2 9BB2 uxth r3, r3 4510 00e4 6385 strh r3, [r4, #42] @ movhi 2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4511 .loc 1 2213 9 is_stmt 1 view .LVU1586 2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4512 .loc 1 2213 9 view .LVU1587 4513 00e6 0023 movs r3, #0 4514 00e8 84F84030 strb r3, [r4, #64] 2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4515 .loc 1 2213 9 view .LVU1588 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4516 .loc 1 2219 9 view .LVU1589 4517 00ec 1021 movs r1, #16 4518 00ee 2046 mov r0, r4 4519 00f0 FFF7FEFF bl I2C_Enable_IRQ 4520 .LVL319: 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4521 .loc 1 2222 9 view .LVU1590 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4522 .loc 1 2222 13 is_stmt 0 view .LVU1591 4523 00f4 2268 ldr r2, [r4] 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4524 .loc 1 2222 23 view .LVU1592 4525 00f6 1368 ldr r3, [r2] 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4526 .loc 1 2222 29 view .LVU1593 4527 00f8 43F40043 orr r3, r3, #32768 4528 00fc 1360 str r3, [r2] 4529 00fe 11E0 b .L298 4530 .LVL320: 4531 .L294: 2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4532 .loc 1 2242 7 is_stmt 1 view .LVU1594 2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4533 .loc 1 2242 21 is_stmt 0 view .LVU1595 4534 0100 124B ldr r3, .L305+20 4535 0102 6363 str r3, [r4, #52] 2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4536 .loc 1 2246 7 is_stmt 1 view .LVU1596 4537 0104 104B ldr r3, .L305+16 4538 0106 0093 str r3, [sp] 4539 0108 4FF00073 mov r3, #33554432 4540 010c CAB2 uxtb r2, r1 4541 .LVL321: 2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); ARM GAS /tmp/ccN54YTb.s page 238 4542 .loc 1 2246 7 is_stmt 0 view .LVU1597 4543 010e 2946 mov r1, r5 4544 0110 2046 mov r0, r4 4545 0112 FFF7FEFF bl I2C_TransferConfig 4546 .LVL322: 2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4547 .loc 1 2250 7 is_stmt 1 view .LVU1598 2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4548 .loc 1 2250 7 view .LVU1599 4549 0116 0023 movs r3, #0 4550 0118 84F84030 strb r3, [r4, #64] 2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4551 .loc 1 2250 7 view .LVU1600 2259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4552 .loc 1 2259 7 view .LVU1601 4553 011c 0221 movs r1, #2 4554 011e 2046 mov r0, r4 4555 0120 FFF7FEFF bl I2C_Enable_IRQ 4556 .LVL323: 4557 .L298: 2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4558 .loc 1 2262 5 view .LVU1602 2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4559 .loc 1 2262 12 is_stmt 0 view .LVU1603 4560 0124 0020 movs r0, #0 4561 0126 00E0 b .L291 4562 .LVL324: 4563 .L299: 2266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4564 .loc 1 2266 12 view .LVU1604 4565 0128 0220 movs r0, #2 4566 .LVL325: 4567 .L291: 2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4568 .loc 1 2268 1 view .LVU1605 4569 012a 02B0 add sp, sp, #8 4570 .cfi_remember_state 4571 .cfi_def_cfa_offset 16 4572 @ sp needed 4573 012c 70BD pop {r4, r5, r6, pc} 4574 .LVL326: 4575 .L300: 4576 .cfi_restore_state 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4577 .loc 1 2143 14 view .LVU1606 4578 012e 0220 movs r0, #2 4579 0130 FBE7 b .L291 4580 .L301: 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4581 .loc 1 2147 5 discriminator 1 view .LVU1607 4582 0132 0220 movs r0, #2 4583 0134 F9E7 b .L291 4584 .L306: 4585 0136 00BF .align 2 4586 .L305: 4587 0138 0000FFFF .word -65536 4588 013c 00000000 .word I2C_Master_ISR_DMA ARM GAS /tmp/ccN54YTb.s page 239 4589 0140 00000000 .word I2C_DMAMasterReceiveCplt 4590 0144 00000000 .word I2C_DMAError 4591 0148 00240080 .word -2147474432 4592 014c 00000000 .word I2C_Master_ISR_IT 4593 .cfi_endproc 4594 .LFE348: 4596 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4597 .align 1 4598 .global HAL_I2C_Slave_Transmit_DMA 4599 .syntax unified 4600 .thumb 4601 .thumb_func 4603 HAL_I2C_Slave_Transmit_DMA: 4604 .LVL327: 4605 .LFB349: 2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4606 .loc 1 2279 1 is_stmt 1 view -0 4607 .cfi_startproc 4608 @ args = 0, pretend = 0, frame = 0 4609 @ frame_needed = 0, uses_anonymous_args = 0 2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4610 .loc 1 2280 3 view .LVU1609 2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4611 .loc 1 2282 3 view .LVU1610 2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4612 .loc 1 2282 11 is_stmt 0 view .LVU1611 4613 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4614 .loc 1 2282 6 view .LVU1612 4615 0004 202B cmp r3, #32 4616 0006 40F08D80 bne .L316 2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4617 .loc 1 2279 1 view .LVU1613 4618 000a 10B5 push {r4, lr} 4619 .cfi_def_cfa_offset 8 4620 .cfi_offset 4, -8 4621 .cfi_offset 14, -4 4622 000c 0446 mov r4, r0 2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4623 .loc 1 2284 5 is_stmt 1 view .LVU1614 2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4624 .loc 1 2284 8 is_stmt 0 view .LVU1615 4625 000e 002A cmp r2, #0 4626 0010 18BF it ne 4627 0012 0029 cmpne r1, #0 4628 0014 42D0 beq .L323 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4629 .loc 1 2290 5 is_stmt 1 view .LVU1616 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4630 .loc 1 2290 5 view .LVU1617 4631 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4632 001a 012B cmp r3, #1 4633 001c 00F08480 beq .L317 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4634 .loc 1 2290 5 discriminator 2 view .LVU1618 4635 0020 0123 movs r3, #1 4636 0022 80F84030 strb r3, [r0, #64] ARM GAS /tmp/ccN54YTb.s page 240 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4637 .loc 1 2290 5 view .LVU1619 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4638 .loc 1 2292 5 view .LVU1620 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4639 .loc 1 2292 23 is_stmt 0 view .LVU1621 4640 0026 2123 movs r3, #33 4641 0028 80F84130 strb r3, [r0, #65] 2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4642 .loc 1 2293 5 is_stmt 1 view .LVU1622 2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4643 .loc 1 2293 23 is_stmt 0 view .LVU1623 4644 002c 2023 movs r3, #32 4645 002e 80F84230 strb r3, [r0, #66] 2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4646 .loc 1 2294 5 is_stmt 1 view .LVU1624 2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4647 .loc 1 2294 23 is_stmt 0 view .LVU1625 4648 0032 0023 movs r3, #0 4649 0034 4364 str r3, [r0, #68] 2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4650 .loc 1 2297 5 is_stmt 1 view .LVU1626 2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4651 .loc 1 2297 23 is_stmt 0 view .LVU1627 4652 0036 4162 str r1, [r0, #36] 2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4653 .loc 1 2298 5 is_stmt 1 view .LVU1628 2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4654 .loc 1 2298 23 is_stmt 0 view .LVU1629 4655 0038 4285 strh r2, [r0, #42] @ movhi 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4656 .loc 1 2299 5 is_stmt 1 view .LVU1630 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4657 .loc 1 2299 29 is_stmt 0 view .LVU1631 4658 003a 438D ldrh r3, [r0, #42] 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4659 .loc 1 2299 23 view .LVU1632 4660 003c 0385 strh r3, [r0, #40] @ movhi 2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4661 .loc 1 2300 5 is_stmt 1 view .LVU1633 2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4662 .loc 1 2300 23 is_stmt 0 view .LVU1634 4663 003e 3B4B ldr r3, .L326 4664 0040 C362 str r3, [r0, #44] 2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4665 .loc 1 2301 5 is_stmt 1 view .LVU1635 2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4666 .loc 1 2301 23 is_stmt 0 view .LVU1636 4667 0042 3B4B ldr r3, .L326+4 4668 0044 4363 str r3, [r0, #52] 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4669 .loc 1 2304 5 is_stmt 1 view .LVU1637 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4670 .loc 1 2304 19 is_stmt 0 view .LVU1638 4671 0046 036A ldr r3, [r0, #32] 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4672 .loc 1 2304 8 view .LVU1639 ARM GAS /tmp/ccN54YTb.s page 241 4673 0048 B3F5003F cmp r3, #131072 4674 004c 2BD0 beq .L324 4675 .LVL328: 4676 .L310: 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4677 .loc 1 2317 5 is_stmt 1 view .LVU1640 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4678 .loc 1 2317 13 is_stmt 0 view .LVU1641 4679 004e 638D ldrh r3, [r4, #42] 4680 0050 9BB2 uxth r3, r3 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4681 .loc 1 2317 8 view .LVU1642 4682 0052 002B cmp r3, #0 4683 0054 57D0 beq .L311 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4684 .loc 1 2319 7 is_stmt 1 view .LVU1643 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4685 .loc 1 2319 15 is_stmt 0 view .LVU1644 4686 0056 A36B ldr r3, [r4, #56] 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4687 .loc 1 2319 10 view .LVU1645 4688 0058 002B cmp r3, #0 4689 005a 33D0 beq .L312 2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4690 .loc 1 2322 9 is_stmt 1 view .LVU1646 2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4691 .loc 1 2322 40 is_stmt 0 view .LVU1647 4692 005c 354A ldr r2, .L326+8 4693 005e DA63 str r2, [r3, #60] 2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4694 .loc 1 2325 9 is_stmt 1 view .LVU1648 2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4695 .loc 1 2325 13 is_stmt 0 view .LVU1649 4696 0060 A36B ldr r3, [r4, #56] 2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4697 .loc 1 2325 41 view .LVU1650 4698 0062 354A ldr r2, .L326+12 4699 0064 DA64 str r2, [r3, #76] 2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4700 .loc 1 2328 9 is_stmt 1 view .LVU1651 2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4701 .loc 1 2328 13 is_stmt 0 view .LVU1652 4702 0066 A26B ldr r2, [r4, #56] 2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4703 .loc 1 2328 44 view .LVU1653 4704 0068 0023 movs r3, #0 4705 006a 1364 str r3, [r2, #64] 2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4706 .loc 1 2329 9 is_stmt 1 view .LVU1654 2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4707 .loc 1 2329 13 is_stmt 0 view .LVU1655 4708 006c A26B ldr r2, [r4, #56] 2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4709 .loc 1 2329 41 view .LVU1656 4710 006e 1365 str r3, [r2, #80] 2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4711 .loc 1 2332 9 is_stmt 1 view .LVU1657 ARM GAS /tmp/ccN54YTb.s page 242 2333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4712 .loc 1 2333 83 is_stmt 0 view .LVU1658 4713 0070 2268 ldr r2, [r4] 2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4714 .loc 1 2332 25 view .LVU1659 4715 0072 238D ldrh r3, [r4, #40] 4716 0074 2832 adds r2, r2, #40 4717 0076 616A ldr r1, [r4, #36] 4718 .LVL329: 2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4719 .loc 1 2332 25 view .LVU1660 4720 0078 A06B ldr r0, [r4, #56] 4721 .LVL330: 2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4722 .loc 1 2332 25 view .LVU1661 4723 007a FFF7FEFF bl HAL_DMA_Start_IT 4724 .LVL331: 2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4725 .loc 1 2351 7 is_stmt 1 view .LVU1662 2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4726 .loc 1 2351 10 is_stmt 0 view .LVU1663 4727 007e 78B3 cbz r0, .L325 2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4728 .loc 1 2371 9 is_stmt 1 view .LVU1664 2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4729 .loc 1 2371 25 is_stmt 0 view .LVU1665 4730 0080 2823 movs r3, #40 4731 0082 84F84130 strb r3, [r4, #65] 2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4732 .loc 1 2372 9 is_stmt 1 view .LVU1666 2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4733 .loc 1 2372 25 is_stmt 0 view .LVU1667 4734 0086 0022 movs r2, #0 4735 0088 84F84220 strb r2, [r4, #66] 2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4736 .loc 1 2375 9 is_stmt 1 view .LVU1668 2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4737 .loc 1 2375 13 is_stmt 0 view .LVU1669 4738 008c 636C ldr r3, [r4, #68] 2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4739 .loc 1 2375 25 view .LVU1670 4740 008e 43F01003 orr r3, r3, #16 4741 0092 6364 str r3, [r4, #68] 2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4742 .loc 1 2378 9 is_stmt 1 view .LVU1671 2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4743 .loc 1 2378 9 view .LVU1672 4744 0094 84F84020 strb r2, [r4, #64] 2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4745 .loc 1 2378 9 view .LVU1673 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4746 .loc 1 2380 9 view .LVU1674 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4747 .loc 1 2380 16 is_stmt 0 view .LVU1675 4748 0098 0120 movs r0, #1 4749 .LVL332: 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 243 4750 .loc 1 2380 16 view .LVU1676 4751 009a 03E0 b .L308 4752 .LVL333: 4753 .L323: 2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4754 .loc 1 2286 7 is_stmt 1 view .LVU1677 2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4755 .loc 1 2286 23 is_stmt 0 view .LVU1678 4756 009c 4FF40073 mov r3, #512 4757 00a0 4364 str r3, [r0, #68] 2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4758 .loc 1 2287 7 is_stmt 1 view .LVU1679 2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4759 .loc 1 2287 15 is_stmt 0 view .LVU1680 4760 00a2 0120 movs r0, #1 4761 .LVL334: 4762 .L308: 2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4763 .loc 1 2404 1 view .LVU1681 4764 00a4 10BD pop {r4, pc} 4765 .LVL335: 4766 .L324: 2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4767 .loc 1 2308 7 is_stmt 1 view .LVU1682 2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4768 .loc 1 2308 11 is_stmt 0 view .LVU1683 4769 00a6 0368 ldr r3, [r0] 2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4770 .loc 1 2308 30 view .LVU1684 4771 00a8 0A78 ldrb r2, [r1] @ zero_extendqisi2 4772 .LVL336: 2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4773 .loc 1 2308 28 view .LVU1685 4774 00aa 9A62 str r2, [r3, #40] 2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4775 .loc 1 2311 7 is_stmt 1 view .LVU1686 2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4776 .loc 1 2311 11 is_stmt 0 view .LVU1687 4777 00ac 436A ldr r3, [r0, #36] 2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4778 .loc 1 2311 21 view .LVU1688 4779 00ae 0133 adds r3, r3, #1 4780 00b0 4362 str r3, [r0, #36] 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4781 .loc 1 2313 7 is_stmt 1 view .LVU1689 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4782 .loc 1 2313 11 is_stmt 0 view .LVU1690 4783 00b2 438D ldrh r3, [r0, #42] 4784 00b4 9BB2 uxth r3, r3 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4785 .loc 1 2313 22 view .LVU1691 4786 00b6 013B subs r3, r3, #1 4787 00b8 9BB2 uxth r3, r3 4788 00ba 4385 strh r3, [r0, #42] @ movhi 2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4789 .loc 1 2314 7 is_stmt 1 view .LVU1692 2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 244 4790 .loc 1 2314 11 is_stmt 0 view .LVU1693 4791 00bc 038D ldrh r3, [r0, #40] 2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4792 .loc 1 2314 21 view .LVU1694 4793 00be 013B subs r3, r3, #1 4794 00c0 0385 strh r3, [r0, #40] @ movhi 4795 00c2 C4E7 b .L310 4796 .L312: 2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4797 .loc 1 2339 9 is_stmt 1 view .LVU1695 2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4798 .loc 1 2339 25 is_stmt 0 view .LVU1696 4799 00c4 2823 movs r3, #40 4800 00c6 84F84130 strb r3, [r4, #65] 2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4801 .loc 1 2340 9 is_stmt 1 view .LVU1697 2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4802 .loc 1 2340 25 is_stmt 0 view .LVU1698 4803 00ca 0022 movs r2, #0 4804 00cc 84F84220 strb r2, [r4, #66] 2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4805 .loc 1 2343 9 is_stmt 1 view .LVU1699 2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4806 .loc 1 2343 13 is_stmt 0 view .LVU1700 4807 00d0 636C ldr r3, [r4, #68] 2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4808 .loc 1 2343 25 view .LVU1701 4809 00d2 43F08003 orr r3, r3, #128 4810 00d6 6364 str r3, [r4, #68] 2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4811 .loc 1 2346 9 is_stmt 1 view .LVU1702 2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4812 .loc 1 2346 9 view .LVU1703 4813 00d8 84F84020 strb r2, [r4, #64] 2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4814 .loc 1 2346 9 view .LVU1704 2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4815 .loc 1 2348 9 view .LVU1705 2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4816 .loc 1 2348 16 is_stmt 0 view .LVU1706 4817 00dc 0120 movs r0, #1 4818 .LVL337: 2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4819 .loc 1 2348 16 view .LVU1707 4820 00de E1E7 b .L308 4821 .LVL338: 4822 .L325: 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4823 .loc 1 2354 9 is_stmt 1 view .LVU1708 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4824 .loc 1 2354 13 is_stmt 0 view .LVU1709 4825 00e0 2268 ldr r2, [r4] 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4826 .loc 1 2354 23 view .LVU1710 4827 00e2 5368 ldr r3, [r2, #4] 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4828 .loc 1 2354 29 view .LVU1711 ARM GAS /tmp/ccN54YTb.s page 245 4829 00e4 23F40043 bic r3, r3, #32768 4830 00e8 5360 str r3, [r2, #4] 2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4831 .loc 1 2357 9 is_stmt 1 view .LVU1712 2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4832 .loc 1 2357 9 view .LVU1713 4833 00ea 0023 movs r3, #0 4834 00ec 84F84030 strb r3, [r4, #64] 2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4835 .loc 1 2357 9 view .LVU1714 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4836 .loc 1 2363 9 view .LVU1715 4837 00f0 4FF40041 mov r1, #32768 4838 00f4 2046 mov r0, r4 4839 .LVL339: 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4840 .loc 1 2363 9 is_stmt 0 view .LVU1716 4841 00f6 FFF7FEFF bl I2C_Enable_IRQ 4842 .LVL340: 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4843 .loc 1 2366 9 is_stmt 1 view .LVU1717 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4844 .loc 1 2366 13 is_stmt 0 view .LVU1718 4845 00fa 2268 ldr r2, [r4] 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4846 .loc 1 2366 23 view .LVU1719 4847 00fc 1368 ldr r3, [r2] 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4848 .loc 1 2366 29 view .LVU1720 4849 00fe 43F48043 orr r3, r3, #16384 4850 0102 1360 str r3, [r2] 4851 0104 0CE0 b .L315 4852 .LVL341: 4853 .L311: 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4854 .loc 1 2386 7 is_stmt 1 view .LVU1721 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4855 .loc 1 2386 11 is_stmt 0 view .LVU1722 4856 0106 2268 ldr r2, [r4] 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4857 .loc 1 2386 21 view .LVU1723 4858 0108 5368 ldr r3, [r2, #4] 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4859 .loc 1 2386 27 view .LVU1724 4860 010a 23F40043 bic r3, r3, #32768 4861 010e 5360 str r3, [r2, #4] 2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4862 .loc 1 2389 7 is_stmt 1 view .LVU1725 2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4863 .loc 1 2389 7 view .LVU1726 4864 0110 0023 movs r3, #0 4865 0112 84F84030 strb r3, [r4, #64] 2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4866 .loc 1 2389 7 view .LVU1727 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4867 .loc 1 2395 7 view .LVU1728 4868 0116 4FF40041 mov r1, #32768 ARM GAS /tmp/ccN54YTb.s page 246 4869 .LVL342: 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4870 .loc 1 2395 7 is_stmt 0 view .LVU1729 4871 011a 2046 mov r0, r4 4872 .LVL343: 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4873 .loc 1 2395 7 view .LVU1730 4874 011c FFF7FEFF bl I2C_Enable_IRQ 4875 .LVL344: 4876 .L315: 2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4877 .loc 1 2398 5 is_stmt 1 view .LVU1731 2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4878 .loc 1 2398 12 is_stmt 0 view .LVU1732 4879 0120 0020 movs r0, #0 4880 0122 BFE7 b .L308 4881 .LVL345: 4882 .L316: 4883 .cfi_def_cfa_offset 0 4884 .cfi_restore 4 4885 .cfi_restore 14 2402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4886 .loc 1 2402 12 view .LVU1733 4887 0124 0220 movs r0, #2 4888 .LVL346: 2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4889 .loc 1 2404 1 view .LVU1734 4890 0126 7047 bx lr 4891 .LVL347: 4892 .L317: 4893 .cfi_def_cfa_offset 8 4894 .cfi_offset 4, -8 4895 .cfi_offset 14, -4 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4896 .loc 1 2290 5 discriminator 1 view .LVU1735 4897 0128 0220 movs r0, #2 4898 .LVL348: 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4899 .loc 1 2290 5 discriminator 1 view .LVU1736 4900 012a BBE7 b .L308 4901 .L327: 4902 .align 2 4903 .L326: 4904 012c 0000FFFF .word -65536 4905 0130 00000000 .word I2C_Slave_ISR_DMA 4906 0134 00000000 .word I2C_DMASlaveTransmitCplt 4907 0138 00000000 .word I2C_DMAError 4908 .cfi_endproc 4909 .LFE349: 4911 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4912 .align 1 4913 .global HAL_I2C_Slave_Receive_DMA 4914 .syntax unified 4915 .thumb 4916 .thumb_func 4918 HAL_I2C_Slave_Receive_DMA: 4919 .LVL349: ARM GAS /tmp/ccN54YTb.s page 247 4920 .LFB350: 2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4921 .loc 1 2415 1 is_stmt 1 view -0 4922 .cfi_startproc 4923 @ args = 0, pretend = 0, frame = 0 4924 @ frame_needed = 0, uses_anonymous_args = 0 2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4925 .loc 1 2415 1 is_stmt 0 view .LVU1738 4926 0000 38B5 push {r3, r4, r5, lr} 4927 .cfi_def_cfa_offset 16 4928 .cfi_offset 3, -16 4929 .cfi_offset 4, -12 4930 .cfi_offset 5, -8 4931 .cfi_offset 14, -4 2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4932 .loc 1 2416 3 is_stmt 1 view .LVU1739 2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4933 .loc 1 2418 3 view .LVU1740 2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4934 .loc 1 2418 11 is_stmt 0 view .LVU1741 4935 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4936 .loc 1 2418 6 view .LVU1742 4937 0006 202B cmp r3, #32 4938 0008 65D1 bne .L334 4939 000a 0446 mov r4, r0 2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4940 .loc 1 2420 5 is_stmt 1 view .LVU1743 2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4941 .loc 1 2420 8 is_stmt 0 view .LVU1744 4942 000c 002A cmp r2, #0 4943 000e 18BF it ne 4944 0010 0029 cmpne r1, #0 4945 0012 3AD0 beq .L338 2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4946 .loc 1 2426 5 is_stmt 1 view .LVU1745 2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4947 .loc 1 2426 5 view .LVU1746 4948 0014 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4949 0018 012B cmp r3, #1 4950 001a 5FD0 beq .L335 2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4951 .loc 1 2426 5 discriminator 2 view .LVU1747 4952 001c 0123 movs r3, #1 4953 001e 80F84030 strb r3, [r0, #64] 2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4954 .loc 1 2426 5 view .LVU1748 2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4955 .loc 1 2428 5 view .LVU1749 2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4956 .loc 1 2428 23 is_stmt 0 view .LVU1750 4957 0022 2223 movs r3, #34 4958 0024 80F84130 strb r3, [r0, #65] 2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4959 .loc 1 2429 5 is_stmt 1 view .LVU1751 2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4960 .loc 1 2429 23 is_stmt 0 view .LVU1752 ARM GAS /tmp/ccN54YTb.s page 248 4961 0028 2023 movs r3, #32 4962 002a 80F84230 strb r3, [r0, #66] 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4963 .loc 1 2430 5 is_stmt 1 view .LVU1753 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4964 .loc 1 2430 23 is_stmt 0 view .LVU1754 4965 002e 0023 movs r3, #0 4966 0030 4364 str r3, [r0, #68] 2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4967 .loc 1 2433 5 is_stmt 1 view .LVU1755 2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4968 .loc 1 2433 23 is_stmt 0 view .LVU1756 4969 0032 4162 str r1, [r0, #36] 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4970 .loc 1 2434 5 is_stmt 1 view .LVU1757 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4971 .loc 1 2434 23 is_stmt 0 view .LVU1758 4972 0034 4285 strh r2, [r0, #42] @ movhi 2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4973 .loc 1 2435 5 is_stmt 1 view .LVU1759 2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4974 .loc 1 2435 29 is_stmt 0 view .LVU1760 4975 0036 438D ldrh r3, [r0, #42] 2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4976 .loc 1 2435 23 view .LVU1761 4977 0038 0385 strh r3, [r0, #40] @ movhi 2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4978 .loc 1 2436 5 is_stmt 1 view .LVU1762 2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4979 .loc 1 2436 23 is_stmt 0 view .LVU1763 4980 003a 294B ldr r3, .L340 4981 003c C362 str r3, [r0, #44] 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4982 .loc 1 2437 5 is_stmt 1 view .LVU1764 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4983 .loc 1 2437 23 is_stmt 0 view .LVU1765 4984 003e 294B ldr r3, .L340+4 4985 0040 4363 str r3, [r0, #52] 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4986 .loc 1 2439 5 is_stmt 1 view .LVU1766 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4987 .loc 1 2439 13 is_stmt 0 view .LVU1767 4988 0042 C36B ldr r3, [r0, #60] 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4989 .loc 1 2439 8 view .LVU1768 4990 0044 33B3 cbz r3, .L331 2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4991 .loc 1 2442 7 is_stmt 1 view .LVU1769 2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4992 .loc 1 2442 38 is_stmt 0 view .LVU1770 4993 0046 284A ldr r2, .L340+8 4994 .LVL350: 2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4995 .loc 1 2442 38 view .LVU1771 4996 0048 DA63 str r2, [r3, #60] 2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4997 .loc 1 2445 7 is_stmt 1 view .LVU1772 ARM GAS /tmp/ccN54YTb.s page 249 2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4998 .loc 1 2445 11 is_stmt 0 view .LVU1773 4999 004a C36B ldr r3, [r0, #60] 2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5000 .loc 1 2445 39 view .LVU1774 5001 004c 274A ldr r2, .L340+12 5002 004e DA64 str r2, [r3, #76] 2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5003 .loc 1 2448 7 is_stmt 1 view .LVU1775 2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5004 .loc 1 2448 11 is_stmt 0 view .LVU1776 5005 0050 C26B ldr r2, [r0, #60] 2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5006 .loc 1 2448 42 view .LVU1777 5007 0052 0023 movs r3, #0 5008 0054 1364 str r3, [r2, #64] 2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5009 .loc 1 2449 7 is_stmt 1 view .LVU1778 2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5010 .loc 1 2449 11 is_stmt 0 view .LVU1779 5011 0056 C26B ldr r2, [r0, #60] 2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5012 .loc 1 2449 39 view .LVU1780 5013 0058 1365 str r3, [r2, #80] 2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 5014 .loc 1 2452 7 is_stmt 1 view .LVU1781 2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 5015 .loc 1 2452 69 is_stmt 0 view .LVU1782 5016 005a 0068 ldr r0, [r0] 5017 .LVL351: 2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 5018 .loc 1 2452 23 view .LVU1783 5019 005c 238D ldrh r3, [r4, #40] 5020 005e 0A46 mov r2, r1 5021 0060 00F12401 add r1, r0, #36 5022 .LVL352: 2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 5023 .loc 1 2452 23 view .LVU1784 5024 0064 E06B ldr r0, [r4, #60] 5025 0066 FFF7FEFF bl HAL_DMA_Start_IT 5026 .LVL353: 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5027 .loc 1 2470 5 is_stmt 1 view .LVU1785 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5028 .loc 1 2470 8 is_stmt 0 view .LVU1786 5029 006a 0546 mov r5, r0 5030 006c 00B3 cbz r0, .L339 2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5031 .loc 1 2490 7 is_stmt 1 view .LVU1787 2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5032 .loc 1 2490 23 is_stmt 0 view .LVU1788 5033 006e 2823 movs r3, #40 5034 0070 84F84130 strb r3, [r4, #65] 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5035 .loc 1 2491 7 is_stmt 1 view .LVU1789 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5036 .loc 1 2491 23 is_stmt 0 view .LVU1790 ARM GAS /tmp/ccN54YTb.s page 250 5037 0074 0022 movs r2, #0 5038 0076 84F84220 strb r2, [r4, #66] 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5039 .loc 1 2494 7 is_stmt 1 view .LVU1791 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5040 .loc 1 2494 11 is_stmt 0 view .LVU1792 5041 007a 636C ldr r3, [r4, #68] 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5042 .loc 1 2494 23 view .LVU1793 5043 007c 43F01003 orr r3, r3, #16 5044 0080 6364 str r3, [r4, #68] 2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5045 .loc 1 2497 7 is_stmt 1 view .LVU1794 2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5046 .loc 1 2497 7 view .LVU1795 5047 0082 84F84020 strb r2, [r4, #64] 2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5048 .loc 1 2497 7 view .LVU1796 2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5049 .loc 1 2499 7 view .LVU1797 2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5050 .loc 1 2499 14 is_stmt 0 view .LVU1798 5051 0086 0125 movs r5, #1 5052 0088 26E0 b .L329 5053 .LVL354: 5054 .L338: 2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5055 .loc 1 2422 7 is_stmt 1 view .LVU1799 2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5056 .loc 1 2422 23 is_stmt 0 view .LVU1800 5057 008a 4FF40073 mov r3, #512 5058 008e 4364 str r3, [r0, #68] 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5059 .loc 1 2423 7 is_stmt 1 view .LVU1801 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5060 .loc 1 2423 15 is_stmt 0 view .LVU1802 5061 0090 0125 movs r5, #1 5062 0092 21E0 b .L329 5063 .L331: 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5064 .loc 1 2458 7 is_stmt 1 view .LVU1803 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5065 .loc 1 2458 23 is_stmt 0 view .LVU1804 5066 0094 2823 movs r3, #40 5067 0096 80F84130 strb r3, [r0, #65] 2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5068 .loc 1 2459 7 is_stmt 1 view .LVU1805 2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5069 .loc 1 2459 23 is_stmt 0 view .LVU1806 5070 009a 0022 movs r2, #0 5071 .LVL355: 2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5072 .loc 1 2459 23 view .LVU1807 5073 009c 80F84220 strb r2, [r0, #66] 2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5074 .loc 1 2462 7 is_stmt 1 view .LVU1808 2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 251 5075 .loc 1 2462 11 is_stmt 0 view .LVU1809 5076 00a0 436C ldr r3, [r0, #68] 2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5077 .loc 1 2462 23 view .LVU1810 5078 00a2 43F08003 orr r3, r3, #128 5079 00a6 4364 str r3, [r0, #68] 2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5080 .loc 1 2465 7 is_stmt 1 view .LVU1811 2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5081 .loc 1 2465 7 view .LVU1812 5082 00a8 80F84020 strb r2, [r0, #64] 2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5083 .loc 1 2465 7 view .LVU1813 2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5084 .loc 1 2467 7 view .LVU1814 2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5085 .loc 1 2467 14 is_stmt 0 view .LVU1815 5086 00ac 0125 movs r5, #1 5087 00ae 13E0 b .L329 5088 .LVL356: 5089 .L339: 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5090 .loc 1 2473 7 is_stmt 1 view .LVU1816 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5091 .loc 1 2473 11 is_stmt 0 view .LVU1817 5092 00b0 2268 ldr r2, [r4] 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5093 .loc 1 2473 21 view .LVU1818 5094 00b2 5368 ldr r3, [r2, #4] 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5095 .loc 1 2473 27 view .LVU1819 5096 00b4 23F40043 bic r3, r3, #32768 5097 00b8 5360 str r3, [r2, #4] 2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5098 .loc 1 2476 7 is_stmt 1 view .LVU1820 2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5099 .loc 1 2476 7 view .LVU1821 5100 00ba 0023 movs r3, #0 5101 00bc 84F84030 strb r3, [r4, #64] 2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5102 .loc 1 2476 7 view .LVU1822 2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5103 .loc 1 2482 7 view .LVU1823 5104 00c0 4FF40041 mov r1, #32768 5105 00c4 2046 mov r0, r4 5106 .LVL357: 2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5107 .loc 1 2482 7 is_stmt 0 view .LVU1824 5108 00c6 FFF7FEFF bl I2C_Enable_IRQ 5109 .LVL358: 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5110 .loc 1 2485 7 is_stmt 1 view .LVU1825 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5111 .loc 1 2485 11 is_stmt 0 view .LVU1826 5112 00ca 2268 ldr r2, [r4] 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5113 .loc 1 2485 21 view .LVU1827 ARM GAS /tmp/ccN54YTb.s page 252 5114 00cc 1368 ldr r3, [r2] 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5115 .loc 1 2485 27 view .LVU1828 5116 00ce 43F40043 orr r3, r3, #32768 5117 00d2 1360 str r3, [r2] 2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5118 .loc 1 2502 5 is_stmt 1 view .LVU1829 2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5119 .loc 1 2502 12 is_stmt 0 view .LVU1830 5120 00d4 00E0 b .L329 5121 .LVL359: 5122 .L334: 2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5123 .loc 1 2506 12 view .LVU1831 5124 00d6 0225 movs r5, #2 5125 .LVL360: 5126 .L329: 2508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5127 .loc 1 2508 1 view .LVU1832 5128 00d8 2846 mov r0, r5 5129 00da 38BD pop {r3, r4, r5, pc} 5130 .LVL361: 5131 .L335: 2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5132 .loc 1 2426 5 discriminator 1 view .LVU1833 5133 00dc 0225 movs r5, #2 5134 00de FBE7 b .L329 5135 .L341: 5136 .align 2 5137 .L340: 5138 00e0 0000FFFF .word -65536 5139 00e4 00000000 .word I2C_Slave_ISR_DMA 5140 00e8 00000000 .word I2C_DMASlaveReceiveCplt 5141 00ec 00000000 .word I2C_DMAError 5142 .cfi_endproc 5143 .LFE350: 5145 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 5146 .align 1 5147 .global HAL_I2C_Mem_Write 5148 .syntax unified 5149 .thumb 5150 .thumb_func 5152 HAL_I2C_Mem_Write: 5153 .LVL362: 5154 .LFB351: 2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5155 .loc 1 2525 1 is_stmt 1 view -0 5156 .cfi_startproc 5157 @ args = 12, pretend = 0, frame = 0 5158 @ frame_needed = 0, uses_anonymous_args = 0 2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5159 .loc 1 2525 1 is_stmt 0 view .LVU1835 5160 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5161 .cfi_def_cfa_offset 36 5162 .cfi_offset 4, -36 5163 .cfi_offset 5, -32 5164 .cfi_offset 6, -28 ARM GAS /tmp/ccN54YTb.s page 253 5165 .cfi_offset 7, -24 5166 .cfi_offset 8, -20 5167 .cfi_offset 9, -16 5168 .cfi_offset 10, -12 5169 .cfi_offset 11, -8 5170 .cfi_offset 14, -4 5171 0004 83B0 sub sp, sp, #12 5172 .cfi_def_cfa_offset 48 5173 0006 0D46 mov r5, r1 5174 0008 BDF834A0 ldrh r10, [sp, #52] 5175 000c 0E9F ldr r7, [sp, #56] 2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5176 .loc 1 2526 3 is_stmt 1 view .LVU1836 2529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5177 .loc 1 2529 3 view .LVU1837 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5178 .loc 1 2531 3 view .LVU1838 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5179 .loc 1 2531 11 is_stmt 0 view .LVU1839 5180 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5181 .LVL363: 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5182 .loc 1 2531 6 view .LVU1840 5183 0012 2029 cmp r1, #32 5184 0014 40F0BC80 bne .L351 5185 0018 0446 mov r4, r0 5186 001a 9146 mov r9, r2 5187 001c 9846 mov r8, r3 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5188 .loc 1 2533 5 is_stmt 1 view .LVU1841 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5189 .loc 1 2533 8 is_stmt 0 view .LVU1842 5190 001e 0C9B ldr r3, [sp, #48] 5191 .LVL364: 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5192 .loc 1 2533 8 view .LVU1843 5193 0020 BAF1000F cmp r10, #0 5194 0024 18BF it ne 5195 0026 002B cmpne r3, #0 5196 0028 16D0 beq .L358 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5197 .loc 1 2540 5 is_stmt 1 view .LVU1844 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5198 .loc 1 2540 5 view .LVU1845 5199 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5200 002e 012B cmp r3, #1 5201 0030 00F0B280 beq .L352 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5202 .loc 1 2540 5 discriminator 2 view .LVU1846 5203 0034 4FF0010B mov fp, #1 5204 0038 80F840B0 strb fp, [r0, #64] 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5205 .loc 1 2540 5 view .LVU1847 2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5206 .loc 1 2543 5 view .LVU1848 2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5207 .loc 1 2543 17 is_stmt 0 view .LVU1849 ARM GAS /tmp/ccN54YTb.s page 254 5208 003c FFF7FEFF bl HAL_GetTick 5209 .LVL365: 2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5210 .loc 1 2543 17 view .LVU1850 5211 0040 0646 mov r6, r0 5212 .LVL366: 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5213 .loc 1 2545 5 is_stmt 1 view .LVU1851 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5214 .loc 1 2545 9 is_stmt 0 view .LVU1852 5215 0042 0090 str r0, [sp] 5216 0044 1923 movs r3, #25 5217 0046 5A46 mov r2, fp 5218 0048 4FF40041 mov r1, #32768 5219 004c 2046 mov r0, r4 5220 .LVL367: 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5221 .loc 1 2545 9 view .LVU1853 5222 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5223 .LVL368: 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5224 .loc 1 2545 8 discriminator 1 view .LVU1854 5225 0052 30B1 cbz r0, .L359 2547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5226 .loc 1 2547 14 view .LVU1855 5227 0054 0120 movs r0, #1 5228 0056 9CE0 b .L343 5229 .LVL369: 5230 .L358: 2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5231 .loc 1 2535 7 is_stmt 1 view .LVU1856 2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5232 .loc 1 2535 23 is_stmt 0 view .LVU1857 5233 0058 4FF40073 mov r3, #512 5234 005c 4364 str r3, [r0, #68] 2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5235 .loc 1 2536 7 is_stmt 1 view .LVU1858 2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5236 .loc 1 2536 15 is_stmt 0 view .LVU1859 5237 005e 0120 movs r0, #1 5238 .LVL370: 2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5239 .loc 1 2536 15 view .LVU1860 5240 0060 97E0 b .L343 5241 .LVL371: 5242 .L359: 2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5243 .loc 1 2550 5 is_stmt 1 view .LVU1861 2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5244 .loc 1 2550 21 is_stmt 0 view .LVU1862 5245 0062 2123 movs r3, #33 5246 0064 84F84130 strb r3, [r4, #65] 2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5247 .loc 1 2551 5 is_stmt 1 view .LVU1863 2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5248 .loc 1 2551 21 is_stmt 0 view .LVU1864 5249 0068 4023 movs r3, #64 ARM GAS /tmp/ccN54YTb.s page 255 5250 006a 84F84230 strb r3, [r4, #66] 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5251 .loc 1 2552 5 is_stmt 1 view .LVU1865 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5252 .loc 1 2552 21 is_stmt 0 view .LVU1866 5253 006e 0023 movs r3, #0 5254 0070 6364 str r3, [r4, #68] 2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5255 .loc 1 2555 5 is_stmt 1 view .LVU1867 2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5256 .loc 1 2555 21 is_stmt 0 view .LVU1868 5257 0072 0C9A ldr r2, [sp, #48] 5258 0074 6262 str r2, [r4, #36] 2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5259 .loc 1 2556 5 is_stmt 1 view .LVU1869 2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5260 .loc 1 2556 21 is_stmt 0 view .LVU1870 5261 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5262 .loc 1 2557 5 is_stmt 1 view .LVU1871 2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5263 .loc 1 2557 21 is_stmt 0 view .LVU1872 5264 007a 6363 str r3, [r4, #52] 2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5265 .loc 1 2560 5 is_stmt 1 view .LVU1873 2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5266 .loc 1 2560 9 is_stmt 0 view .LVU1874 5267 007c 0196 str r6, [sp, #4] 5268 007e 0097 str r7, [sp] 5269 0080 4346 mov r3, r8 5270 0082 4A46 mov r2, r9 5271 0084 2946 mov r1, r5 5272 0086 2046 mov r0, r4 5273 0088 FFF7FEFF bl I2C_RequestMemoryWrite 5274 .LVL372: 2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5275 .loc 1 2560 8 discriminator 1 view .LVU1875 5276 008c 70B9 cbnz r0, .L360 2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5277 .loc 1 2568 5 is_stmt 1 view .LVU1876 2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5278 .loc 1 2568 13 is_stmt 0 view .LVU1877 5279 008e 638D ldrh r3, [r4, #42] 5280 0090 9BB2 uxth r3, r3 2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5281 .loc 1 2568 8 view .LVU1878 5282 0092 FF2B cmp r3, #255 5283 0094 0FD9 bls .L346 2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5284 .loc 1 2570 7 is_stmt 1 view .LVU1879 2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5285 .loc 1 2570 22 is_stmt 0 view .LVU1880 5286 0096 FF22 movs r2, #255 5287 0098 2285 strh r2, [r4, #40] @ movhi 2571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5288 .loc 1 2571 7 is_stmt 1 view .LVU1881 5289 009a 0023 movs r3, #0 ARM GAS /tmp/ccN54YTb.s page 256 5290 009c 0093 str r3, [sp] 5291 009e 4FF08073 mov r3, #16777216 5292 00a2 2946 mov r1, r5 5293 00a4 2046 mov r0, r4 5294 00a6 FFF7FEFF bl I2C_TransferConfig 5295 .LVL373: 5296 00aa 21E0 b .L350 5297 .L360: 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5298 .loc 1 2563 7 view .LVU1882 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5299 .loc 1 2563 7 view .LVU1883 5300 00ac 0023 movs r3, #0 5301 00ae 84F84030 strb r3, [r4, #64] 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5302 .loc 1 2563 7 view .LVU1884 2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5303 .loc 1 2564 7 view .LVU1885 2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5304 .loc 1 2564 14 is_stmt 0 view .LVU1886 5305 00b2 5846 mov r0, fp 5306 00b4 6DE0 b .L343 5307 .L346: 2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5308 .loc 1 2575 7 is_stmt 1 view .LVU1887 2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5309 .loc 1 2575 28 is_stmt 0 view .LVU1888 5310 00b6 628D ldrh r2, [r4, #42] 5311 00b8 92B2 uxth r2, r2 2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5312 .loc 1 2575 22 view .LVU1889 5313 00ba 2285 strh r2, [r4, #40] @ movhi 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5314 .loc 1 2576 7 is_stmt 1 view .LVU1890 5315 00bc 0023 movs r3, #0 5316 00be 0093 str r3, [sp] 5317 00c0 4FF00073 mov r3, #33554432 5318 00c4 D2B2 uxtb r2, r2 5319 00c6 2946 mov r1, r5 5320 00c8 2046 mov r0, r4 5321 00ca FFF7FEFF bl I2C_TransferConfig 5322 .LVL374: 5323 00ce 0FE0 b .L350 5324 .L349: 2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5325 .loc 1 2612 11 view .LVU1891 2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5326 .loc 1 2612 32 is_stmt 0 view .LVU1892 5327 00d0 628D ldrh r2, [r4, #42] 5328 00d2 92B2 uxth r2, r2 2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5329 .loc 1 2612 26 view .LVU1893 5330 00d4 2285 strh r2, [r4, #40] @ movhi 2613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5331 .loc 1 2613 11 is_stmt 1 view .LVU1894 5332 00d6 0023 movs r3, #0 5333 00d8 0093 str r3, [sp] ARM GAS /tmp/ccN54YTb.s page 257 5334 00da 4FF00073 mov r3, #33554432 5335 00de D2B2 uxtb r2, r2 5336 00e0 2946 mov r1, r5 5337 00e2 2046 mov r0, r4 5338 00e4 FFF7FEFF bl I2C_TransferConfig 5339 .LVL375: 5340 .L348: 2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5341 .loc 1 2618 30 view .LVU1895 2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5342 .loc 1 2618 18 is_stmt 0 view .LVU1896 5343 00e8 638D ldrh r3, [r4, #42] 5344 00ea 9BB2 uxth r3, r3 2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5345 .loc 1 2618 30 view .LVU1897 5346 00ec 002B cmp r3, #0 5347 00ee 33D0 beq .L361 5348 .L350: 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5349 .loc 1 2579 5 is_stmt 1 view .LVU1898 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5350 .loc 1 2582 7 view .LVU1899 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5351 .loc 1 2582 11 is_stmt 0 view .LVU1900 5352 00f0 3246 mov r2, r6 5353 00f2 3946 mov r1, r7 5354 00f4 2046 mov r0, r4 5355 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5356 .LVL376: 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5357 .loc 1 2582 10 discriminator 1 view .LVU1901 5358 00fa 0028 cmp r0, #0 5359 00fc 4ED1 bne .L354 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5360 .loc 1 2588 7 is_stmt 1 view .LVU1902 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5361 .loc 1 2588 35 is_stmt 0 view .LVU1903 5362 00fe 626A ldr r2, [r4, #36] 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5363 .loc 1 2588 11 view .LVU1904 5364 0100 2368 ldr r3, [r4] 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5365 .loc 1 2588 30 view .LVU1905 5366 0102 1278 ldrb r2, [r2] @ zero_extendqisi2 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5367 .loc 1 2588 28 view .LVU1906 5368 0104 9A62 str r2, [r3, #40] 2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5369 .loc 1 2591 7 is_stmt 1 view .LVU1907 2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5370 .loc 1 2591 11 is_stmt 0 view .LVU1908 5371 0106 636A ldr r3, [r4, #36] 2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5372 .loc 1 2591 21 view .LVU1909 5373 0108 0133 adds r3, r3, #1 5374 010a 6362 str r3, [r4, #36] 2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/ccN54YTb.s page 258 5375 .loc 1 2593 7 is_stmt 1 view .LVU1910 2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5376 .loc 1 2593 11 is_stmt 0 view .LVU1911 5377 010c 638D ldrh r3, [r4, #42] 5378 010e 9BB2 uxth r3, r3 2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5379 .loc 1 2593 22 view .LVU1912 5380 0110 013B subs r3, r3, #1 5381 0112 9BB2 uxth r3, r3 5382 0114 6385 strh r3, [r4, #42] @ movhi 2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5383 .loc 1 2594 7 is_stmt 1 view .LVU1913 2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5384 .loc 1 2594 11 is_stmt 0 view .LVU1914 5385 0116 238D ldrh r3, [r4, #40] 2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5386 .loc 1 2594 21 view .LVU1915 5387 0118 013B subs r3, r3, #1 5388 011a 9BB2 uxth r3, r3 5389 011c 2385 strh r3, [r4, #40] @ movhi 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5390 .loc 1 2596 7 is_stmt 1 view .LVU1916 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5391 .loc 1 2596 16 is_stmt 0 view .LVU1917 5392 011e 628D ldrh r2, [r4, #42] 5393 0120 92B2 uxth r2, r2 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5394 .loc 1 2596 10 view .LVU1918 5395 0122 002A cmp r2, #0 5396 0124 E0D0 beq .L348 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5397 .loc 1 2596 35 discriminator 1 view .LVU1919 5398 0126 002B cmp r3, #0 5399 0128 DED1 bne .L348 2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5400 .loc 1 2599 9 is_stmt 1 view .LVU1920 2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5401 .loc 1 2599 13 is_stmt 0 view .LVU1921 5402 012a 0096 str r6, [sp] 5403 012c 3B46 mov r3, r7 5404 012e 0022 movs r2, #0 5405 0130 8021 movs r1, #128 5406 0132 2046 mov r0, r4 5407 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5408 .LVL377: 2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5409 .loc 1 2599 12 discriminator 1 view .LVU1922 5410 0138 90BB cbnz r0, .L355 2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5411 .loc 1 2604 9 is_stmt 1 view .LVU1923 2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5412 .loc 1 2604 17 is_stmt 0 view .LVU1924 5413 013a 638D ldrh r3, [r4, #42] 5414 013c 9BB2 uxth r3, r3 2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5415 .loc 1 2604 12 view .LVU1925 5416 013e FF2B cmp r3, #255 ARM GAS /tmp/ccN54YTb.s page 259 5417 0140 C6D9 bls .L349 2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5418 .loc 1 2606 11 is_stmt 1 view .LVU1926 2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5419 .loc 1 2606 26 is_stmt 0 view .LVU1927 5420 0142 FF22 movs r2, #255 5421 0144 2285 strh r2, [r4, #40] @ movhi 2607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5422 .loc 1 2607 11 is_stmt 1 view .LVU1928 5423 0146 0023 movs r3, #0 5424 0148 0093 str r3, [sp] 5425 014a 4FF08073 mov r3, #16777216 5426 014e 2946 mov r1, r5 5427 0150 2046 mov r0, r4 5428 0152 FFF7FEFF bl I2C_TransferConfig 5429 .LVL378: 5430 0156 C7E7 b .L348 5431 .L361: 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5432 .loc 1 2622 5 view .LVU1929 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5433 .loc 1 2622 9 is_stmt 0 view .LVU1930 5434 0158 3246 mov r2, r6 5435 015a 3946 mov r1, r7 5436 015c 2046 mov r0, r4 5437 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5438 .LVL379: 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5439 .loc 1 2622 8 discriminator 1 view .LVU1931 5440 0162 F8B9 cbnz r0, .L356 2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5441 .loc 1 2628 5 is_stmt 1 view .LVU1932 5442 0164 2368 ldr r3, [r4] 5443 0166 2022 movs r2, #32 5444 0168 DA61 str r2, [r3, #28] 2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5445 .loc 1 2631 5 view .LVU1933 5446 016a 2168 ldr r1, [r4] 5447 016c 4B68 ldr r3, [r1, #4] 5448 016e 23F0FF73 bic r3, r3, #33423360 5449 0172 23F48B33 bic r3, r3, #71168 5450 0176 23F4FF73 bic r3, r3, #510 5451 017a 23F00103 bic r3, r3, #1 5452 017e 4B60 str r3, [r1, #4] 2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5453 .loc 1 2633 5 view .LVU1934 2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5454 .loc 1 2633 17 is_stmt 0 view .LVU1935 5455 0180 84F84120 strb r2, [r4, #65] 2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5456 .loc 1 2634 5 is_stmt 1 view .LVU1936 2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5457 .loc 1 2634 17 is_stmt 0 view .LVU1937 5458 0184 0023 movs r3, #0 5459 0186 84F84230 strb r3, [r4, #66] 2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5460 .loc 1 2637 5 is_stmt 1 view .LVU1938 ARM GAS /tmp/ccN54YTb.s page 260 2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5461 .loc 1 2637 5 view .LVU1939 5462 018a 84F84030 strb r3, [r4, #64] 2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5463 .loc 1 2637 5 view .LVU1940 2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5464 .loc 1 2639 5 view .LVU1941 2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5465 .loc 1 2639 12 is_stmt 0 view .LVU1942 5466 018e 00E0 b .L343 5467 .LVL380: 5468 .L351: 2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5469 .loc 1 2643 12 view .LVU1943 5470 0190 0220 movs r0, #2 5471 .LVL381: 5472 .L343: 2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5473 .loc 1 2645 1 view .LVU1944 5474 0192 03B0 add sp, sp, #12 5475 .cfi_remember_state 5476 .cfi_def_cfa_offset 36 5477 @ sp needed 5478 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5479 .LVL382: 5480 .L352: 5481 .cfi_restore_state 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5482 .loc 1 2540 5 discriminator 1 view .LVU1945 5483 0198 0220 movs r0, #2 5484 .LVL383: 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5485 .loc 1 2540 5 discriminator 1 view .LVU1946 5486 019a FAE7 b .L343 5487 .LVL384: 5488 .L354: 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5489 .loc 1 2584 16 view .LVU1947 5490 019c 0120 movs r0, #1 5491 019e F8E7 b .L343 5492 .L355: 2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5493 .loc 1 2601 18 view .LVU1948 5494 01a0 0120 movs r0, #1 5495 01a2 F6E7 b .L343 5496 .L356: 2624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5497 .loc 1 2624 14 view .LVU1949 5498 01a4 0120 movs r0, #1 5499 01a6 F4E7 b .L343 5500 .cfi_endproc 5501 .LFE351: 5503 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5504 .align 1 5505 .global HAL_I2C_Mem_Read 5506 .syntax unified 5507 .thumb ARM GAS /tmp/ccN54YTb.s page 261 5508 .thumb_func 5510 HAL_I2C_Mem_Read: 5511 .LVL385: 5512 .LFB352: 2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5513 .loc 1 2662 1 is_stmt 1 view -0 5514 .cfi_startproc 5515 @ args = 12, pretend = 0, frame = 0 5516 @ frame_needed = 0, uses_anonymous_args = 0 2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5517 .loc 1 2662 1 is_stmt 0 view .LVU1951 5518 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5519 .cfi_def_cfa_offset 36 5520 .cfi_offset 4, -36 5521 .cfi_offset 5, -32 5522 .cfi_offset 6, -28 5523 .cfi_offset 7, -24 5524 .cfi_offset 8, -20 5525 .cfi_offset 9, -16 5526 .cfi_offset 10, -12 5527 .cfi_offset 11, -8 5528 .cfi_offset 14, -4 5529 0004 83B0 sub sp, sp, #12 5530 .cfi_def_cfa_offset 48 5531 0006 0D46 mov r5, r1 5532 0008 BDF834A0 ldrh r10, [sp, #52] 5533 000c 0E9F ldr r7, [sp, #56] 2663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5534 .loc 1 2663 3 is_stmt 1 view .LVU1952 2666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5535 .loc 1 2666 3 view .LVU1953 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5536 .loc 1 2668 3 view .LVU1954 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5537 .loc 1 2668 11 is_stmt 0 view .LVU1955 5538 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5539 .LVL386: 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5540 .loc 1 2668 6 view .LVU1956 5541 0012 2029 cmp r1, #32 5542 0014 40F0BD80 bne .L371 5543 0018 0446 mov r4, r0 5544 001a 9146 mov r9, r2 5545 001c 9846 mov r8, r3 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5546 .loc 1 2670 5 is_stmt 1 view .LVU1957 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5547 .loc 1 2670 8 is_stmt 0 view .LVU1958 5548 001e 0C9B ldr r3, [sp, #48] 5549 .LVL387: 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5550 .loc 1 2670 8 view .LVU1959 5551 0020 BAF1000F cmp r10, #0 5552 0024 18BF it ne 5553 0026 002B cmpne r3, #0 5554 0028 16D0 beq .L378 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 262 5555 .loc 1 2677 5 is_stmt 1 view .LVU1960 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5556 .loc 1 2677 5 view .LVU1961 5557 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5558 002e 012B cmp r3, #1 5559 0030 00F0B380 beq .L372 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5560 .loc 1 2677 5 discriminator 2 view .LVU1962 5561 0034 4FF0010B mov fp, #1 5562 0038 80F840B0 strb fp, [r0, #64] 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5563 .loc 1 2677 5 view .LVU1963 2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5564 .loc 1 2680 5 view .LVU1964 2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5565 .loc 1 2680 17 is_stmt 0 view .LVU1965 5566 003c FFF7FEFF bl HAL_GetTick 5567 .LVL388: 2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5568 .loc 1 2680 17 view .LVU1966 5569 0040 0646 mov r6, r0 5570 .LVL389: 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5571 .loc 1 2682 5 is_stmt 1 view .LVU1967 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5572 .loc 1 2682 9 is_stmt 0 view .LVU1968 5573 0042 0090 str r0, [sp] 5574 0044 1923 movs r3, #25 5575 0046 5A46 mov r2, fp 5576 0048 4FF40041 mov r1, #32768 5577 004c 2046 mov r0, r4 5578 .LVL390: 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5579 .loc 1 2682 9 view .LVU1969 5580 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5581 .LVL391: 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5582 .loc 1 2682 8 discriminator 1 view .LVU1970 5583 0052 30B1 cbz r0, .L379 2684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5584 .loc 1 2684 14 view .LVU1971 5585 0054 0120 movs r0, #1 5586 0056 9DE0 b .L363 5587 .LVL392: 5588 .L378: 2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5589 .loc 1 2672 7 is_stmt 1 view .LVU1972 2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5590 .loc 1 2672 23 is_stmt 0 view .LVU1973 5591 0058 4FF40073 mov r3, #512 5592 005c 4364 str r3, [r0, #68] 2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5593 .loc 1 2673 7 is_stmt 1 view .LVU1974 2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5594 .loc 1 2673 15 is_stmt 0 view .LVU1975 5595 005e 0120 movs r0, #1 5596 .LVL393: ARM GAS /tmp/ccN54YTb.s page 263 2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5597 .loc 1 2673 15 view .LVU1976 5598 0060 98E0 b .L363 5599 .LVL394: 5600 .L379: 2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5601 .loc 1 2687 5 is_stmt 1 view .LVU1977 2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5602 .loc 1 2687 21 is_stmt 0 view .LVU1978 5603 0062 2223 movs r3, #34 5604 0064 84F84130 strb r3, [r4, #65] 2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5605 .loc 1 2688 5 is_stmt 1 view .LVU1979 2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5606 .loc 1 2688 21 is_stmt 0 view .LVU1980 5607 0068 4023 movs r3, #64 5608 006a 84F84230 strb r3, [r4, #66] 2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5609 .loc 1 2689 5 is_stmt 1 view .LVU1981 2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5610 .loc 1 2689 21 is_stmt 0 view .LVU1982 5611 006e 0023 movs r3, #0 5612 0070 6364 str r3, [r4, #68] 2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5613 .loc 1 2692 5 is_stmt 1 view .LVU1983 2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5614 .loc 1 2692 21 is_stmt 0 view .LVU1984 5615 0072 0C9A ldr r2, [sp, #48] 5616 0074 6262 str r2, [r4, #36] 2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5617 .loc 1 2693 5 is_stmt 1 view .LVU1985 2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5618 .loc 1 2693 21 is_stmt 0 view .LVU1986 5619 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5620 .loc 1 2694 5 is_stmt 1 view .LVU1987 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5621 .loc 1 2694 21 is_stmt 0 view .LVU1988 5622 007a 6363 str r3, [r4, #52] 2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5623 .loc 1 2697 5 is_stmt 1 view .LVU1989 2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5624 .loc 1 2697 9 is_stmt 0 view .LVU1990 5625 007c 0196 str r6, [sp, #4] 5626 007e 0097 str r7, [sp] 5627 0080 4346 mov r3, r8 5628 0082 4A46 mov r2, r9 5629 0084 2946 mov r1, r5 5630 0086 2046 mov r0, r4 5631 0088 FFF7FEFF bl I2C_RequestMemoryRead 5632 .LVL395: 2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5633 .loc 1 2697 8 discriminator 1 view .LVU1991 5634 008c 70B9 cbnz r0, .L380 2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5635 .loc 1 2706 5 is_stmt 1 view .LVU1992 2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 264 5636 .loc 1 2706 13 is_stmt 0 view .LVU1993 5637 008e 638D ldrh r3, [r4, #42] 5638 0090 9BB2 uxth r3, r3 2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5639 .loc 1 2706 8 view .LVU1994 5640 0092 FF2B cmp r3, #255 5641 0094 0FD9 bls .L366 2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5642 .loc 1 2708 7 is_stmt 1 view .LVU1995 2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5643 .loc 1 2708 22 is_stmt 0 view .LVU1996 5644 0096 FF22 movs r2, #255 5645 0098 2285 strh r2, [r4, #40] @ movhi 2709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5646 .loc 1 2709 7 is_stmt 1 view .LVU1997 5647 009a 444B ldr r3, .L382 5648 009c 0093 str r3, [sp] 5649 009e 4FF08073 mov r3, #16777216 5650 00a2 2946 mov r1, r5 5651 00a4 2046 mov r0, r4 5652 00a6 FFF7FEFF bl I2C_TransferConfig 5653 .LVL396: 5654 00aa 21E0 b .L370 5655 .L380: 2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5656 .loc 1 2700 7 view .LVU1998 2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5657 .loc 1 2700 7 view .LVU1999 5658 00ac 0023 movs r3, #0 5659 00ae 84F84030 strb r3, [r4, #64] 2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5660 .loc 1 2700 7 view .LVU2000 2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5661 .loc 1 2701 7 view .LVU2001 2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5662 .loc 1 2701 14 is_stmt 0 view .LVU2002 5663 00b2 5846 mov r0, fp 5664 00b4 6EE0 b .L363 5665 .L366: 2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5666 .loc 1 2714 7 is_stmt 1 view .LVU2003 2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5667 .loc 1 2714 28 is_stmt 0 view .LVU2004 5668 00b6 628D ldrh r2, [r4, #42] 5669 00b8 92B2 uxth r2, r2 2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5670 .loc 1 2714 22 view .LVU2005 5671 00ba 2285 strh r2, [r4, #40] @ movhi 2715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5672 .loc 1 2715 7 is_stmt 1 view .LVU2006 5673 00bc 3B4B ldr r3, .L382 5674 00be 0093 str r3, [sp] 5675 00c0 4FF00073 mov r3, #33554432 5676 00c4 D2B2 uxtb r2, r2 5677 00c6 2946 mov r1, r5 5678 00c8 2046 mov r0, r4 5679 00ca FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/ccN54YTb.s page 265 5680 .LVL397: 5681 00ce 0FE0 b .L370 5682 .L369: 2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5683 .loc 1 2752 11 view .LVU2007 2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5684 .loc 1 2752 32 is_stmt 0 view .LVU2008 5685 00d0 628D ldrh r2, [r4, #42] 5686 00d2 92B2 uxth r2, r2 2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5687 .loc 1 2752 26 view .LVU2009 5688 00d4 2285 strh r2, [r4, #40] @ movhi 2753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5689 .loc 1 2753 11 is_stmt 1 view .LVU2010 5690 00d6 0023 movs r3, #0 5691 00d8 0093 str r3, [sp] 5692 00da 4FF00073 mov r3, #33554432 5693 00de D2B2 uxtb r2, r2 5694 00e0 2946 mov r1, r5 5695 00e2 2046 mov r0, r4 5696 00e4 FFF7FEFF bl I2C_TransferConfig 5697 .LVL398: 5698 .L368: 2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5699 .loc 1 2757 30 view .LVU2011 2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5700 .loc 1 2757 18 is_stmt 0 view .LVU2012 5701 00e8 638D ldrh r3, [r4, #42] 5702 00ea 9BB2 uxth r3, r3 2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5703 .loc 1 2757 30 view .LVU2013 5704 00ec 002B cmp r3, #0 5705 00ee 34D0 beq .L381 5706 .L370: 2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5707 .loc 1 2719 5 is_stmt 1 view .LVU2014 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5708 .loc 1 2722 7 view .LVU2015 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5709 .loc 1 2722 11 is_stmt 0 view .LVU2016 5710 00f0 0096 str r6, [sp] 5711 00f2 3B46 mov r3, r7 5712 00f4 0022 movs r2, #0 5713 00f6 0421 movs r1, #4 5714 00f8 2046 mov r0, r4 5715 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5716 .LVL399: 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5717 .loc 1 2722 10 discriminator 1 view .LVU2017 5718 00fe 0028 cmp r0, #0 5719 0100 4DD1 bne .L374 2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5720 .loc 1 2728 7 is_stmt 1 view .LVU2018 2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5721 .loc 1 2728 38 is_stmt 0 view .LVU2019 5722 0102 2368 ldr r3, [r4] 2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 266 5723 .loc 1 2728 48 view .LVU2020 5724 0104 5A6A ldr r2, [r3, #36] 2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5725 .loc 1 2728 12 view .LVU2021 5726 0106 636A ldr r3, [r4, #36] 2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5727 .loc 1 2728 23 view .LVU2022 5728 0108 1A70 strb r2, [r3] 2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5729 .loc 1 2731 7 is_stmt 1 view .LVU2023 2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5730 .loc 1 2731 11 is_stmt 0 view .LVU2024 5731 010a 636A ldr r3, [r4, #36] 2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5732 .loc 1 2731 21 view .LVU2025 5733 010c 0133 adds r3, r3, #1 5734 010e 6362 str r3, [r4, #36] 2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5735 .loc 1 2733 7 is_stmt 1 view .LVU2026 2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5736 .loc 1 2733 11 is_stmt 0 view .LVU2027 5737 0110 228D ldrh r2, [r4, #40] 2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5738 .loc 1 2733 21 view .LVU2028 5739 0112 013A subs r2, r2, #1 5740 0114 92B2 uxth r2, r2 5741 0116 2285 strh r2, [r4, #40] @ movhi 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5742 .loc 1 2734 7 is_stmt 1 view .LVU2029 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5743 .loc 1 2734 11 is_stmt 0 view .LVU2030 5744 0118 638D ldrh r3, [r4, #42] 5745 011a 9BB2 uxth r3, r3 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5746 .loc 1 2734 22 view .LVU2031 5747 011c 013B subs r3, r3, #1 5748 011e 9BB2 uxth r3, r3 5749 0120 6385 strh r3, [r4, #42] @ movhi 2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5750 .loc 1 2736 7 is_stmt 1 view .LVU2032 2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5751 .loc 1 2736 16 is_stmt 0 view .LVU2033 5752 0122 638D ldrh r3, [r4, #42] 5753 0124 9BB2 uxth r3, r3 2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5754 .loc 1 2736 10 view .LVU2034 5755 0126 002B cmp r3, #0 5756 0128 DED0 beq .L368 2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5757 .loc 1 2736 35 discriminator 1 view .LVU2035 5758 012a 002A cmp r2, #0 5759 012c DCD1 bne .L368 2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5760 .loc 1 2739 9 is_stmt 1 view .LVU2036 2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5761 .loc 1 2739 13 is_stmt 0 view .LVU2037 5762 012e 0096 str r6, [sp] ARM GAS /tmp/ccN54YTb.s page 267 5763 0130 3B46 mov r3, r7 5764 0132 8021 movs r1, #128 5765 0134 2046 mov r0, r4 5766 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5767 .LVL400: 2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5768 .loc 1 2739 12 discriminator 1 view .LVU2038 5769 013a 90BB cbnz r0, .L375 2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5770 .loc 1 2744 9 is_stmt 1 view .LVU2039 2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5771 .loc 1 2744 17 is_stmt 0 view .LVU2040 5772 013c 638D ldrh r3, [r4, #42] 5773 013e 9BB2 uxth r3, r3 2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5774 .loc 1 2744 12 view .LVU2041 5775 0140 FF2B cmp r3, #255 5776 0142 C5D9 bls .L369 2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5777 .loc 1 2746 11 is_stmt 1 view .LVU2042 2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5778 .loc 1 2746 26 is_stmt 0 view .LVU2043 5779 0144 FF22 movs r2, #255 5780 0146 2285 strh r2, [r4, #40] @ movhi 2747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5781 .loc 1 2747 11 is_stmt 1 view .LVU2044 5782 0148 0023 movs r3, #0 5783 014a 0093 str r3, [sp] 5784 014c 4FF08073 mov r3, #16777216 5785 0150 2946 mov r1, r5 5786 0152 2046 mov r0, r4 5787 0154 FFF7FEFF bl I2C_TransferConfig 5788 .LVL401: 5789 0158 C6E7 b .L368 5790 .L381: 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5791 .loc 1 2761 5 view .LVU2045 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5792 .loc 1 2761 9 is_stmt 0 view .LVU2046 5793 015a 3246 mov r2, r6 5794 015c 3946 mov r1, r7 5795 015e 2046 mov r0, r4 5796 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5797 .LVL402: 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5798 .loc 1 2761 8 discriminator 1 view .LVU2047 5799 0164 F8B9 cbnz r0, .L376 2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5800 .loc 1 2767 5 is_stmt 1 view .LVU2048 5801 0166 2368 ldr r3, [r4] 5802 0168 2022 movs r2, #32 5803 016a DA61 str r2, [r3, #28] 2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5804 .loc 1 2770 5 view .LVU2049 5805 016c 2168 ldr r1, [r4] 5806 016e 4B68 ldr r3, [r1, #4] 5807 0170 23F0FF73 bic r3, r3, #33423360 ARM GAS /tmp/ccN54YTb.s page 268 5808 0174 23F48B33 bic r3, r3, #71168 5809 0178 23F4FF73 bic r3, r3, #510 5810 017c 23F00103 bic r3, r3, #1 5811 0180 4B60 str r3, [r1, #4] 2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5812 .loc 1 2772 5 view .LVU2050 2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5813 .loc 1 2772 17 is_stmt 0 view .LVU2051 5814 0182 84F84120 strb r2, [r4, #65] 2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5815 .loc 1 2773 5 is_stmt 1 view .LVU2052 2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5816 .loc 1 2773 17 is_stmt 0 view .LVU2053 5817 0186 0023 movs r3, #0 5818 0188 84F84230 strb r3, [r4, #66] 2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5819 .loc 1 2776 5 is_stmt 1 view .LVU2054 2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5820 .loc 1 2776 5 view .LVU2055 5821 018c 84F84030 strb r3, [r4, #64] 2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5822 .loc 1 2776 5 view .LVU2056 2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5823 .loc 1 2778 5 view .LVU2057 2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5824 .loc 1 2778 12 is_stmt 0 view .LVU2058 5825 0190 00E0 b .L363 5826 .LVL403: 5827 .L371: 2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5828 .loc 1 2782 12 view .LVU2059 5829 0192 0220 movs r0, #2 5830 .LVL404: 5831 .L363: 2784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5832 .loc 1 2784 1 view .LVU2060 5833 0194 03B0 add sp, sp, #12 5834 .cfi_remember_state 5835 .cfi_def_cfa_offset 36 5836 @ sp needed 5837 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5838 .LVL405: 5839 .L372: 5840 .cfi_restore_state 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5841 .loc 1 2677 5 discriminator 1 view .LVU2061 5842 019a 0220 movs r0, #2 5843 .LVL406: 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5844 .loc 1 2677 5 discriminator 1 view .LVU2062 5845 019c FAE7 b .L363 5846 .LVL407: 5847 .L374: 2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5848 .loc 1 2724 16 view .LVU2063 5849 019e 0120 movs r0, #1 5850 01a0 F8E7 b .L363 ARM GAS /tmp/ccN54YTb.s page 269 5851 .L375: 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5852 .loc 1 2741 18 view .LVU2064 5853 01a2 0120 movs r0, #1 5854 01a4 F6E7 b .L363 5855 .L376: 2763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5856 .loc 1 2763 14 view .LVU2065 5857 01a6 0120 movs r0, #1 5858 01a8 F4E7 b .L363 5859 .L383: 5860 01aa 00BF .align 2 5861 .L382: 5862 01ac 00240080 .word -2147474432 5863 .cfi_endproc 5864 .LFE352: 5866 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5867 .align 1 5868 .global HAL_I2C_Mem_Write_IT 5869 .syntax unified 5870 .thumb 5871 .thumb_func 5873 HAL_I2C_Mem_Write_IT: 5874 .LVL408: 5875 .LFB353: 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 5876 .loc 1 2799 1 is_stmt 1 view -0 5877 .cfi_startproc 5878 @ args = 8, pretend = 0, frame = 0 5879 @ frame_needed = 0, uses_anonymous_args = 0 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 5880 .loc 1 2799 1 is_stmt 0 view .LVU2067 5881 0000 70B5 push {r4, r5, r6, lr} 5882 .cfi_def_cfa_offset 16 5883 .cfi_offset 4, -16 5884 .cfi_offset 5, -12 5885 .cfi_offset 6, -8 5886 .cfi_offset 14, -4 5887 0002 82B0 sub sp, sp, #8 5888 .cfi_def_cfa_offset 24 5889 0004 0446 mov r4, r0 5890 0006 1D46 mov r5, r3 5891 0008 BDF81C30 ldrh r3, [sp, #28] 5892 .LVL409: 2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5893 .loc 1 2801 3 is_stmt 1 view .LVU2068 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5894 .loc 1 2803 3 view .LVU2069 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5895 .loc 1 2803 11 is_stmt 0 view .LVU2070 5896 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5897 .LVL410: 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5898 .loc 1 2803 6 view .LVU2071 5899 0010 2028 cmp r0, #32 5900 0012 43D1 bne .L389 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 270 5901 .loc 1 2805 5 is_stmt 1 view .LVU2072 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5902 .loc 1 2805 8 is_stmt 0 view .LVU2073 5903 0014 0698 ldr r0, [sp, #24] 5904 0016 002B cmp r3, #0 5905 0018 18BF it ne 5906 001a 0028 cmpne r0, #0 5907 001c 33D0 beq .L393 2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5908 .loc 1 2811 5 is_stmt 1 view .LVU2074 2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5909 .loc 1 2811 9 is_stmt 0 view .LVU2075 5910 001e 2068 ldr r0, [r4] 5911 0020 8669 ldr r6, [r0, #24] 2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5912 .loc 1 2811 8 view .LVU2076 5913 0022 16F4004F tst r6, #32768 5914 0026 3CD1 bne .L390 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5915 .loc 1 2817 5 is_stmt 1 view .LVU2077 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5916 .loc 1 2817 5 view .LVU2078 5917 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 5918 002c 012E cmp r6, #1 5919 002e 3AD0 beq .L391 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5920 .loc 1 2817 5 discriminator 2 view .LVU2079 5921 0030 0126 movs r6, #1 5922 0032 84F84060 strb r6, [r4, #64] 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5923 .loc 1 2817 5 view .LVU2080 2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5924 .loc 1 2819 5 view .LVU2081 2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5925 .loc 1 2819 23 is_stmt 0 view .LVU2082 5926 0036 2126 movs r6, #33 5927 0038 84F84160 strb r6, [r4, #65] 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5928 .loc 1 2820 5 is_stmt 1 view .LVU2083 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5929 .loc 1 2820 23 is_stmt 0 view .LVU2084 5930 003c 4026 movs r6, #64 5931 003e 84F84260 strb r6, [r4, #66] 2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5932 .loc 1 2821 5 is_stmt 1 view .LVU2085 2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5933 .loc 1 2821 23 is_stmt 0 view .LVU2086 5934 0042 0026 movs r6, #0 5935 0044 6664 str r6, [r4, #68] 2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 5936 .loc 1 2824 5 is_stmt 1 view .LVU2087 2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 5937 .loc 1 2824 23 is_stmt 0 view .LVU2088 5938 0046 2685 strh r6, [r4, #40] @ movhi 2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5939 .loc 1 2825 5 is_stmt 1 view .LVU2089 2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccN54YTb.s page 271 5940 .loc 1 2825 23 is_stmt 0 view .LVU2090 5941 0048 069E ldr r6, [sp, #24] 5942 004a 6662 str r6, [r4, #36] 2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5943 .loc 1 2826 5 is_stmt 1 view .LVU2091 2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5944 .loc 1 2826 23 is_stmt 0 view .LVU2092 5945 004c 6385 strh r3, [r4, #42] @ movhi 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 5946 .loc 1 2827 5 is_stmt 1 view .LVU2093 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 5947 .loc 1 2827 23 is_stmt 0 view .LVU2094 5948 004e 174B ldr r3, .L395 5949 0050 E362 str r3, [r4, #44] 2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 5950 .loc 1 2828 5 is_stmt 1 view .LVU2095 2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 5951 .loc 1 2828 23 is_stmt 0 view .LVU2096 5952 0052 174B ldr r3, .L395+4 5953 0054 6363 str r3, [r4, #52] 2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5954 .loc 1 2829 5 is_stmt 1 view .LVU2097 2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5955 .loc 1 2829 23 is_stmt 0 view .LVU2098 5956 0056 E164 str r1, [r4, #76] 2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5957 .loc 1 2832 5 is_stmt 1 view .LVU2099 2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5958 .loc 1 2832 8 is_stmt 0 view .LVU2100 5959 0058 012D cmp r5, #1 5960 005a 19D0 beq .L394 2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5961 .loc 1 2844 7 is_stmt 1 view .LVU2101 2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5962 .loc 1 2844 30 is_stmt 0 view .LVU2102 5963 005c 130A lsrs r3, r2, #8 2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5964 .loc 1 2844 28 view .LVU2103 5965 005e 8362 str r3, [r0, #40] 2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5966 .loc 1 2847 7 is_stmt 1 view .LVU2104 2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5967 .loc 1 2847 26 is_stmt 0 view .LVU2105 5968 0060 D2B2 uxtb r2, r2 5969 .LVL411: 2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5970 .loc 1 2847 24 view .LVU2106 5971 0062 2265 str r2, [r4, #80] 5972 .L388: 2850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5973 .loc 1 2850 5 is_stmt 1 view .LVU2107 5974 0064 134B ldr r3, .L395+8 5975 0066 0093 str r3, [sp] 5976 0068 4FF08073 mov r3, #16777216 5977 006c EAB2 uxtb r2, r5 5978 006e 2046 mov r0, r4 5979 0070 FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/ccN54YTb.s page 272 5980 .LVL412: 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5981 .loc 1 2853 5 view .LVU2108 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5982 .loc 1 2853 5 view .LVU2109 5983 0074 0025 movs r5, #0 5984 .LVL413: 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5985 .loc 1 2853 5 is_stmt 0 view .LVU2110 5986 0076 84F84050 strb r5, [r4, #64] 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5987 .loc 1 2853 5 is_stmt 1 view .LVU2111 2863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5988 .loc 1 2863 5 view .LVU2112 5989 007a 0121 movs r1, #1 5990 007c 2046 mov r0, r4 5991 007e FFF7FEFF bl I2C_Enable_IRQ 5992 .LVL414: 2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5993 .loc 1 2865 5 view .LVU2113 2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5994 .loc 1 2865 12 is_stmt 0 view .LVU2114 5995 0082 2846 mov r0, r5 5996 0084 0BE0 b .L385 5997 .LVL415: 5998 .L393: 2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5999 .loc 1 2807 7 is_stmt 1 view .LVU2115 2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6000 .loc 1 2807 23 is_stmt 0 view .LVU2116 6001 0086 4FF40073 mov r3, #512 6002 008a 6364 str r3, [r4, #68] 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6003 .loc 1 2808 7 is_stmt 1 view .LVU2117 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6004 .loc 1 2808 15 is_stmt 0 view .LVU2118 6005 008c 0120 movs r0, #1 6006 008e 06E0 b .L385 6007 .L394: 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6008 .loc 1 2835 7 is_stmt 1 view .LVU2119 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6009 .loc 1 2835 30 is_stmt 0 view .LVU2120 6010 0090 D2B2 uxtb r2, r2 6011 .LVL416: 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6012 .loc 1 2835 28 view .LVU2121 6013 0092 8262 str r2, [r0, #40] 2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6014 .loc 1 2838 7 is_stmt 1 view .LVU2122 2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6015 .loc 1 2838 24 is_stmt 0 view .LVU2123 6016 0094 4FF0FF33 mov r3, #-1 6017 0098 2365 str r3, [r4, #80] 6018 009a E3E7 b .L388 6019 .LVL417: 6020 .L389: ARM GAS /tmp/ccN54YTb.s page 273 2869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6021 .loc 1 2869 12 view .LVU2124 6022 009c 0220 movs r0, #2 6023 .LVL418: 6024 .L385: 2871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6025 .loc 1 2871 1 view .LVU2125 6026 009e 02B0 add sp, sp, #8 6027 .cfi_remember_state 6028 .cfi_def_cfa_offset 16 6029 @ sp needed 6030 00a0 70BD pop {r4, r5, r6, pc} 6031 .LVL419: 6032 .L390: 6033 .cfi_restore_state 2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6034 .loc 1 2813 14 view .LVU2126 6035 00a2 0220 movs r0, #2 6036 00a4 FBE7 b .L385 6037 .L391: 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6038 .loc 1 2817 5 discriminator 1 view .LVU2127 6039 00a6 0220 movs r0, #2 6040 00a8 F9E7 b .L385 6041 .L396: 6042 00aa 00BF .align 2 6043 .L395: 6044 00ac 0000FFFF .word -65536 6045 00b0 00000000 .word I2C_Mem_ISR_IT 6046 00b4 00200080 .word -2147475456 6047 .cfi_endproc 6048 .LFE353: 6050 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 6051 .align 1 6052 .global HAL_I2C_Mem_Read_IT 6053 .syntax unified 6054 .thumb 6055 .thumb_func 6057 HAL_I2C_Mem_Read_IT: 6058 .LVL420: 6059 .LFB354: 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 6060 .loc 1 2887 1 is_stmt 1 view -0 6061 .cfi_startproc 6062 @ args = 8, pretend = 0, frame = 0 6063 @ frame_needed = 0, uses_anonymous_args = 0 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 6064 .loc 1 2887 1 is_stmt 0 view .LVU2129 6065 0000 70B5 push {r4, r5, r6, lr} 6066 .cfi_def_cfa_offset 16 6067 .cfi_offset 4, -16 6068 .cfi_offset 5, -12 6069 .cfi_offset 6, -8 6070 .cfi_offset 14, -4 6071 0002 82B0 sub sp, sp, #8 6072 .cfi_def_cfa_offset 24 6073 0004 0446 mov r4, r0 ARM GAS /tmp/ccN54YTb.s page 274 6074 0006 1D46 mov r5, r3 6075 0008 BDF81C30 ldrh r3, [sp, #28] 6076 .LVL421: 2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6077 .loc 1 2889 3 is_stmt 1 view .LVU2130 2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6078 .loc 1 2891 3 view .LVU2131 2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6079 .loc 1 2891 11 is_stmt 0 view .LVU2132 6080 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6081 .LVL422: 2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6082 .loc 1 2891 6 view .LVU2133 6083 0010 2028 cmp r0, #32 6084 0012 41D1 bne .L402 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6085 .loc 1 2893 5 is_stmt 1 view .LVU2134 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6086 .loc 1 2893 8 is_stmt 0 view .LVU2135 6087 0014 0698 ldr r0, [sp, #24] 6088 0016 002B cmp r3, #0 6089 0018 18BF it ne 6090 001a 0028 cmpne r0, #0 6091 001c 31D0 beq .L406 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6092 .loc 1 2899 5 is_stmt 1 view .LVU2136 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6093 .loc 1 2899 9 is_stmt 0 view .LVU2137 6094 001e 2068 ldr r0, [r4] 6095 0020 8669 ldr r6, [r0, #24] 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6096 .loc 1 2899 8 view .LVU2138 6097 0022 16F4004F tst r6, #32768 6098 0026 3AD1 bne .L403 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6099 .loc 1 2905 5 is_stmt 1 view .LVU2139 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6100 .loc 1 2905 5 view .LVU2140 6101 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6102 002c 012E cmp r6, #1 6103 002e 38D0 beq .L404 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6104 .loc 1 2905 5 discriminator 2 view .LVU2141 6105 0030 0126 movs r6, #1 6106 0032 84F84060 strb r6, [r4, #64] 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6107 .loc 1 2905 5 view .LVU2142 2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6108 .loc 1 2907 5 view .LVU2143 2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6109 .loc 1 2907 23 is_stmt 0 view .LVU2144 6110 0036 2226 movs r6, #34 6111 0038 84F84160 strb r6, [r4, #65] 2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6112 .loc 1 2908 5 is_stmt 1 view .LVU2145 2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6113 .loc 1 2908 23 is_stmt 0 view .LVU2146 ARM GAS /tmp/ccN54YTb.s page 275 6114 003c 4026 movs r6, #64 6115 003e 84F84260 strb r6, [r4, #66] 2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6116 .loc 1 2909 5 is_stmt 1 view .LVU2147 2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6117 .loc 1 2909 23 is_stmt 0 view .LVU2148 6118 0042 0026 movs r6, #0 6119 0044 6664 str r6, [r4, #68] 2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6120 .loc 1 2912 5 is_stmt 1 view .LVU2149 2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6121 .loc 1 2912 23 is_stmt 0 view .LVU2150 6122 0046 069E ldr r6, [sp, #24] 6123 0048 6662 str r6, [r4, #36] 2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6124 .loc 1 2913 5 is_stmt 1 view .LVU2151 2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6125 .loc 1 2913 23 is_stmt 0 view .LVU2152 6126 004a 6385 strh r3, [r4, #42] @ movhi 2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6127 .loc 1 2914 5 is_stmt 1 view .LVU2153 2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6128 .loc 1 2914 23 is_stmt 0 view .LVU2154 6129 004c 164B ldr r3, .L408 6130 004e E362 str r3, [r4, #44] 2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6131 .loc 1 2915 5 is_stmt 1 view .LVU2155 2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6132 .loc 1 2915 23 is_stmt 0 view .LVU2156 6133 0050 164B ldr r3, .L408+4 6134 0052 6363 str r3, [r4, #52] 2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6135 .loc 1 2916 5 is_stmt 1 view .LVU2157 2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6136 .loc 1 2916 23 is_stmt 0 view .LVU2158 6137 0054 E164 str r1, [r4, #76] 2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6138 .loc 1 2919 5 is_stmt 1 view .LVU2159 2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6139 .loc 1 2919 8 is_stmt 0 view .LVU2160 6140 0056 012D cmp r5, #1 6141 0058 18D0 beq .L407 2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6142 .loc 1 2931 7 is_stmt 1 view .LVU2161 2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6143 .loc 1 2931 30 is_stmt 0 view .LVU2162 6144 005a 130A lsrs r3, r2, #8 2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6145 .loc 1 2931 28 view .LVU2163 6146 005c 8362 str r3, [r0, #40] 2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6147 .loc 1 2934 7 is_stmt 1 view .LVU2164 2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6148 .loc 1 2934 26 is_stmt 0 view .LVU2165 6149 005e D2B2 uxtb r2, r2 6150 .LVL423: 2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 276 6151 .loc 1 2934 24 view .LVU2166 6152 0060 2265 str r2, [r4, #80] 6153 .L401: 2937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6154 .loc 1 2937 5 is_stmt 1 view .LVU2167 6155 0062 134B ldr r3, .L408+8 6156 0064 0093 str r3, [sp] 6157 0066 0023 movs r3, #0 6158 0068 EAB2 uxtb r2, r5 6159 006a 2046 mov r0, r4 6160 006c FFF7FEFF bl I2C_TransferConfig 6161 .LVL424: 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6162 .loc 1 2940 5 view .LVU2168 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6163 .loc 1 2940 5 view .LVU2169 6164 0070 0025 movs r5, #0 6165 .LVL425: 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6166 .loc 1 2940 5 is_stmt 0 view .LVU2170 6167 0072 84F84050 strb r5, [r4, #64] 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6168 .loc 1 2940 5 is_stmt 1 view .LVU2171 2950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6169 .loc 1 2950 5 view .LVU2172 6170 0076 0121 movs r1, #1 6171 0078 2046 mov r0, r4 6172 007a FFF7FEFF bl I2C_Enable_IRQ 6173 .LVL426: 2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6174 .loc 1 2952 5 view .LVU2173 2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6175 .loc 1 2952 12 is_stmt 0 view .LVU2174 6176 007e 2846 mov r0, r5 6177 0080 0BE0 b .L398 6178 .LVL427: 6179 .L406: 2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6180 .loc 1 2895 7 is_stmt 1 view .LVU2175 2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6181 .loc 1 2895 23 is_stmt 0 view .LVU2176 6182 0082 4FF40073 mov r3, #512 6183 0086 6364 str r3, [r4, #68] 2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6184 .loc 1 2896 7 is_stmt 1 view .LVU2177 2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6185 .loc 1 2896 15 is_stmt 0 view .LVU2178 6186 0088 0120 movs r0, #1 6187 008a 06E0 b .L398 6188 .L407: 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6189 .loc 1 2922 7 is_stmt 1 view .LVU2179 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6190 .loc 1 2922 30 is_stmt 0 view .LVU2180 6191 008c D2B2 uxtb r2, r2 6192 .LVL428: 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 277 6193 .loc 1 2922 28 view .LVU2181 6194 008e 8262 str r2, [r0, #40] 2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6195 .loc 1 2925 7 is_stmt 1 view .LVU2182 2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6196 .loc 1 2925 24 is_stmt 0 view .LVU2183 6197 0090 4FF0FF33 mov r3, #-1 6198 0094 2365 str r3, [r4, #80] 6199 0096 E4E7 b .L401 6200 .LVL429: 6201 .L402: 2956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6202 .loc 1 2956 12 view .LVU2184 6203 0098 0220 movs r0, #2 6204 .LVL430: 6205 .L398: 2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6206 .loc 1 2958 1 view .LVU2185 6207 009a 02B0 add sp, sp, #8 6208 .cfi_remember_state 6209 .cfi_def_cfa_offset 16 6210 @ sp needed 6211 009c 70BD pop {r4, r5, r6, pc} 6212 .LVL431: 6213 .L403: 6214 .cfi_restore_state 2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6215 .loc 1 2901 14 view .LVU2186 6216 009e 0220 movs r0, #2 6217 00a0 FBE7 b .L398 6218 .L404: 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6219 .loc 1 2905 5 discriminator 1 view .LVU2187 6220 00a2 0220 movs r0, #2 6221 00a4 F9E7 b .L398 6222 .L409: 6223 00a6 00BF .align 2 6224 .L408: 6225 00a8 0000FFFF .word -65536 6226 00ac 00000000 .word I2C_Mem_ISR_IT 6227 00b0 00200080 .word -2147475456 6228 .cfi_endproc 6229 .LFE354: 6231 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6232 .align 1 6233 .global HAL_I2C_Mem_Write_DMA 6234 .syntax unified 6235 .thumb 6236 .thumb_func 6238 HAL_I2C_Mem_Write_DMA: 6239 .LVL432: 6240 .LFB355: 2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6241 .loc 1 2974 1 is_stmt 1 view -0 6242 .cfi_startproc 6243 @ args = 8, pretend = 0, frame = 0 6244 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccN54YTb.s page 278 2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6245 .loc 1 2974 1 is_stmt 0 view .LVU2189 6246 0000 F0B5 push {r4, r5, r6, r7, lr} 6247 .cfi_def_cfa_offset 20 6248 .cfi_offset 4, -20 6249 .cfi_offset 5, -16 6250 .cfi_offset 6, -12 6251 .cfi_offset 7, -8 6252 .cfi_offset 14, -4 6253 0002 83B0 sub sp, sp, #12 6254 .cfi_def_cfa_offset 32 6255 0004 0446 mov r4, r0 6256 0006 0E46 mov r6, r1 6257 0008 1F46 mov r7, r3 6258 000a 0899 ldr r1, [sp, #32] 6259 .LVL433: 2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6260 .loc 1 2974 1 view .LVU2190 6261 000c BDF82430 ldrh r3, [sp, #36] 6262 .LVL434: 2975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6263 .loc 1 2975 3 is_stmt 1 view .LVU2191 2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6264 .loc 1 2978 3 view .LVU2192 2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6265 .loc 1 2980 3 view .LVU2193 2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6266 .loc 1 2980 11 is_stmt 0 view .LVU2194 6267 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6268 .LVL435: 2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6269 .loc 1 2980 6 view .LVU2195 6270 0014 2028 cmp r0, #32 6271 0016 7AD1 bne .L420 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6272 .loc 1 2982 5 is_stmt 1 view .LVU2196 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6273 .loc 1 2982 8 is_stmt 0 view .LVU2197 6274 0018 002B cmp r3, #0 6275 001a 18BF it ne 6276 001c 0029 cmpne r1, #0 6277 001e 49D0 beq .L425 2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6278 .loc 1 2988 5 is_stmt 1 view .LVU2198 2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6279 .loc 1 2988 9 is_stmt 0 view .LVU2199 6280 0020 2068 ldr r0, [r4] 6281 0022 8569 ldr r5, [r0, #24] 2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6282 .loc 1 2988 8 view .LVU2200 6283 0024 15F4004F tst r5, #32768 6284 0028 75D1 bne .L421 2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6285 .loc 1 2994 5 is_stmt 1 view .LVU2201 2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6286 .loc 1 2994 5 view .LVU2202 6287 002a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 ARM GAS /tmp/ccN54YTb.s page 279 6288 002e 012D cmp r5, #1 6289 0030 73D0 beq .L422 2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6290 .loc 1 2994 5 discriminator 2 view .LVU2203 6291 0032 0125 movs r5, #1 6292 0034 84F84050 strb r5, [r4, #64] 2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6293 .loc 1 2994 5 view .LVU2204 2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6294 .loc 1 2996 5 view .LVU2205 2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6295 .loc 1 2996 23 is_stmt 0 view .LVU2206 6296 0038 2125 movs r5, #33 6297 003a 84F84150 strb r5, [r4, #65] 2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6298 .loc 1 2997 5 is_stmt 1 view .LVU2207 2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6299 .loc 1 2997 23 is_stmt 0 view .LVU2208 6300 003e 4025 movs r5, #64 6301 0040 84F84250 strb r5, [r4, #66] 2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6302 .loc 1 2998 5 is_stmt 1 view .LVU2209 2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6303 .loc 1 2998 23 is_stmt 0 view .LVU2210 6304 0044 0025 movs r5, #0 6305 0046 6564 str r5, [r4, #68] 3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6306 .loc 1 3001 5 is_stmt 1 view .LVU2211 3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6307 .loc 1 3001 23 is_stmt 0 view .LVU2212 6308 0048 6162 str r1, [r4, #36] 3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6309 .loc 1 3002 5 is_stmt 1 view .LVU2213 3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6310 .loc 1 3002 23 is_stmt 0 view .LVU2214 6311 004a 6385 strh r3, [r4, #42] @ movhi 3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6312 .loc 1 3003 5 is_stmt 1 view .LVU2215 3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6313 .loc 1 3003 23 is_stmt 0 view .LVU2216 6314 004c 344B ldr r3, .L428 6315 004e E362 str r3, [r4, #44] 3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6316 .loc 1 3004 5 is_stmt 1 view .LVU2217 3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6317 .loc 1 3004 23 is_stmt 0 view .LVU2218 6318 0050 344B ldr r3, .L428+4 6319 0052 6363 str r3, [r4, #52] 3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6320 .loc 1 3005 5 is_stmt 1 view .LVU2219 3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6321 .loc 1 3005 23 is_stmt 0 view .LVU2220 6322 0054 E664 str r6, [r4, #76] 3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6323 .loc 1 3007 5 is_stmt 1 view .LVU2221 3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6324 .loc 1 3007 13 is_stmt 0 view .LVU2222 ARM GAS /tmp/ccN54YTb.s page 280 6325 0056 638D ldrh r3, [r4, #42] 6326 0058 9BB2 uxth r3, r3 3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6327 .loc 1 3007 8 view .LVU2223 6328 005a FF2B cmp r3, #255 6329 005c 2FD9 bls .L413 3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6330 .loc 1 3009 7 is_stmt 1 view .LVU2224 3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6331 .loc 1 3009 22 is_stmt 0 view .LVU2225 6332 005e FF23 movs r3, #255 6333 0060 2385 strh r3, [r4, #40] @ movhi 6334 .L414: 3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6335 .loc 1 3017 5 is_stmt 1 view .LVU2226 3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6336 .loc 1 3017 8 is_stmt 0 view .LVU2227 6337 0062 012F cmp r7, #1 6338 0064 2ED0 beq .L426 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6339 .loc 1 3029 7 is_stmt 1 view .LVU2228 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6340 .loc 1 3029 30 is_stmt 0 view .LVU2229 6341 0066 130A lsrs r3, r2, #8 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6342 .loc 1 3029 28 view .LVU2230 6343 0068 8362 str r3, [r0, #40] 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6344 .loc 1 3032 7 is_stmt 1 view .LVU2231 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6345 .loc 1 3032 26 is_stmt 0 view .LVU2232 6346 006a D2B2 uxtb r2, r2 6347 .LVL436: 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6348 .loc 1 3032 24 view .LVU2233 6349 006c 2265 str r2, [r4, #80] 6350 .L416: 3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6351 .loc 1 3035 5 is_stmt 1 view .LVU2234 3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6352 .loc 1 3035 13 is_stmt 0 view .LVU2235 6353 006e A36B ldr r3, [r4, #56] 3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6354 .loc 1 3035 8 view .LVU2236 6355 0070 002B cmp r3, #0 6356 0072 2DD0 beq .L417 3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6357 .loc 1 3038 7 is_stmt 1 view .LVU2237 3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6358 .loc 1 3038 38 is_stmt 0 view .LVU2238 6359 0074 2C4A ldr r2, .L428+8 6360 0076 DA63 str r2, [r3, #60] 3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6361 .loc 1 3041 7 is_stmt 1 view .LVU2239 3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6362 .loc 1 3041 11 is_stmt 0 view .LVU2240 6363 0078 A36B ldr r3, [r4, #56] ARM GAS /tmp/ccN54YTb.s page 281 3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6364 .loc 1 3041 39 view .LVU2241 6365 007a 2C4A ldr r2, .L428+12 6366 007c DA64 str r2, [r3, #76] 3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6367 .loc 1 3044 7 is_stmt 1 view .LVU2242 3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6368 .loc 1 3044 11 is_stmt 0 view .LVU2243 6369 007e A26B ldr r2, [r4, #56] 3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6370 .loc 1 3044 42 view .LVU2244 6371 0080 0023 movs r3, #0 6372 0082 1364 str r3, [r2, #64] 3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6373 .loc 1 3045 7 is_stmt 1 view .LVU2245 3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6374 .loc 1 3045 11 is_stmt 0 view .LVU2246 6375 0084 A26B ldr r2, [r4, #56] 3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6376 .loc 1 3045 39 view .LVU2247 6377 0086 1365 str r3, [r2, #80] 3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6378 .loc 1 3048 7 is_stmt 1 view .LVU2248 3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6379 .loc 1 3048 86 is_stmt 0 view .LVU2249 6380 0088 2268 ldr r2, [r4] 3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6381 .loc 1 3048 23 view .LVU2250 6382 008a 238D ldrh r3, [r4, #40] 6383 008c 2832 adds r2, r2, #40 6384 008e A06B ldr r0, [r4, #56] 6385 0090 FFF7FEFF bl HAL_DMA_Start_IT 6386 .LVL437: 3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6387 .loc 1 3066 5 is_stmt 1 view .LVU2251 3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6388 .loc 1 3066 8 is_stmt 0 view .LVU2252 6389 0094 0546 mov r5, r0 6390 0096 48B3 cbz r0, .L427 3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6391 .loc 1 3086 7 is_stmt 1 view .LVU2253 3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6392 .loc 1 3086 23 is_stmt 0 view .LVU2254 6393 0098 2023 movs r3, #32 6394 009a 84F84130 strb r3, [r4, #65] 3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6395 .loc 1 3087 7 is_stmt 1 view .LVU2255 3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6396 .loc 1 3087 23 is_stmt 0 view .LVU2256 6397 009e 0022 movs r2, #0 6398 00a0 84F84220 strb r2, [r4, #66] 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6399 .loc 1 3090 7 is_stmt 1 view .LVU2257 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6400 .loc 1 3090 11 is_stmt 0 view .LVU2258 6401 00a4 636C ldr r3, [r4, #68] 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 282 6402 .loc 1 3090 23 view .LVU2259 6403 00a6 43F01003 orr r3, r3, #16 6404 00aa 6364 str r3, [r4, #68] 3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6405 .loc 1 3093 7 is_stmt 1 view .LVU2260 3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6406 .loc 1 3093 7 view .LVU2261 6407 00ac 84F84020 strb r2, [r4, #64] 3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6408 .loc 1 3093 7 view .LVU2262 3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6409 .loc 1 3095 7 view .LVU2263 3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6410 .loc 1 3095 14 is_stmt 0 view .LVU2264 6411 00b0 0125 movs r5, #1 6412 00b2 2DE0 b .L411 6413 .LVL438: 6414 .L425: 2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6415 .loc 1 2984 7 is_stmt 1 view .LVU2265 2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6416 .loc 1 2984 23 is_stmt 0 view .LVU2266 6417 00b4 4FF40073 mov r3, #512 6418 00b8 6364 str r3, [r4, #68] 2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6419 .loc 1 2985 7 is_stmt 1 view .LVU2267 2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6420 .loc 1 2985 15 is_stmt 0 view .LVU2268 6421 00ba 0125 movs r5, #1 6422 00bc 28E0 b .L411 6423 .L413: 3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6424 .loc 1 3013 7 is_stmt 1 view .LVU2269 3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6425 .loc 1 3013 28 is_stmt 0 view .LVU2270 6426 00be 638D ldrh r3, [r4, #42] 3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6427 .loc 1 3013 22 view .LVU2271 6428 00c0 2385 strh r3, [r4, #40] @ movhi 6429 00c2 CEE7 b .L414 6430 .L426: 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6431 .loc 1 3020 7 is_stmt 1 view .LVU2272 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6432 .loc 1 3020 30 is_stmt 0 view .LVU2273 6433 00c4 D2B2 uxtb r2, r2 6434 .LVL439: 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6435 .loc 1 3020 28 view .LVU2274 6436 00c6 8262 str r2, [r0, #40] 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6437 .loc 1 3023 7 is_stmt 1 view .LVU2275 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6438 .loc 1 3023 24 is_stmt 0 view .LVU2276 6439 00c8 4FF0FF33 mov r3, #-1 6440 00cc 2365 str r3, [r4, #80] 6441 00ce CEE7 b .L416 ARM GAS /tmp/ccN54YTb.s page 283 6442 .L417: 3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6443 .loc 1 3054 7 is_stmt 1 view .LVU2277 3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6444 .loc 1 3054 23 is_stmt 0 view .LVU2278 6445 00d0 2023 movs r3, #32 6446 00d2 84F84130 strb r3, [r4, #65] 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6447 .loc 1 3055 7 is_stmt 1 view .LVU2279 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6448 .loc 1 3055 23 is_stmt 0 view .LVU2280 6449 00d6 0022 movs r2, #0 6450 00d8 84F84220 strb r2, [r4, #66] 3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6451 .loc 1 3058 7 is_stmt 1 view .LVU2281 3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6452 .loc 1 3058 11 is_stmt 0 view .LVU2282 6453 00dc 636C ldr r3, [r4, #68] 3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6454 .loc 1 3058 23 view .LVU2283 6455 00de 43F08003 orr r3, r3, #128 6456 00e2 6364 str r3, [r4, #68] 3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6457 .loc 1 3061 7 is_stmt 1 view .LVU2284 3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6458 .loc 1 3061 7 view .LVU2285 6459 00e4 84F84020 strb r2, [r4, #64] 3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6460 .loc 1 3061 7 view .LVU2286 3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6461 .loc 1 3063 7 view .LVU2287 3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6462 .loc 1 3063 14 is_stmt 0 view .LVU2288 6463 00e8 0125 movs r5, #1 6464 00ea 11E0 b .L411 6465 .LVL440: 6466 .L427: 3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6467 .loc 1 3069 7 is_stmt 1 view .LVU2289 6468 00ec 104B ldr r3, .L428+16 6469 00ee 0093 str r3, [sp] 6470 00f0 4FF08073 mov r3, #16777216 6471 00f4 FAB2 uxtb r2, r7 6472 00f6 3146 mov r1, r6 6473 00f8 2046 mov r0, r4 6474 .LVL441: 3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6475 .loc 1 3069 7 is_stmt 0 view .LVU2290 6476 00fa FFF7FEFF bl I2C_TransferConfig 6477 .LVL442: 3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6478 .loc 1 3072 7 is_stmt 1 view .LVU2291 3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6479 .loc 1 3072 7 view .LVU2292 6480 00fe 0023 movs r3, #0 6481 0100 84F84030 strb r3, [r4, #64] 3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 284 6482 .loc 1 3072 7 view .LVU2293 3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6483 .loc 1 3081 7 view .LVU2294 6484 0104 0121 movs r1, #1 6485 0106 2046 mov r0, r4 6486 0108 FFF7FEFF bl I2C_Enable_IRQ 6487 .LVL443: 3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6488 .loc 1 3098 5 view .LVU2295 3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6489 .loc 1 3098 12 is_stmt 0 view .LVU2296 6490 010c 00E0 b .L411 6491 .LVL444: 6492 .L420: 3102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6493 .loc 1 3102 12 view .LVU2297 6494 010e 0225 movs r5, #2 6495 .LVL445: 6496 .L411: 3104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6497 .loc 1 3104 1 view .LVU2298 6498 0110 2846 mov r0, r5 6499 0112 03B0 add sp, sp, #12 6500 .cfi_remember_state 6501 .cfi_def_cfa_offset 20 6502 @ sp needed 6503 0114 F0BD pop {r4, r5, r6, r7, pc} 6504 .LVL446: 6505 .L421: 6506 .cfi_restore_state 2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6507 .loc 1 2990 14 view .LVU2299 6508 0116 0225 movs r5, #2 6509 0118 FAE7 b .L411 6510 .L422: 2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6511 .loc 1 2994 5 discriminator 1 view .LVU2300 6512 011a 0225 movs r5, #2 6513 011c F8E7 b .L411 6514 .L429: 6515 011e 00BF .align 2 6516 .L428: 6517 0120 0000FFFF .word -65536 6518 0124 00000000 .word I2C_Mem_ISR_DMA 6519 0128 00000000 .word I2C_DMAMasterTransmitCplt 6520 012c 00000000 .word I2C_DMAError 6521 0130 00200080 .word -2147475456 6522 .cfi_endproc 6523 .LFE355: 6525 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6526 .align 1 6527 .global HAL_I2C_Mem_Read_DMA 6528 .syntax unified 6529 .thumb 6530 .thumb_func 6532 HAL_I2C_Mem_Read_DMA: 6533 .LVL447: ARM GAS /tmp/ccN54YTb.s page 285 6534 .LFB356: 3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6535 .loc 1 3120 1 is_stmt 1 view -0 6536 .cfi_startproc 6537 @ args = 8, pretend = 0, frame = 0 6538 @ frame_needed = 0, uses_anonymous_args = 0 3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6539 .loc 1 3120 1 is_stmt 0 view .LVU2302 6540 0000 F0B5 push {r4, r5, r6, r7, lr} 6541 .cfi_def_cfa_offset 20 6542 .cfi_offset 4, -20 6543 .cfi_offset 5, -16 6544 .cfi_offset 6, -12 6545 .cfi_offset 7, -8 6546 .cfi_offset 14, -4 6547 0002 83B0 sub sp, sp, #12 6548 .cfi_def_cfa_offset 32 6549 0004 0446 mov r4, r0 6550 0006 1F46 mov r7, r3 6551 0008 089D ldr r5, [sp, #32] 6552 000a BDF82430 ldrh r3, [sp, #36] 6553 .LVL448: 3121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6554 .loc 1 3121 3 is_stmt 1 view .LVU2303 3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6555 .loc 1 3124 3 view .LVU2304 3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6556 .loc 1 3126 3 view .LVU2305 3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6557 .loc 1 3126 11 is_stmt 0 view .LVU2306 6558 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6559 .LVL449: 3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6560 .loc 1 3126 6 view .LVU2307 6561 0012 2028 cmp r0, #32 6562 0014 7BD1 bne .L440 6563 0016 0E46 mov r6, r1 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6564 .loc 1 3128 5 is_stmt 1 view .LVU2308 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6565 .loc 1 3128 8 is_stmt 0 view .LVU2309 6566 0018 002B cmp r3, #0 6567 001a 18BF it ne 6568 001c 002D cmpne r5, #0 6569 001e 4AD0 beq .L445 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6570 .loc 1 3134 5 is_stmt 1 view .LVU2310 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6571 .loc 1 3134 9 is_stmt 0 view .LVU2311 6572 0020 2168 ldr r1, [r4] 6573 .LVL450: 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6574 .loc 1 3134 9 view .LVU2312 6575 0022 8869 ldr r0, [r1, #24] 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6576 .loc 1 3134 8 view .LVU2313 6577 0024 10F4004F tst r0, #32768 ARM GAS /tmp/ccN54YTb.s page 286 6578 0028 75D1 bne .L441 3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6579 .loc 1 3140 5 is_stmt 1 view .LVU2314 3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6580 .loc 1 3140 5 view .LVU2315 6581 002a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 6582 002e 0128 cmp r0, #1 6583 0030 73D0 beq .L442 3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6584 .loc 1 3140 5 discriminator 2 view .LVU2316 6585 0032 0120 movs r0, #1 6586 0034 84F84000 strb r0, [r4, #64] 3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6587 .loc 1 3140 5 view .LVU2317 3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6588 .loc 1 3142 5 view .LVU2318 3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6589 .loc 1 3142 23 is_stmt 0 view .LVU2319 6590 0038 2220 movs r0, #34 6591 003a 84F84100 strb r0, [r4, #65] 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6592 .loc 1 3143 5 is_stmt 1 view .LVU2320 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6593 .loc 1 3143 23 is_stmt 0 view .LVU2321 6594 003e 4020 movs r0, #64 6595 0040 84F84200 strb r0, [r4, #66] 3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6596 .loc 1 3144 5 is_stmt 1 view .LVU2322 3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6597 .loc 1 3144 23 is_stmt 0 view .LVU2323 6598 0044 0020 movs r0, #0 6599 0046 6064 str r0, [r4, #68] 3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6600 .loc 1 3147 5 is_stmt 1 view .LVU2324 3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6601 .loc 1 3147 23 is_stmt 0 view .LVU2325 6602 0048 6562 str r5, [r4, #36] 3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6603 .loc 1 3148 5 is_stmt 1 view .LVU2326 3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6604 .loc 1 3148 23 is_stmt 0 view .LVU2327 6605 004a 6385 strh r3, [r4, #42] @ movhi 3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6606 .loc 1 3149 5 is_stmt 1 view .LVU2328 3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6607 .loc 1 3149 23 is_stmt 0 view .LVU2329 6608 004c 344B ldr r3, .L448 6609 004e E362 str r3, [r4, #44] 3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6610 .loc 1 3150 5 is_stmt 1 view .LVU2330 3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6611 .loc 1 3150 23 is_stmt 0 view .LVU2331 6612 0050 344B ldr r3, .L448+4 6613 0052 6363 str r3, [r4, #52] 3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6614 .loc 1 3151 5 is_stmt 1 view .LVU2332 3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 287 6615 .loc 1 3151 23 is_stmt 0 view .LVU2333 6616 0054 E664 str r6, [r4, #76] 3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6617 .loc 1 3153 5 is_stmt 1 view .LVU2334 3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6618 .loc 1 3153 13 is_stmt 0 view .LVU2335 6619 0056 638D ldrh r3, [r4, #42] 6620 0058 9BB2 uxth r3, r3 3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6621 .loc 1 3153 8 view .LVU2336 6622 005a FF2B cmp r3, #255 6623 005c 30D9 bls .L433 3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6624 .loc 1 3155 7 is_stmt 1 view .LVU2337 3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6625 .loc 1 3155 22 is_stmt 0 view .LVU2338 6626 005e FF23 movs r3, #255 6627 0060 2385 strh r3, [r4, #40] @ movhi 6628 .L434: 3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6629 .loc 1 3163 5 is_stmt 1 view .LVU2339 3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6630 .loc 1 3163 8 is_stmt 0 view .LVU2340 6631 0062 012F cmp r7, #1 6632 0064 2FD0 beq .L446 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6633 .loc 1 3175 7 is_stmt 1 view .LVU2341 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6634 .loc 1 3175 30 is_stmt 0 view .LVU2342 6635 0066 130A lsrs r3, r2, #8 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6636 .loc 1 3175 28 view .LVU2343 6637 0068 8B62 str r3, [r1, #40] 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6638 .loc 1 3178 7 is_stmt 1 view .LVU2344 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6639 .loc 1 3178 26 is_stmt 0 view .LVU2345 6640 006a D2B2 uxtb r2, r2 6641 .LVL451: 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6642 .loc 1 3178 24 view .LVU2346 6643 006c 2265 str r2, [r4, #80] 6644 .L436: 3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6645 .loc 1 3181 5 is_stmt 1 view .LVU2347 3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6646 .loc 1 3181 13 is_stmt 0 view .LVU2348 6647 006e E36B ldr r3, [r4, #60] 3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6648 .loc 1 3181 8 view .LVU2349 6649 0070 002B cmp r3, #0 6650 0072 2ED0 beq .L437 3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6651 .loc 1 3184 7 is_stmt 1 view .LVU2350 3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6652 .loc 1 3184 38 is_stmt 0 view .LVU2351 6653 0074 2C4A ldr r2, .L448+8 ARM GAS /tmp/ccN54YTb.s page 288 6654 0076 DA63 str r2, [r3, #60] 3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6655 .loc 1 3187 7 is_stmt 1 view .LVU2352 3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6656 .loc 1 3187 11 is_stmt 0 view .LVU2353 6657 0078 E36B ldr r3, [r4, #60] 3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6658 .loc 1 3187 39 view .LVU2354 6659 007a 2C4A ldr r2, .L448+12 6660 007c DA64 str r2, [r3, #76] 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6661 .loc 1 3190 7 is_stmt 1 view .LVU2355 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6662 .loc 1 3190 11 is_stmt 0 view .LVU2356 6663 007e E26B ldr r2, [r4, #60] 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6664 .loc 1 3190 42 view .LVU2357 6665 0080 0023 movs r3, #0 6666 0082 1364 str r3, [r2, #64] 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6667 .loc 1 3191 7 is_stmt 1 view .LVU2358 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6668 .loc 1 3191 11 is_stmt 0 view .LVU2359 6669 0084 E26B ldr r2, [r4, #60] 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6670 .loc 1 3191 39 view .LVU2360 6671 0086 1365 str r3, [r2, #80] 3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6672 .loc 1 3194 7 is_stmt 1 view .LVU2361 3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6673 .loc 1 3194 69 is_stmt 0 view .LVU2362 6674 0088 2168 ldr r1, [r4] 3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6675 .loc 1 3194 23 view .LVU2363 6676 008a 238D ldrh r3, [r4, #40] 6677 008c 2A46 mov r2, r5 6678 008e 2431 adds r1, r1, #36 6679 0090 E06B ldr r0, [r4, #60] 6680 0092 FFF7FEFF bl HAL_DMA_Start_IT 6681 .LVL452: 3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6682 .loc 1 3212 5 is_stmt 1 view .LVU2364 3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6683 .loc 1 3212 8 is_stmt 0 view .LVU2365 6684 0096 0546 mov r5, r0 6685 0098 48B3 cbz r0, .L447 3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6686 .loc 1 3232 7 is_stmt 1 view .LVU2366 3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6687 .loc 1 3232 23 is_stmt 0 view .LVU2367 6688 009a 2023 movs r3, #32 6689 009c 84F84130 strb r3, [r4, #65] 3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6690 .loc 1 3233 7 is_stmt 1 view .LVU2368 3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6691 .loc 1 3233 23 is_stmt 0 view .LVU2369 6692 00a0 0022 movs r2, #0 ARM GAS /tmp/ccN54YTb.s page 289 6693 00a2 84F84220 strb r2, [r4, #66] 3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6694 .loc 1 3236 7 is_stmt 1 view .LVU2370 3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6695 .loc 1 3236 11 is_stmt 0 view .LVU2371 6696 00a6 636C ldr r3, [r4, #68] 3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6697 .loc 1 3236 23 view .LVU2372 6698 00a8 43F01003 orr r3, r3, #16 6699 00ac 6364 str r3, [r4, #68] 3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6700 .loc 1 3239 7 is_stmt 1 view .LVU2373 3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6701 .loc 1 3239 7 view .LVU2374 6702 00ae 84F84020 strb r2, [r4, #64] 3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6703 .loc 1 3239 7 view .LVU2375 3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6704 .loc 1 3241 7 view .LVU2376 3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6705 .loc 1 3241 14 is_stmt 0 view .LVU2377 6706 00b2 0125 movs r5, #1 6707 00b4 2CE0 b .L431 6708 .LVL453: 6709 .L445: 3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6710 .loc 1 3130 7 is_stmt 1 view .LVU2378 3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6711 .loc 1 3130 23 is_stmt 0 view .LVU2379 6712 00b6 4FF40073 mov r3, #512 6713 00ba 6364 str r3, [r4, #68] 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6714 .loc 1 3131 7 is_stmt 1 view .LVU2380 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6715 .loc 1 3131 15 is_stmt 0 view .LVU2381 6716 00bc 0125 movs r5, #1 6717 00be 27E0 b .L431 6718 .LVL454: 6719 .L433: 3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6720 .loc 1 3159 7 is_stmt 1 view .LVU2382 3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6721 .loc 1 3159 28 is_stmt 0 view .LVU2383 6722 00c0 638D ldrh r3, [r4, #42] 3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6723 .loc 1 3159 22 view .LVU2384 6724 00c2 2385 strh r3, [r4, #40] @ movhi 6725 00c4 CDE7 b .L434 6726 .L446: 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6727 .loc 1 3166 7 is_stmt 1 view .LVU2385 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6728 .loc 1 3166 30 is_stmt 0 view .LVU2386 6729 00c6 D2B2 uxtb r2, r2 6730 .LVL455: 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6731 .loc 1 3166 28 view .LVU2387 ARM GAS /tmp/ccN54YTb.s page 290 6732 00c8 8A62 str r2, [r1, #40] 3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6733 .loc 1 3169 7 is_stmt 1 view .LVU2388 3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6734 .loc 1 3169 24 is_stmt 0 view .LVU2389 6735 00ca 4FF0FF33 mov r3, #-1 6736 00ce 2365 str r3, [r4, #80] 6737 00d0 CDE7 b .L436 6738 .L437: 3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6739 .loc 1 3200 7 is_stmt 1 view .LVU2390 3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6740 .loc 1 3200 23 is_stmt 0 view .LVU2391 6741 00d2 2023 movs r3, #32 6742 00d4 84F84130 strb r3, [r4, #65] 3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6743 .loc 1 3201 7 is_stmt 1 view .LVU2392 3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6744 .loc 1 3201 23 is_stmt 0 view .LVU2393 6745 00d8 0022 movs r2, #0 6746 00da 84F84220 strb r2, [r4, #66] 3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6747 .loc 1 3204 7 is_stmt 1 view .LVU2394 3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6748 .loc 1 3204 11 is_stmt 0 view .LVU2395 6749 00de 636C ldr r3, [r4, #68] 3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6750 .loc 1 3204 23 view .LVU2396 6751 00e0 43F08003 orr r3, r3, #128 6752 00e4 6364 str r3, [r4, #68] 3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6753 .loc 1 3207 7 is_stmt 1 view .LVU2397 3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6754 .loc 1 3207 7 view .LVU2398 6755 00e6 84F84020 strb r2, [r4, #64] 3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6756 .loc 1 3207 7 view .LVU2399 3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6757 .loc 1 3209 7 view .LVU2400 3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6758 .loc 1 3209 14 is_stmt 0 view .LVU2401 6759 00ea 0125 movs r5, #1 6760 00ec 10E0 b .L431 6761 .LVL456: 6762 .L447: 3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6763 .loc 1 3215 7 is_stmt 1 view .LVU2402 6764 00ee 104B ldr r3, .L448+16 6765 00f0 0093 str r3, [sp] 6766 00f2 0023 movs r3, #0 6767 00f4 FAB2 uxtb r2, r7 6768 00f6 3146 mov r1, r6 6769 00f8 2046 mov r0, r4 6770 .LVL457: 3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6771 .loc 1 3215 7 is_stmt 0 view .LVU2403 6772 00fa FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/ccN54YTb.s page 291 6773 .LVL458: 3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6774 .loc 1 3218 7 is_stmt 1 view .LVU2404 3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6775 .loc 1 3218 7 view .LVU2405 6776 00fe 0023 movs r3, #0 6777 0100 84F84030 strb r3, [r4, #64] 3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6778 .loc 1 3218 7 view .LVU2406 3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6779 .loc 1 3227 7 view .LVU2407 6780 0104 0121 movs r1, #1 6781 0106 2046 mov r0, r4 6782 0108 FFF7FEFF bl I2C_Enable_IRQ 6783 .LVL459: 3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6784 .loc 1 3244 5 view .LVU2408 3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6785 .loc 1 3244 12 is_stmt 0 view .LVU2409 6786 010c 00E0 b .L431 6787 .LVL460: 6788 .L440: 3248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6789 .loc 1 3248 12 view .LVU2410 6790 010e 0225 movs r5, #2 6791 .LVL461: 6792 .L431: 3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6793 .loc 1 3250 1 view .LVU2411 6794 0110 2846 mov r0, r5 6795 0112 03B0 add sp, sp, #12 6796 .cfi_remember_state 6797 .cfi_def_cfa_offset 20 6798 @ sp needed 6799 0114 F0BD pop {r4, r5, r6, r7, pc} 6800 .LVL462: 6801 .L441: 6802 .cfi_restore_state 3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6803 .loc 1 3136 14 view .LVU2412 6804 0116 0225 movs r5, #2 6805 0118 FAE7 b .L431 6806 .L442: 3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6807 .loc 1 3140 5 discriminator 1 view .LVU2413 6808 011a 0225 movs r5, #2 6809 011c F8E7 b .L431 6810 .L449: 6811 011e 00BF .align 2 6812 .L448: 6813 0120 0000FFFF .word -65536 6814 0124 00000000 .word I2C_Mem_ISR_DMA 6815 0128 00000000 .word I2C_DMAMasterReceiveCplt 6816 012c 00000000 .word I2C_DMAError 6817 0130 00200080 .word -2147475456 6818 .cfi_endproc 6819 .LFE356: ARM GAS /tmp/ccN54YTb.s page 292 6821 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6822 .align 1 6823 .global HAL_I2C_IsDeviceReady 6824 .syntax unified 6825 .thumb 6826 .thumb_func 6828 HAL_I2C_IsDeviceReady: 6829 .LVL463: 6830 .LFB357: 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 6831 .loc 1 3265 1 is_stmt 1 view -0 6832 .cfi_startproc 6833 @ args = 0, pretend = 0, frame = 8 6834 @ frame_needed = 0, uses_anonymous_args = 0 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 6835 .loc 1 3265 1 is_stmt 0 view .LVU2415 6836 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 6837 .cfi_def_cfa_offset 32 6838 .cfi_offset 4, -32 6839 .cfi_offset 5, -28 6840 .cfi_offset 6, -24 6841 .cfi_offset 7, -20 6842 .cfi_offset 8, -16 6843 .cfi_offset 9, -12 6844 .cfi_offset 10, -8 6845 .cfi_offset 14, -4 6846 0004 84B0 sub sp, sp, #16 6847 .cfi_def_cfa_offset 48 6848 0006 1D46 mov r5, r3 3266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6849 .loc 1 3266 3 is_stmt 1 view .LVU2416 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6850 .loc 1 3268 3 view .LVU2417 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6851 .loc 1 3268 17 is_stmt 0 view .LVU2418 6852 0008 0023 movs r3, #0 6853 .LVL464: 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6854 .loc 1 3268 17 view .LVU2419 6855 000a 0393 str r3, [sp, #12] 3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6856 .loc 1 3270 3 is_stmt 1 view .LVU2420 6857 .LVL465: 3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2; 6858 .loc 1 3272 3 view .LVU2421 3273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6859 .loc 1 3273 3 view .LVU2422 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6860 .loc 1 3275 3 view .LVU2423 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6861 .loc 1 3275 11 is_stmt 0 view .LVU2424 6862 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6863 .loc 1 3275 6 view .LVU2425 6864 0010 202B cmp r3, #32 6865 0012 40F09F80 bne .L463 6866 0016 0646 mov r6, r0 ARM GAS /tmp/ccN54YTb.s page 293 6867 0018 8946 mov r9, r1 6868 001a 9046 mov r8, r2 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6869 .loc 1 3277 5 is_stmt 1 view .LVU2426 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6870 .loc 1 3277 9 is_stmt 0 view .LVU2427 6871 001c 0368 ldr r3, [r0] 6872 001e 9B69 ldr r3, [r3, #24] 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6873 .loc 1 3277 8 view .LVU2428 6874 0020 13F4004F tst r3, #32768 6875 0024 40F09880 bne .L464 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6876 .loc 1 3283 5 is_stmt 1 view .LVU2429 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6877 .loc 1 3283 5 view .LVU2430 6878 0028 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6879 002c 012B cmp r3, #1 6880 002e 00F09580 beq .L465 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6881 .loc 1 3283 5 discriminator 2 view .LVU2431 6882 0032 0123 movs r3, #1 6883 0034 80F84030 strb r3, [r0, #64] 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6884 .loc 1 3283 5 view .LVU2432 3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6885 .loc 1 3285 5 view .LVU2433 3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6886 .loc 1 3285 17 is_stmt 0 view .LVU2434 6887 0038 2423 movs r3, #36 6888 003a 80F84130 strb r3, [r0, #65] 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6889 .loc 1 3286 5 is_stmt 1 view .LVU2435 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6890 .loc 1 3286 21 is_stmt 0 view .LVU2436 6891 003e 0023 movs r3, #0 6892 0040 4364 str r3, [r0, #68] 3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6893 .loc 1 3270 21 view .LVU2437 6894 0042 9A46 mov r10, r3 6895 .LVL466: 6896 .L462: 3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6897 .loc 1 3288 5 is_stmt 1 view .LVU2438 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6898 .loc 1 3291 7 view .LVU2439 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6899 .loc 1 3291 29 is_stmt 0 view .LVU2440 6900 0044 F368 ldr r3, [r6, #12] 6901 0046 012B cmp r3, #1 6902 0048 10D0 beq .L470 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6903 .loc 1 3291 29 discriminator 2 view .LVU2441 6904 004a C9F30902 ubfx r2, r9, #0, #10 6905 004e 444B ldr r3, .L474 6906 0050 1343 orrs r3, r3, r2 6907 .L453: ARM GAS /tmp/ccN54YTb.s page 294 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6908 .loc 1 3291 11 discriminator 4 view .LVU2442 6909 0052 3268 ldr r2, [r6] 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6910 .loc 1 3291 27 discriminator 4 view .LVU2443 6911 0054 5360 str r3, [r2, #4] 3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6912 .loc 1 3295 7 is_stmt 1 view .LVU2444 3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6913 .loc 1 3295 19 is_stmt 0 view .LVU2445 6914 0056 FFF7FEFF bl HAL_GetTick 6915 .LVL467: 6916 005a 0746 mov r7, r0 6917 .LVL468: 3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6918 .loc 1 3297 7 is_stmt 1 view .LVU2446 3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6919 .loc 1 3297 14 is_stmt 0 view .LVU2447 6920 005c 3268 ldr r2, [r6] 6921 005e 9369 ldr r3, [r2, #24] 6922 0060 C3F3401C ubfx ip, r3, #5, #1 6923 .LVL469: 3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6924 .loc 1 3298 7 is_stmt 1 view .LVU2448 3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6925 .loc 1 3298 14 is_stmt 0 view .LVU2449 6926 0064 9369 ldr r3, [r2, #24] 6927 0066 C3F30013 ubfx r3, r3, #4, #1 6928 .LVL470: 3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6929 .loc 1 3300 7 is_stmt 1 view .LVU2450 3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6930 .loc 1 3300 13 is_stmt 0 view .LVU2451 6931 006a 0BE0 b .L454 6932 .LVL471: 6933 .L470: 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6934 .loc 1 3291 29 discriminator 1 view .LVU2452 6935 006c C9F30902 ubfx r2, r9, #0, #10 6936 0070 3C4B ldr r3, .L474+4 6937 0072 1343 orrs r3, r3, r2 6938 0074 EDE7 b .L453 6939 .LVL472: 6940 .L455: 3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6941 .loc 1 3319 9 is_stmt 1 view .LVU2453 3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6942 .loc 1 3319 16 is_stmt 0 view .LVU2454 6943 0076 3368 ldr r3, [r6] 6944 0078 9C69 ldr r4, [r3, #24] 6945 007a C4F3401C ubfx ip, r4, #5, #1 6946 .LVL473: 3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6947 .loc 1 3320 9 is_stmt 1 view .LVU2455 3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6948 .loc 1 3320 16 is_stmt 0 view .LVU2456 6949 007e 9B69 ldr r3, [r3, #24] ARM GAS /tmp/ccN54YTb.s page 295 6950 0080 C3F30013 ubfx r3, r3, #4, #1 6951 .LVL474: 6952 .L454: 3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6953 .loc 1 3300 30 is_stmt 1 view .LVU2457 6954 0084 5CEA030C orrs ip, ip, r3 6955 .LVL475: 3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6956 .loc 1 3300 30 is_stmt 0 view .LVU2458 6957 0088 17D1 bne .L471 3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6958 .loc 1 3302 9 is_stmt 1 view .LVU2459 3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6959 .loc 1 3302 12 is_stmt 0 view .LVU2460 6960 008a B5F1FF3F cmp r5, #-1 6961 008e F2D0 beq .L455 3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6962 .loc 1 3304 11 is_stmt 1 view .LVU2461 3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6963 .loc 1 3304 17 is_stmt 0 view .LVU2462 6964 0090 FFF7FEFF bl HAL_GetTick 6965 .LVL476: 3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6966 .loc 1 3304 31 discriminator 1 view .LVU2463 6967 0094 C01B subs r0, r0, r7 3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6968 .loc 1 3304 14 discriminator 1 view .LVU2464 6969 0096 A842 cmp r0, r5 6970 0098 01D8 bhi .L456 3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6971 .loc 1 3304 55 discriminator 1 view .LVU2465 6972 009a 002D cmp r5, #0 6973 009c EBD1 bne .L455 6974 .L456: 3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6975 .loc 1 3307 13 is_stmt 1 view .LVU2466 3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6976 .loc 1 3307 25 is_stmt 0 view .LVU2467 6977 009e 2023 movs r3, #32 6978 00a0 86F84130 strb r3, [r6, #65] 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6979 .loc 1 3310 13 is_stmt 1 view .LVU2468 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6980 .loc 1 3310 17 is_stmt 0 view .LVU2469 6981 00a4 736C ldr r3, [r6, #68] 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6982 .loc 1 3310 29 view .LVU2470 6983 00a6 43F02003 orr r3, r3, #32 6984 00aa 7364 str r3, [r6, #68] 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6985 .loc 1 3313 13 is_stmt 1 view .LVU2471 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6986 .loc 1 3313 13 view .LVU2472 6987 00ac 0023 movs r3, #0 6988 00ae 86F84030 strb r3, [r6, #64] 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6989 .loc 1 3313 13 view .LVU2473 ARM GAS /tmp/ccN54YTb.s page 296 3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6990 .loc 1 3315 13 view .LVU2474 3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6991 .loc 1 3315 20 is_stmt 0 view .LVU2475 6992 00b2 0120 movs r0, #1 6993 .LVL477: 6994 .L451: 3404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6995 .loc 1 3404 1 view .LVU2476 6996 00b4 04B0 add sp, sp, #16 6997 .cfi_remember_state 6998 .cfi_def_cfa_offset 32 6999 @ sp needed 7000 00b6 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 7001 .LVL478: 7002 .L471: 7003 .cfi_restore_state 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7004 .loc 1 3324 7 is_stmt 1 view .LVU2477 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7005 .loc 1 3324 11 is_stmt 0 view .LVU2478 7006 00ba 3368 ldr r3, [r6] 7007 .LVL479: 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7008 .loc 1 3324 11 view .LVU2479 7009 00bc 9A69 ldr r2, [r3, #24] 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7010 .loc 1 3324 10 view .LVU2480 7011 00be 12F0100F tst r2, #16 7012 00c2 33D1 bne .L458 3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7013 .loc 1 3327 9 is_stmt 1 view .LVU2481 3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7014 .loc 1 3327 13 is_stmt 0 view .LVU2482 7015 00c4 0097 str r7, [sp] 7016 00c6 2B46 mov r3, r5 7017 00c8 0022 movs r2, #0 7018 00ca 2021 movs r1, #32 7019 00cc 3046 mov r0, r6 7020 00ce FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7021 .LVL480: 3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7022 .loc 1 3327 12 discriminator 1 view .LVU2483 7023 00d2 10B3 cbz r0, .L459 3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7024 .loc 1 3330 11 is_stmt 1 view .LVU2484 3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7025 .loc 1 3330 19 is_stmt 0 view .LVU2485 7026 00d4 736C ldr r3, [r6, #68] 3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7027 .loc 1 3330 14 view .LVU2486 7028 00d6 042B cmp r3, #4 7029 00d8 19D0 beq .L472 3340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7030 .loc 1 3340 20 view .LVU2487 7031 00da 4FF0010A mov r10, #1 7032 .LVL481: ARM GAS /tmp/ccN54YTb.s page 297 7033 .L460: 3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7034 .loc 1 3380 7 is_stmt 1 view .LVU2488 3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7035 .loc 1 3380 17 is_stmt 0 view .LVU2489 7036 00de 039B ldr r3, [sp, #12] 7037 00e0 0133 adds r3, r3, #1 7038 00e2 0393 str r3, [sp, #12] 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7039 .loc 1 3382 7 is_stmt 1 view .LVU2490 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7040 .loc 1 3382 23 is_stmt 0 view .LVU2491 7041 00e4 039B ldr r3, [sp, #12] 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7042 .loc 1 3382 10 view .LVU2492 7043 00e6 4345 cmp r3, r8 7044 00e8 02D2 bcs .L461 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7045 .loc 1 3382 33 discriminator 1 view .LVU2493 7046 00ea BAF1000F cmp r10, #0 7047 00ee 2ED1 bne .L473 7048 .LVL482: 7049 .L461: 3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7050 .loc 1 3387 25 is_stmt 1 view .LVU2494 7051 00f0 039B ldr r3, [sp, #12] 7052 00f2 4345 cmp r3, r8 7053 00f4 A6D3 bcc .L462 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7054 .loc 1 3390 5 view .LVU2495 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7055 .loc 1 3390 17 is_stmt 0 view .LVU2496 7056 00f6 2023 movs r3, #32 7057 00f8 86F84130 strb r3, [r6, #65] 3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7058 .loc 1 3393 5 is_stmt 1 view .LVU2497 3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7059 .loc 1 3393 9 is_stmt 0 view .LVU2498 7060 00fc 736C ldr r3, [r6, #68] 3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7061 .loc 1 3393 21 view .LVU2499 7062 00fe 43F02003 orr r3, r3, #32 7063 0102 7364 str r3, [r6, #68] 3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7064 .loc 1 3396 5 is_stmt 1 view .LVU2500 3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7065 .loc 1 3396 5 view .LVU2501 7066 0104 0023 movs r3, #0 7067 0106 86F84030 strb r3, [r6, #64] 3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7068 .loc 1 3396 5 view .LVU2502 3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7069 .loc 1 3398 5 view .LVU2503 3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7070 .loc 1 3398 12 is_stmt 0 view .LVU2504 7071 010a 0120 movs r0, #1 7072 010c D2E7 b .L451 ARM GAS /tmp/ccN54YTb.s page 298 7073 .L472: 3333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7074 .loc 1 3333 13 is_stmt 1 view .LVU2505 7075 010e 3368 ldr r3, [r6] 7076 0110 2022 movs r2, #32 7077 0112 DA61 str r2, [r3, #28] 3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7078 .loc 1 3336 13 view .LVU2506 3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7079 .loc 1 3336 29 is_stmt 0 view .LVU2507 7080 0114 0023 movs r3, #0 7081 0116 7364 str r3, [r6, #68] 7082 0118 E1E7 b .L460 7083 .L459: 3348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7084 .loc 1 3348 11 is_stmt 1 view .LVU2508 7085 011a 3268 ldr r2, [r6] 7086 011c 2023 movs r3, #32 7087 011e D361 str r3, [r2, #28] 3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7088 .loc 1 3351 11 view .LVU2509 3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7089 .loc 1 3351 23 is_stmt 0 view .LVU2510 7090 0120 86F84130 strb r3, [r6, #65] 3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7091 .loc 1 3354 11 is_stmt 1 view .LVU2511 3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7092 .loc 1 3354 11 view .LVU2512 7093 0124 0023 movs r3, #0 7094 0126 86F84030 strb r3, [r6, #64] 3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7095 .loc 1 3354 11 view .LVU2513 3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7096 .loc 1 3356 11 view .LVU2514 3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7097 .loc 1 3356 18 is_stmt 0 view .LVU2515 7098 012a C3E7 b .L451 7099 .L458: 3365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7100 .loc 1 3365 9 is_stmt 1 view .LVU2516 7101 012c 1022 movs r2, #16 7102 012e DA61 str r2, [r3, #28] 3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7103 .loc 1 3368 9 view .LVU2517 3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7104 .loc 1 3368 13 is_stmt 0 view .LVU2518 7105 0130 0097 str r7, [sp] 7106 0132 2B46 mov r3, r5 7107 0134 0022 movs r2, #0 7108 0136 2021 movs r1, #32 7109 0138 3046 mov r0, r6 7110 013a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7111 .LVL483: 3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7112 .loc 1 3368 12 discriminator 1 view .LVU2519 7113 013e 18B9 cbnz r0, .L467 3375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 299 7114 .loc 1 3375 11 is_stmt 1 view .LVU2520 7115 0140 3368 ldr r3, [r6] 7116 0142 2022 movs r2, #32 7117 0144 DA61 str r2, [r3, #28] 7118 0146 CAE7 b .L460 7119 .L467: 3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7120 .loc 1 3370 18 is_stmt 0 view .LVU2521 7121 0148 4FF0010A mov r10, #1 7122 .LVL484: 3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7123 .loc 1 3370 18 view .LVU2522 7124 014c C7E7 b .L460 7125 .LVL485: 7126 .L473: 3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7127 .loc 1 3384 16 view .LVU2523 7128 014e 4FF0000A mov r10, #0 7129 .LVL486: 3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7130 .loc 1 3384 16 view .LVU2524 7131 0152 CDE7 b .L461 7132 .LVL487: 7133 .L463: 3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7134 .loc 1 3402 12 view .LVU2525 7135 0154 0220 movs r0, #2 7136 .LVL488: 3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7137 .loc 1 3402 12 view .LVU2526 7138 0156 ADE7 b .L451 7139 .LVL489: 7140 .L464: 3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7141 .loc 1 3279 14 view .LVU2527 7142 0158 0220 movs r0, #2 7143 .LVL490: 3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7144 .loc 1 3279 14 view .LVU2528 7145 015a ABE7 b .L451 7146 .LVL491: 7147 .L465: 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7148 .loc 1 3283 5 discriminator 1 view .LVU2529 7149 015c 0220 movs r0, #2 7150 .LVL492: 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7151 .loc 1 3283 5 discriminator 1 view .LVU2530 7152 015e A9E7 b .L451 7153 .L475: 7154 .align 2 7155 .L474: 7156 0160 00280002 .word 33564672 7157 0164 00200002 .word 33562624 7158 .cfi_endproc 7159 .LFE357: 7161 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits ARM GAS /tmp/ccN54YTb.s page 300 7162 .align 1 7163 .global HAL_I2C_Master_Seq_Transmit_IT 7164 .syntax unified 7165 .thumb 7166 .thumb_func 7168 HAL_I2C_Master_Seq_Transmit_IT: 7169 .LVL493: 7170 .LFB358: 3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7171 .loc 1 3420 1 is_stmt 1 view -0 7172 .cfi_startproc 7173 @ args = 4, pretend = 0, frame = 0 7174 @ frame_needed = 0, uses_anonymous_args = 0 3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7175 .loc 1 3420 1 is_stmt 0 view .LVU2532 7176 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7177 .cfi_def_cfa_offset 24 7178 .cfi_offset 4, -24 7179 .cfi_offset 5, -20 7180 .cfi_offset 6, -16 7181 .cfi_offset 7, -12 7182 .cfi_offset 8, -8 7183 .cfi_offset 14, -4 7184 0004 82B0 sub sp, sp, #8 7185 .cfi_def_cfa_offset 32 7186 0006 0446 mov r4, r0 7187 0008 089E ldr r6, [sp, #32] 3421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7188 .loc 1 3421 3 is_stmt 1 view .LVU2533 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7189 .loc 1 3422 3 view .LVU2534 7190 .LVL494: 3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7191 .loc 1 3423 3 view .LVU2535 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7192 .loc 1 3426 3 view .LVU2536 3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7193 .loc 1 3428 3 view .LVU2537 3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7194 .loc 1 3428 11 is_stmt 0 view .LVU2538 7195 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7196 .LVL495: 3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7197 .loc 1 3428 6 view .LVU2539 7198 000e 2028 cmp r0, #32 7199 0010 73D1 bne .L485 7200 0012 0D46 mov r5, r1 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7201 .loc 1 3431 5 is_stmt 1 view .LVU2540 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7202 .loc 1 3431 5 view .LVU2541 7203 0014 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7204 .LVL496: 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7205 .loc 1 3431 5 is_stmt 0 view .LVU2542 7206 0018 0129 cmp r1, #1 7207 001a 70D0 beq .L486 ARM GAS /tmp/ccN54YTb.s page 301 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7208 .loc 1 3431 5 is_stmt 1 discriminator 2 view .LVU2543 7209 001c 0121 movs r1, #1 7210 001e 84F84010 strb r1, [r4, #64] 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7211 .loc 1 3431 5 view .LVU2544 3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7212 .loc 1 3433 5 view .LVU2545 3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7213 .loc 1 3433 21 is_stmt 0 view .LVU2546 7214 0022 2121 movs r1, #33 7215 0024 84F84110 strb r1, [r4, #65] 3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7216 .loc 1 3434 5 is_stmt 1 view .LVU2547 3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7217 .loc 1 3434 21 is_stmt 0 view .LVU2548 7218 0028 1021 movs r1, #16 7219 002a 84F84210 strb r1, [r4, #66] 3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7220 .loc 1 3435 5 is_stmt 1 view .LVU2549 3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7221 .loc 1 3435 21 is_stmt 0 view .LVU2550 7222 002e 0021 movs r1, #0 7223 0030 6164 str r1, [r4, #68] 3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7224 .loc 1 3438 5 is_stmt 1 view .LVU2551 3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7225 .loc 1 3438 23 is_stmt 0 view .LVU2552 7226 0032 6262 str r2, [r4, #36] 3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7227 .loc 1 3439 5 is_stmt 1 view .LVU2553 3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7228 .loc 1 3439 23 is_stmt 0 view .LVU2554 7229 0034 6385 strh r3, [r4, #42] @ movhi 3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7230 .loc 1 3440 5 is_stmt 1 view .LVU2555 3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7231 .loc 1 3440 23 is_stmt 0 view .LVU2556 7232 0036 E662 str r6, [r4, #44] 3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7233 .loc 1 3441 5 is_stmt 1 view .LVU2557 3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7234 .loc 1 3441 23 is_stmt 0 view .LVU2558 7235 0038 324B ldr r3, .L492 7236 .LVL497: 3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7237 .loc 1 3441 23 view .LVU2559 7238 003a 6363 str r3, [r4, #52] 3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7239 .loc 1 3444 5 is_stmt 1 view .LVU2560 3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7240 .loc 1 3444 13 is_stmt 0 view .LVU2561 7241 003c 638D ldrh r3, [r4, #42] 7242 003e 9BB2 uxth r3, r3 3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7243 .loc 1 3444 8 view .LVU2562 7244 0040 FF2B cmp r3, #255 ARM GAS /tmp/ccN54YTb.s page 302 7245 0042 1BD9 bls .L478 3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7246 .loc 1 3446 7 is_stmt 1 view .LVU2563 3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7247 .loc 1 3446 22 is_stmt 0 view .LVU2564 7248 0044 FF23 movs r3, #255 7249 0046 2385 strh r3, [r4, #40] @ movhi 3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7250 .loc 1 3447 7 is_stmt 1 view .LVU2565 7251 .LVL498: 3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7252 .loc 1 3447 16 is_stmt 0 view .LVU2566 7253 0048 4FF08077 mov r7, #16777216 7254 .LVL499: 7255 .L479: 3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7256 .loc 1 3455 5 is_stmt 1 view .LVU2567 3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7257 .loc 1 3455 14 is_stmt 0 view .LVU2568 7258 004c 238D ldrh r3, [r4, #40] 3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7259 .loc 1 3455 8 view .LVU2569 7260 004e CBB1 cbz r3, .L487 3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7261 .loc 1 3455 31 discriminator 1 view .LVU2570 7262 0050 B6F1007F cmp r6, #33554432 7263 0054 18BF it ne 7264 0056 002E cmpne r6, #0 7265 0058 3FD1 bne .L488 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7266 .loc 1 3460 7 is_stmt 1 view .LVU2571 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7267 .loc 1 3460 11 is_stmt 0 view .LVU2572 7268 005a 2368 ldr r3, [r4] 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7269 .loc 1 3460 30 view .LVU2573 7270 005c 1278 ldrb r2, [r2] @ zero_extendqisi2 7271 .LVL500: 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7272 .loc 1 3460 28 view .LVU2574 7273 005e 9A62 str r2, [r3, #40] 7274 .LVL501: 3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7275 .loc 1 3463 7 is_stmt 1 view .LVU2575 3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7276 .loc 1 3463 11 is_stmt 0 view .LVU2576 7277 0060 636A ldr r3, [r4, #36] 3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7278 .loc 1 3463 21 view .LVU2577 7279 0062 0133 adds r3, r3, #1 7280 0064 6362 str r3, [r4, #36] 3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 7281 .loc 1 3465 7 is_stmt 1 view .LVU2578 3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 7282 .loc 1 3465 24 is_stmt 0 view .LVU2579 7283 0066 B4F82880 ldrh r8, [r4, #40] 7284 .LVL502: ARM GAS /tmp/ccN54YTb.s page 303 3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7285 .loc 1 3466 7 is_stmt 1 view .LVU2580 3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7286 .loc 1 3466 11 is_stmt 0 view .LVU2581 7287 006a 638D ldrh r3, [r4, #42] 7288 006c 9BB2 uxth r3, r3 3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7289 .loc 1 3466 22 view .LVU2582 7290 006e 013B subs r3, r3, #1 7291 0070 9BB2 uxth r3, r3 7292 0072 6385 strh r3, [r4, #42] @ movhi 3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7293 .loc 1 3467 7 is_stmt 1 view .LVU2583 3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7294 .loc 1 3467 21 is_stmt 0 view .LVU2584 7295 0074 08F1FF33 add r3, r8, #-1 7296 0078 2385 strh r3, [r4, #40] @ movhi 7297 007a 05E0 b .L480 7298 .LVL503: 7299 .L478: 3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7300 .loc 1 3451 7 is_stmt 1 view .LVU2585 3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7301 .loc 1 3451 28 is_stmt 0 view .LVU2586 7302 007c 638D ldrh r3, [r4, #42] 3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7303 .loc 1 3451 22 view .LVU2587 7304 007e 2385 strh r3, [r4, #40] @ movhi 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7305 .loc 1 3452 7 is_stmt 1 view .LVU2588 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7306 .loc 1 3452 16 is_stmt 0 view .LVU2589 7307 0080 E76A ldr r7, [r4, #44] 7308 0082 E3E7 b .L479 7309 .LVL504: 7310 .L487: 3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7311 .loc 1 3423 12 view .LVU2590 7312 0084 4FF00008 mov r8, #0 7313 .LVL505: 7314 .L480: 3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7315 .loc 1 3473 5 is_stmt 1 view .LVU2591 3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7316 .loc 1 3473 14 is_stmt 0 view .LVU2592 7317 0088 236B ldr r3, [r4, #48] 3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7318 .loc 1 3473 8 view .LVU2593 7319 008a 112B cmp r3, #17 7320 008c 04D1 bne .L481 3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7321 .loc 1 3473 59 discriminator 1 view .LVU2594 7322 008e B6F52A4F cmp r6, #43520 7323 0092 18BF it ne 7324 0094 AA2E cmpne r6, #170 7325 0096 23D1 bne .L489 7326 .L481: ARM GAS /tmp/ccN54YTb.s page 304 3481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7327 .loc 1 3481 7 is_stmt 1 view .LVU2595 7328 0098 2046 mov r0, r4 7329 009a FFF7FEFF bl I2C_ConvertOtherXferOptions 7330 .LVL506: 3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7331 .loc 1 3484 7 view .LVU2596 3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7332 .loc 1 3484 15 is_stmt 0 view .LVU2597 7333 009e 638D ldrh r3, [r4, #42] 7334 00a0 9BB2 uxth r3, r3 3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7335 .loc 1 3484 10 view .LVU2598 7336 00a2 FF2B cmp r3, #255 7337 00a4 1ED8 bhi .L490 3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7338 .loc 1 3486 9 is_stmt 1 view .LVU2599 3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7339 .loc 1 3486 18 is_stmt 0 view .LVU2600 7340 00a6 E76A ldr r7, [r4, #44] 7341 .LVL507: 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7342 .loc 1 3422 12 view .LVU2601 7343 00a8 174B ldr r3, .L492+4 7344 .L482: 7345 .LVL508: 3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7346 .loc 1 3491 5 is_stmt 1 view .LVU2602 3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7347 .loc 1 3491 8 is_stmt 0 view .LVU2603 7348 00aa B6F1007F cmp r6, #33554432 7349 00ae 18BF it ne 7350 00b0 002E cmpne r6, #0 7351 00b2 19D1 bne .L483 3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7352 .loc 1 3493 7 is_stmt 1 view .LVU2604 7353 00b4 0093 str r3, [sp] 7354 00b6 3B46 mov r3, r7 7355 .LVL509: 3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7356 .loc 1 3493 7 is_stmt 0 view .LVU2605 7357 00b8 5FFA88F2 uxtb r2, r8 7358 00bc 2946 mov r1, r5 7359 00be 2046 mov r0, r4 7360 00c0 FFF7FEFF bl I2C_TransferConfig 7361 .LVL510: 7362 .L484: 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7363 .loc 1 3501 5 is_stmt 1 view .LVU2606 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7364 .loc 1 3501 5 view .LVU2607 7365 00c4 0025 movs r5, #0 7366 .LVL511: 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7367 .loc 1 3501 5 is_stmt 0 view .LVU2608 7368 00c6 84F84050 strb r5, [r4, #64] 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 305 7369 .loc 1 3501 5 is_stmt 1 view .LVU2609 3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7370 .loc 1 3510 5 view .LVU2610 7371 00ca 0121 movs r1, #1 7372 00cc 2046 mov r0, r4 7373 00ce FFF7FEFF bl I2C_Enable_IRQ 7374 .LVL512: 3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7375 .loc 1 3512 5 view .LVU2611 3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7376 .loc 1 3512 12 is_stmt 0 view .LVU2612 7377 00d2 2846 mov r0, r5 7378 .LVL513: 7379 .L477: 3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7380 .loc 1 3518 1 view .LVU2613 7381 00d4 02B0 add sp, sp, #8 7382 .cfi_remember_state 7383 .cfi_def_cfa_offset 24 7384 @ sp needed 7385 00d6 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7386 .LVL514: 7387 .L488: 7388 .cfi_restore_state 3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7389 .loc 1 3423 12 view .LVU2614 7390 00da 4FF00008 mov r8, #0 7391 00de D3E7 b .L480 7392 .LVL515: 7393 .L489: 3476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7394 .loc 1 3476 19 view .LVU2615 7395 00e0 0023 movs r3, #0 7396 00e2 E2E7 b .L482 7397 .L490: 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7398 .loc 1 3422 12 view .LVU2616 7399 00e4 084B ldr r3, .L492+4 7400 00e6 E0E7 b .L482 7401 .LVL516: 7402 .L483: 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7403 .loc 1 3497 7 is_stmt 1 view .LVU2617 7404 00e8 0093 str r3, [sp] 7405 00ea 3B46 mov r3, r7 7406 .LVL517: 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7407 .loc 1 3497 7 is_stmt 0 view .LVU2618 7408 00ec 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7409 00f0 2946 mov r1, r5 7410 00f2 2046 mov r0, r4 7411 00f4 FFF7FEFF bl I2C_TransferConfig 7412 .LVL518: 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7413 .loc 1 3497 7 view .LVU2619 7414 00f8 E4E7 b .L484 7415 .LVL519: ARM GAS /tmp/ccN54YTb.s page 306 7416 .L485: 3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7417 .loc 1 3516 12 view .LVU2620 7418 00fa 0220 movs r0, #2 7419 00fc EAE7 b .L477 7420 .LVL520: 7421 .L486: 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7422 .loc 1 3431 5 discriminator 1 view .LVU2621 7423 00fe 0220 movs r0, #2 7424 0100 E8E7 b .L477 7425 .L493: 7426 0102 00BF .align 2 7427 .L492: 7428 0104 00000000 .word I2C_Master_ISR_IT 7429 0108 00200080 .word -2147475456 7430 .cfi_endproc 7431 .LFE358: 7433 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7434 .align 1 7435 .global HAL_I2C_Master_Seq_Transmit_DMA 7436 .syntax unified 7437 .thumb 7438 .thumb_func 7440 HAL_I2C_Master_Seq_Transmit_DMA: 7441 .LVL521: 7442 .LFB359: 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7443 .loc 1 3534 1 is_stmt 1 view -0 7444 .cfi_startproc 7445 @ args = 4, pretend = 0, frame = 0 7446 @ frame_needed = 0, uses_anonymous_args = 0 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7447 .loc 1 3534 1 is_stmt 0 view .LVU2623 7448 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 7449 .cfi_def_cfa_offset 28 7450 .cfi_offset 4, -28 7451 .cfi_offset 5, -24 7452 .cfi_offset 6, -20 7453 .cfi_offset 7, -16 7454 .cfi_offset 8, -12 7455 .cfi_offset 9, -8 7456 .cfi_offset 14, -4 7457 0004 83B0 sub sp, sp, #12 7458 .cfi_def_cfa_offset 40 7459 0006 0446 mov r4, r0 7460 0008 0A9E ldr r6, [sp, #40] 3535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7461 .loc 1 3535 3 is_stmt 1 view .LVU2624 3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7462 .loc 1 3536 3 view .LVU2625 7463 .LVL522: 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7464 .loc 1 3537 3 view .LVU2626 3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7465 .loc 1 3538 3 view .LVU2627 3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 307 7466 .loc 1 3541 3 view .LVU2628 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7467 .loc 1 3543 3 view .LVU2629 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7468 .loc 1 3543 11 is_stmt 0 view .LVU2630 7469 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7470 .LVL523: 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7471 .loc 1 3543 6 view .LVU2631 7472 000e 2028 cmp r0, #32 7473 0010 40F0D780 bne .L510 7474 0014 0D46 mov r5, r1 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7475 .loc 1 3546 5 is_stmt 1 view .LVU2632 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7476 .loc 1 3546 5 view .LVU2633 7477 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7478 .LVL524: 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7479 .loc 1 3546 5 is_stmt 0 view .LVU2634 7480 001a 0129 cmp r1, #1 7481 001c 00F0D580 beq .L511 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7482 .loc 1 3546 5 is_stmt 1 discriminator 2 view .LVU2635 7483 0020 0121 movs r1, #1 7484 0022 84F84010 strb r1, [r4, #64] 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7485 .loc 1 3546 5 view .LVU2636 3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7486 .loc 1 3548 5 view .LVU2637 3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7487 .loc 1 3548 21 is_stmt 0 view .LVU2638 7488 0026 2121 movs r1, #33 7489 0028 84F84110 strb r1, [r4, #65] 3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7490 .loc 1 3549 5 is_stmt 1 view .LVU2639 3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7491 .loc 1 3549 21 is_stmt 0 view .LVU2640 7492 002c 1021 movs r1, #16 7493 002e 84F84210 strb r1, [r4, #66] 3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7494 .loc 1 3550 5 is_stmt 1 view .LVU2641 3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7495 .loc 1 3550 21 is_stmt 0 view .LVU2642 7496 0032 0021 movs r1, #0 7497 0034 6164 str r1, [r4, #68] 3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7498 .loc 1 3553 5 is_stmt 1 view .LVU2643 3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7499 .loc 1 3553 23 is_stmt 0 view .LVU2644 7500 0036 6262 str r2, [r4, #36] 3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7501 .loc 1 3554 5 is_stmt 1 view .LVU2645 3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7502 .loc 1 3554 23 is_stmt 0 view .LVU2646 7503 0038 6385 strh r3, [r4, #42] @ movhi 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; ARM GAS /tmp/ccN54YTb.s page 308 7504 .loc 1 3555 5 is_stmt 1 view .LVU2647 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7505 .loc 1 3555 23 is_stmt 0 view .LVU2648 7506 003a E662 str r6, [r4, #44] 3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7507 .loc 1 3556 5 is_stmt 1 view .LVU2649 3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7508 .loc 1 3556 23 is_stmt 0 view .LVU2650 7509 003c 644B ldr r3, .L518 7510 .LVL525: 3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7511 .loc 1 3556 23 view .LVU2651 7512 003e 6363 str r3, [r4, #52] 3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7513 .loc 1 3559 5 is_stmt 1 view .LVU2652 3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7514 .loc 1 3559 13 is_stmt 0 view .LVU2653 7515 0040 638D ldrh r3, [r4, #42] 7516 0042 9BB2 uxth r3, r3 3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7517 .loc 1 3559 8 view .LVU2654 7518 0044 FF2B cmp r3, #255 7519 0046 1BD9 bls .L496 3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7520 .loc 1 3561 7 is_stmt 1 view .LVU2655 3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7521 .loc 1 3561 22 is_stmt 0 view .LVU2656 7522 0048 FF23 movs r3, #255 7523 004a 2385 strh r3, [r4, #40] @ movhi 3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7524 .loc 1 3562 7 is_stmt 1 view .LVU2657 7525 .LVL526: 3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7526 .loc 1 3562 16 is_stmt 0 view .LVU2658 7527 004c 4FF08077 mov r7, #16777216 7528 .LVL527: 7529 .L497: 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7530 .loc 1 3570 5 is_stmt 1 view .LVU2659 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7531 .loc 1 3570 14 is_stmt 0 view .LVU2660 7532 0050 238D ldrh r3, [r4, #40] 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7533 .loc 1 3570 8 view .LVU2661 7534 0052 CBB1 cbz r3, .L512 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7535 .loc 1 3570 31 discriminator 1 view .LVU2662 7536 0054 B6F1007F cmp r6, #33554432 7537 0058 18BF it ne 7538 005a 002E cmpne r6, #0 7539 005c 29D1 bne .L513 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7540 .loc 1 3575 7 is_stmt 1 view .LVU2663 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7541 .loc 1 3575 11 is_stmt 0 view .LVU2664 7542 005e 2368 ldr r3, [r4] 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 309 7543 .loc 1 3575 30 view .LVU2665 7544 0060 1278 ldrb r2, [r2] @ zero_extendqisi2 7545 .LVL528: 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7546 .loc 1 3575 28 view .LVU2666 7547 0062 9A62 str r2, [r3, #40] 7548 .LVL529: 3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7549 .loc 1 3578 7 is_stmt 1 view .LVU2667 3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7550 .loc 1 3578 11 is_stmt 0 view .LVU2668 7551 0064 636A ldr r3, [r4, #36] 3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7552 .loc 1 3578 21 view .LVU2669 7553 0066 0133 adds r3, r3, #1 7554 0068 6362 str r3, [r4, #36] 3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 7555 .loc 1 3580 7 is_stmt 1 view .LVU2670 3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 7556 .loc 1 3580 24 is_stmt 0 view .LVU2671 7557 006a B4F82880 ldrh r8, [r4, #40] 7558 .LVL530: 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7559 .loc 1 3581 7 is_stmt 1 view .LVU2672 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7560 .loc 1 3581 11 is_stmt 0 view .LVU2673 7561 006e 638D ldrh r3, [r4, #42] 7562 0070 9BB2 uxth r3, r3 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7563 .loc 1 3581 22 view .LVU2674 7564 0072 013B subs r3, r3, #1 7565 0074 9BB2 uxth r3, r3 7566 0076 6385 strh r3, [r4, #42] @ movhi 3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7567 .loc 1 3582 7 is_stmt 1 view .LVU2675 3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7568 .loc 1 3582 21 is_stmt 0 view .LVU2676 7569 0078 08F1FF33 add r3, r8, #-1 7570 007c 2385 strh r3, [r4, #40] @ movhi 7571 007e 05E0 b .L498 7572 .LVL531: 7573 .L496: 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7574 .loc 1 3566 7 is_stmt 1 view .LVU2677 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7575 .loc 1 3566 28 is_stmt 0 view .LVU2678 7576 0080 638D ldrh r3, [r4, #42] 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7577 .loc 1 3566 22 view .LVU2679 7578 0082 2385 strh r3, [r4, #40] @ movhi 3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7579 .loc 1 3567 7 is_stmt 1 view .LVU2680 3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7580 .loc 1 3567 16 is_stmt 0 view .LVU2681 7581 0084 E76A ldr r7, [r4, #44] 7582 0086 E3E7 b .L497 7583 .LVL532: ARM GAS /tmp/ccN54YTb.s page 310 7584 .L512: 3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7585 .loc 1 3538 12 view .LVU2682 7586 0088 4FF00008 mov r8, #0 7587 .LVL533: 7588 .L498: 3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7589 .loc 1 3588 5 is_stmt 1 view .LVU2683 3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7590 .loc 1 3588 14 is_stmt 0 view .LVU2684 7591 008c 236B ldr r3, [r4, #48] 3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7592 .loc 1 3588 8 view .LVU2685 7593 008e 112B cmp r3, #17 7594 0090 04D1 bne .L499 3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7595 .loc 1 3588 59 discriminator 1 view .LVU2686 7596 0092 B6F52A4F cmp r6, #43520 7597 0096 18BF it ne 7598 0098 AA2E cmpne r6, #170 7599 009a 0DD1 bne .L514 7600 .L499: 3596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7601 .loc 1 3596 7 is_stmt 1 view .LVU2687 7602 009c 2046 mov r0, r4 7603 009e FFF7FEFF bl I2C_ConvertOtherXferOptions 7604 .LVL534: 3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7605 .loc 1 3599 7 view .LVU2688 3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7606 .loc 1 3599 15 is_stmt 0 view .LVU2689 7607 00a2 638D ldrh r3, [r4, #42] 7608 00a4 9BB2 uxth r3, r3 3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7609 .loc 1 3599 10 view .LVU2690 7610 00a6 FF2B cmp r3, #255 7611 00a8 09D8 bhi .L515 3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7612 .loc 1 3601 9 is_stmt 1 view .LVU2691 3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7613 .loc 1 3601 18 is_stmt 0 view .LVU2692 7614 00aa E76A ldr r7, [r4, #44] 7615 .LVL535: 3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7616 .loc 1 3536 12 view .LVU2693 7617 00ac DFF83091 ldr r9, .L518+16 7618 00b0 07E0 b .L500 7619 .LVL536: 7620 .L513: 3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7621 .loc 1 3538 12 view .LVU2694 7622 00b2 4FF00008 mov r8, #0 7623 00b6 E9E7 b .L498 7624 .LVL537: 7625 .L514: 3591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7626 .loc 1 3591 19 view .LVU2695 ARM GAS /tmp/ccN54YTb.s page 311 7627 00b8 4FF00009 mov r9, #0 7628 00bc 01E0 b .L500 7629 .L515: 3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7630 .loc 1 3536 12 view .LVU2696 7631 00be DFF82091 ldr r9, .L518+16 7632 .L500: 7633 .LVL538: 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7634 .loc 1 3605 5 is_stmt 1 view .LVU2697 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7635 .loc 1 3605 13 is_stmt 0 view .LVU2698 7636 00c2 228D ldrh r2, [r4, #40] 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7637 .loc 1 3605 8 view .LVU2699 7638 00c4 002A cmp r2, #0 7639 00c6 5AD0 beq .L501 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7640 .loc 1 3607 7 is_stmt 1 view .LVU2700 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7641 .loc 1 3607 15 is_stmt 0 view .LVU2701 7642 00c8 A36B ldr r3, [r4, #56] 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7643 .loc 1 3607 10 view .LVU2702 7644 00ca FBB1 cbz r3, .L502 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7645 .loc 1 3610 9 is_stmt 1 view .LVU2703 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7646 .loc 1 3610 40 is_stmt 0 view .LVU2704 7647 00cc 414A ldr r2, .L518+4 7648 00ce DA63 str r2, [r3, #60] 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7649 .loc 1 3613 9 is_stmt 1 view .LVU2705 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7650 .loc 1 3613 13 is_stmt 0 view .LVU2706 7651 00d0 A36B ldr r3, [r4, #56] 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7652 .loc 1 3613 41 view .LVU2707 7653 00d2 414A ldr r2, .L518+8 7654 00d4 DA64 str r2, [r3, #76] 3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7655 .loc 1 3616 9 is_stmt 1 view .LVU2708 3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7656 .loc 1 3616 13 is_stmt 0 view .LVU2709 7657 00d6 A26B ldr r2, [r4, #56] 3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7658 .loc 1 3616 44 view .LVU2710 7659 00d8 0023 movs r3, #0 7660 00da 1364 str r3, [r2, #64] 3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7661 .loc 1 3617 9 is_stmt 1 view .LVU2711 3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7662 .loc 1 3617 13 is_stmt 0 view .LVU2712 7663 00dc A26B ldr r2, [r4, #56] 3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7664 .loc 1 3617 41 view .LVU2713 7665 00de 1365 str r3, [r2, #80] ARM GAS /tmp/ccN54YTb.s page 312 3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7666 .loc 1 3620 9 is_stmt 1 view .LVU2714 3621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7667 .loc 1 3621 57 is_stmt 0 view .LVU2715 7668 00e0 2268 ldr r2, [r4] 3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7669 .loc 1 3620 25 view .LVU2716 7670 00e2 238D ldrh r3, [r4, #40] 7671 00e4 2832 adds r2, r2, #40 7672 00e6 616A ldr r1, [r4, #36] 7673 00e8 A06B ldr r0, [r4, #56] 7674 00ea FFF7FEFF bl HAL_DMA_Start_IT 7675 .LVL539: 3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7676 .loc 1 3638 7 is_stmt 1 view .LVU2717 3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7677 .loc 1 3638 10 is_stmt 0 view .LVU2718 7678 00ee D8B1 cbz r0, .L503 3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7679 .loc 1 3668 9 is_stmt 1 view .LVU2719 3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7680 .loc 1 3668 25 is_stmt 0 view .LVU2720 7681 00f0 2023 movs r3, #32 7682 00f2 84F84130 strb r3, [r4, #65] 3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7683 .loc 1 3669 9 is_stmt 1 view .LVU2721 3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7684 .loc 1 3669 25 is_stmt 0 view .LVU2722 7685 00f6 0022 movs r2, #0 7686 00f8 84F84220 strb r2, [r4, #66] 3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7687 .loc 1 3672 9 is_stmt 1 view .LVU2723 3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7688 .loc 1 3672 13 is_stmt 0 view .LVU2724 7689 00fc 636C ldr r3, [r4, #68] 3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7690 .loc 1 3672 25 view .LVU2725 7691 00fe 43F01003 orr r3, r3, #16 7692 0102 6364 str r3, [r4, #68] 3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7693 .loc 1 3675 9 is_stmt 1 view .LVU2726 3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7694 .loc 1 3675 9 view .LVU2727 7695 0104 84F84020 strb r2, [r4, #64] 3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7696 .loc 1 3675 9 view .LVU2728 3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7697 .loc 1 3677 9 view .LVU2729 3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7698 .loc 1 3677 16 is_stmt 0 view .LVU2730 7699 0108 0120 movs r0, #1 7700 .LVL540: 3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7701 .loc 1 3677 16 view .LVU2731 7702 010a 5BE0 b .L495 7703 .LVL541: 7704 .L502: ARM GAS /tmp/ccN54YTb.s page 313 3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7705 .loc 1 3626 9 is_stmt 1 view .LVU2732 3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7706 .loc 1 3626 25 is_stmt 0 view .LVU2733 7707 010c 2023 movs r3, #32 7708 010e 84F84130 strb r3, [r4, #65] 3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7709 .loc 1 3627 9 is_stmt 1 view .LVU2734 3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7710 .loc 1 3627 25 is_stmt 0 view .LVU2735 7711 0112 0022 movs r2, #0 7712 0114 84F84220 strb r2, [r4, #66] 3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7713 .loc 1 3630 9 is_stmt 1 view .LVU2736 3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7714 .loc 1 3630 13 is_stmt 0 view .LVU2737 7715 0118 636C ldr r3, [r4, #68] 3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7716 .loc 1 3630 25 view .LVU2738 7717 011a 43F08003 orr r3, r3, #128 7718 011e 6364 str r3, [r4, #68] 3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7719 .loc 1 3633 9 is_stmt 1 view .LVU2739 3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7720 .loc 1 3633 9 view .LVU2740 7721 0120 84F84020 strb r2, [r4, #64] 3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7722 .loc 1 3633 9 view .LVU2741 3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7723 .loc 1 3635 9 view .LVU2742 3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7724 .loc 1 3635 16 is_stmt 0 view .LVU2743 7725 0124 0120 movs r0, #1 7726 0126 4DE0 b .L495 7727 .LVL542: 7728 .L503: 3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7729 .loc 1 3641 9 is_stmt 1 view .LVU2744 3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7730 .loc 1 3641 12 is_stmt 0 view .LVU2745 7731 0128 B6F1007F cmp r6, #33554432 7732 012c 18BF it ne 7733 012e 002E cmpne r6, #0 7734 0130 1BD1 bne .L505 3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7735 .loc 1 3643 11 is_stmt 1 view .LVU2746 7736 0132 CDF80090 str r9, [sp] 7737 0136 3B46 mov r3, r7 7738 0138 5FFA88F2 uxtb r2, r8 7739 013c 2946 mov r1, r5 7740 013e 2046 mov r0, r4 7741 .LVL543: 3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7742 .loc 1 3643 11 is_stmt 0 view .LVU2747 7743 0140 FFF7FEFF bl I2C_TransferConfig 7744 .LVL544: 7745 .L506: ARM GAS /tmp/ccN54YTb.s page 314 3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7746 .loc 1 3651 9 is_stmt 1 view .LVU2748 3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7747 .loc 1 3651 13 is_stmt 0 view .LVU2749 7748 0144 638D ldrh r3, [r4, #42] 7749 0146 9BB2 uxth r3, r3 3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7750 .loc 1 3651 32 view .LVU2750 7751 0148 228D ldrh r2, [r4, #40] 3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7752 .loc 1 3651 25 view .LVU2751 7753 014a 9B1A subs r3, r3, r2 7754 014c 9BB2 uxth r3, r3 7755 014e 6385 strh r3, [r4, #42] @ movhi 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7756 .loc 1 3654 9 is_stmt 1 view .LVU2752 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7757 .loc 1 3654 9 view .LVU2753 7758 0150 0023 movs r3, #0 7759 0152 84F84030 strb r3, [r4, #64] 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7760 .loc 1 3654 9 view .LVU2754 3660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7761 .loc 1 3660 9 view .LVU2755 7762 0156 1021 movs r1, #16 7763 0158 2046 mov r0, r4 7764 015a FFF7FEFF bl I2C_Enable_IRQ 7765 .LVL545: 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7766 .loc 1 3663 9 view .LVU2756 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7767 .loc 1 3663 13 is_stmt 0 view .LVU2757 7768 015e 2268 ldr r2, [r4] 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7769 .loc 1 3663 23 view .LVU2758 7770 0160 1368 ldr r3, [r2] 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7771 .loc 1 3663 29 view .LVU2759 7772 0162 43F48043 orr r3, r3, #16384 7773 0166 1360 str r3, [r2] 7774 0168 20E0 b .L507 7775 .LVL546: 7776 .L505: 3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7777 .loc 1 3647 11 is_stmt 1 view .LVU2760 7778 016a CDF80090 str r9, [sp] 7779 016e 3B46 mov r3, r7 7780 0170 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7781 0174 2946 mov r1, r5 7782 0176 2046 mov r0, r4 7783 .LVL547: 3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7784 .loc 1 3647 11 is_stmt 0 view .LVU2761 7785 0178 FFF7FEFF bl I2C_TransferConfig 7786 .LVL548: 7787 017c E2E7 b .L506 7788 .LVL549: ARM GAS /tmp/ccN54YTb.s page 315 7789 .L501: 3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7790 .loc 1 3683 7 is_stmt 1 view .LVU2762 3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7791 .loc 1 3683 21 is_stmt 0 view .LVU2763 7792 017e 174B ldr r3, .L518+12 7793 0180 6363 str r3, [r4, #52] 3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7794 .loc 1 3687 7 is_stmt 1 view .LVU2764 3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7795 .loc 1 3687 10 is_stmt 0 view .LVU2765 7796 0182 B6F1007F cmp r6, #33554432 7797 0186 18BF it ne 7798 0188 002E cmpne r6, #0 7799 018a 11D1 bne .L508 3689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7800 .loc 1 3689 9 is_stmt 1 view .LVU2766 7801 018c CDF80090 str r9, [sp] 7802 0190 3B46 mov r3, r7 7803 0192 5FFA88F2 uxtb r2, r8 7804 0196 2946 mov r1, r5 7805 0198 2046 mov r0, r4 7806 019a FFF7FEFF bl I2C_TransferConfig 7807 .LVL550: 7808 .L509: 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7809 .loc 1 3697 7 view .LVU2767 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7810 .loc 1 3697 7 view .LVU2768 7811 019e 0023 movs r3, #0 7812 01a0 84F84030 strb r3, [r4, #64] 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7813 .loc 1 3697 7 view .LVU2769 3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7814 .loc 1 3706 7 view .LVU2770 7815 01a4 0121 movs r1, #1 7816 01a6 2046 mov r0, r4 7817 01a8 FFF7FEFF bl I2C_Enable_IRQ 7818 .LVL551: 7819 .L507: 3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7820 .loc 1 3709 5 view .LVU2771 3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7821 .loc 1 3709 12 is_stmt 0 view .LVU2772 7822 01ac 0020 movs r0, #0 7823 01ae 09E0 b .L495 7824 .L508: 3693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7825 .loc 1 3693 9 is_stmt 1 view .LVU2773 7826 01b0 CDF80090 str r9, [sp] 7827 01b4 3B46 mov r3, r7 7828 01b6 D2B2 uxtb r2, r2 7829 01b8 2946 mov r1, r5 7830 01ba 2046 mov r0, r4 7831 01bc FFF7FEFF bl I2C_TransferConfig 7832 .LVL552: 7833 01c0 EDE7 b .L509 ARM GAS /tmp/ccN54YTb.s page 316 7834 .LVL553: 7835 .L510: 3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7836 .loc 1 3713 12 is_stmt 0 view .LVU2774 7837 01c2 0220 movs r0, #2 7838 .LVL554: 7839 .L495: 3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7840 .loc 1 3715 1 view .LVU2775 7841 01c4 03B0 add sp, sp, #12 7842 .cfi_remember_state 7843 .cfi_def_cfa_offset 28 7844 @ sp needed 7845 01c6 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7846 .LVL555: 7847 .L511: 7848 .cfi_restore_state 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7849 .loc 1 3546 5 discriminator 1 view .LVU2776 7850 01ca 0220 movs r0, #2 7851 01cc FAE7 b .L495 7852 .L519: 7853 01ce 00BF .align 2 7854 .L518: 7855 01d0 00000000 .word I2C_Master_ISR_DMA 7856 01d4 00000000 .word I2C_DMAMasterTransmitCplt 7857 01d8 00000000 .word I2C_DMAError 7858 01dc 00000000 .word I2C_Master_ISR_IT 7859 01e0 00200080 .word -2147475456 7860 .cfi_endproc 7861 .LFE359: 7863 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7864 .align 1 7865 .global HAL_I2C_Master_Seq_Receive_IT 7866 .syntax unified 7867 .thumb 7868 .thumb_func 7870 HAL_I2C_Master_Seq_Receive_IT: 7871 .LVL556: 7872 .LFB360: 3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7873 .loc 1 3731 1 is_stmt 1 view -0 7874 .cfi_startproc 7875 @ args = 4, pretend = 0, frame = 0 7876 @ frame_needed = 0, uses_anonymous_args = 0 3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7877 .loc 1 3731 1 is_stmt 0 view .LVU2778 7878 0000 70B5 push {r4, r5, r6, lr} 7879 .cfi_def_cfa_offset 16 7880 .cfi_offset 4, -16 7881 .cfi_offset 5, -12 7882 .cfi_offset 6, -8 7883 .cfi_offset 14, -4 7884 0002 82B0 sub sp, sp, #8 7885 .cfi_def_cfa_offset 24 7886 0004 0446 mov r4, r0 7887 0006 0D46 mov r5, r1 ARM GAS /tmp/ccN54YTb.s page 317 7888 0008 0699 ldr r1, [sp, #24] 7889 .LVL557: 3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7890 .loc 1 3732 3 is_stmt 1 view .LVU2779 3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7891 .loc 1 3733 3 view .LVU2780 3736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7892 .loc 1 3736 3 view .LVU2781 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7893 .loc 1 3738 3 view .LVU2782 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7894 .loc 1 3738 11 is_stmt 0 view .LVU2783 7895 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7896 .LVL558: 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7897 .loc 1 3738 6 view .LVU2784 7898 000e 2028 cmp r0, #32 7899 0010 46D1 bne .L526 3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7900 .loc 1 3741 5 is_stmt 1 view .LVU2785 3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7901 .loc 1 3741 5 view .LVU2786 7902 0012 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 7903 0016 0128 cmp r0, #1 7904 0018 44D0 beq .L527 3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7905 .loc 1 3741 5 discriminator 2 view .LVU2787 7906 001a 0120 movs r0, #1 7907 001c 84F84000 strb r0, [r4, #64] 3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7908 .loc 1 3741 5 view .LVU2788 3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7909 .loc 1 3743 5 view .LVU2789 3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7910 .loc 1 3743 21 is_stmt 0 view .LVU2790 7911 0020 2220 movs r0, #34 7912 0022 84F84100 strb r0, [r4, #65] 3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7913 .loc 1 3744 5 is_stmt 1 view .LVU2791 3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7914 .loc 1 3744 21 is_stmt 0 view .LVU2792 7915 0026 1020 movs r0, #16 7916 0028 84F84200 strb r0, [r4, #66] 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7917 .loc 1 3745 5 is_stmt 1 view .LVU2793 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7918 .loc 1 3745 21 is_stmt 0 view .LVU2794 7919 002c 0020 movs r0, #0 7920 002e 6064 str r0, [r4, #68] 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7921 .loc 1 3748 5 is_stmt 1 view .LVU2795 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7922 .loc 1 3748 23 is_stmt 0 view .LVU2796 7923 0030 6262 str r2, [r4, #36] 3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7924 .loc 1 3749 5 is_stmt 1 view .LVU2797 3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; ARM GAS /tmp/ccN54YTb.s page 318 7925 .loc 1 3749 23 is_stmt 0 view .LVU2798 7926 0032 6385 strh r3, [r4, #42] @ movhi 3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7927 .loc 1 3750 5 is_stmt 1 view .LVU2799 3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7928 .loc 1 3750 23 is_stmt 0 view .LVU2800 7929 0034 E162 str r1, [r4, #44] 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7930 .loc 1 3751 5 is_stmt 1 view .LVU2801 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7931 .loc 1 3751 23 is_stmt 0 view .LVU2802 7932 0036 1C4B ldr r3, .L531 7933 .LVL559: 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7934 .loc 1 3751 23 view .LVU2803 7935 0038 6363 str r3, [r4, #52] 3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7936 .loc 1 3754 5 is_stmt 1 view .LVU2804 3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7937 .loc 1 3754 13 is_stmt 0 view .LVU2805 7938 003a 638D ldrh r3, [r4, #42] 7939 003c 9BB2 uxth r3, r3 3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7940 .loc 1 3754 8 view .LVU2806 7941 003e FF2B cmp r3, #255 7942 0040 26D9 bls .L522 3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7943 .loc 1 3756 7 is_stmt 1 view .LVU2807 3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7944 .loc 1 3756 22 is_stmt 0 view .LVU2808 7945 0042 FF23 movs r3, #255 7946 0044 2385 strh r3, [r4, #40] @ movhi 3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7947 .loc 1 3757 7 is_stmt 1 view .LVU2809 7948 .LVL560: 3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7949 .loc 1 3757 16 is_stmt 0 view .LVU2810 7950 0046 4FF08076 mov r6, #16777216 7951 .LVL561: 7952 .L523: 3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7953 .loc 1 3768 5 is_stmt 1 view .LVU2811 3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7954 .loc 1 3768 14 is_stmt 0 view .LVU2812 7955 004a 236B ldr r3, [r4, #48] 3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7956 .loc 1 3768 8 view .LVU2813 7957 004c 122B cmp r3, #18 7958 004e 04D1 bne .L524 3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7959 .loc 1 3768 59 discriminator 1 view .LVU2814 7960 0050 B1F52A4F cmp r1, #43520 7961 0054 18BF it ne 7962 0056 AA29 cmpne r1, #170 7963 0058 1ED1 bne .L528 7964 .L524: 3776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 319 7965 .loc 1 3776 7 is_stmt 1 view .LVU2815 7966 005a 2046 mov r0, r4 7967 005c FFF7FEFF bl I2C_ConvertOtherXferOptions 7968 .LVL562: 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7969 .loc 1 3779 7 view .LVU2816 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7970 .loc 1 3779 15 is_stmt 0 view .LVU2817 7971 0060 638D ldrh r3, [r4, #42] 7972 0062 9BB2 uxth r3, r3 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7973 .loc 1 3779 10 view .LVU2818 7974 0064 FF2B cmp r3, #255 7975 0066 19D8 bhi .L529 3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7976 .loc 1 3781 9 is_stmt 1 view .LVU2819 3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7977 .loc 1 3781 18 is_stmt 0 view .LVU2820 7978 0068 E66A ldr r6, [r4, #44] 7979 .LVL563: 3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7980 .loc 1 3733 12 view .LVU2821 7981 006a 104B ldr r3, .L531+4 7982 .L525: 7983 .LVL564: 3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7984 .loc 1 3786 5 is_stmt 1 view .LVU2822 7985 006c 0093 str r3, [sp] 7986 006e 3346 mov r3, r6 7987 .LVL565: 3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7988 .loc 1 3786 5 is_stmt 0 view .LVU2823 7989 0070 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7990 0074 2946 mov r1, r5 7991 0076 2046 mov r0, r4 7992 0078 FFF7FEFF bl I2C_TransferConfig 7993 .LVL566: 3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7994 .loc 1 3789 5 is_stmt 1 view .LVU2824 3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7995 .loc 1 3789 5 view .LVU2825 7996 007c 0025 movs r5, #0 7997 .LVL567: 3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7998 .loc 1 3789 5 is_stmt 0 view .LVU2826 7999 007e 84F84050 strb r5, [r4, #64] 3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8000 .loc 1 3789 5 is_stmt 1 view .LVU2827 3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8001 .loc 1 3794 5 view .LVU2828 8002 0082 0221 movs r1, #2 8003 0084 2046 mov r0, r4 8004 0086 FFF7FEFF bl I2C_Enable_IRQ 8005 .LVL568: 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8006 .loc 1 3796 5 view .LVU2829 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 320 8007 .loc 1 3796 12 is_stmt 0 view .LVU2830 8008 008a 2846 mov r0, r5 8009 .LVL569: 8010 .L521: 3802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8011 .loc 1 3802 1 view .LVU2831 8012 008c 02B0 add sp, sp, #8 8013 .cfi_remember_state 8014 .cfi_def_cfa_offset 16 8015 @ sp needed 8016 008e 70BD pop {r4, r5, r6, pc} 8017 .LVL570: 8018 .L522: 8019 .cfi_restore_state 3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8020 .loc 1 3761 7 is_stmt 1 view .LVU2832 3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8021 .loc 1 3761 28 is_stmt 0 view .LVU2833 8022 0090 638D ldrh r3, [r4, #42] 3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8023 .loc 1 3761 22 view .LVU2834 8024 0092 2385 strh r3, [r4, #40] @ movhi 3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8025 .loc 1 3762 7 is_stmt 1 view .LVU2835 3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8026 .loc 1 3762 16 is_stmt 0 view .LVU2836 8027 0094 E66A ldr r6, [r4, #44] 8028 0096 D8E7 b .L523 8029 .LVL571: 8030 .L528: 3771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8031 .loc 1 3771 19 view .LVU2837 8032 0098 0023 movs r3, #0 8033 009a E7E7 b .L525 8034 .LVL572: 8035 .L529: 3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8036 .loc 1 3733 12 view .LVU2838 8037 009c 034B ldr r3, .L531+4 8038 009e E5E7 b .L525 8039 .LVL573: 8040 .L526: 3800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8041 .loc 1 3800 12 view .LVU2839 8042 00a0 0220 movs r0, #2 8043 00a2 F3E7 b .L521 8044 .L527: 3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8045 .loc 1 3741 5 discriminator 1 view .LVU2840 8046 00a4 0220 movs r0, #2 8047 00a6 F1E7 b .L521 8048 .L532: 8049 .align 2 8050 .L531: 8051 00a8 00000000 .word I2C_Master_ISR_IT 8052 00ac 00240080 .word -2147474432 8053 .cfi_endproc ARM GAS /tmp/ccN54YTb.s page 321 8054 .LFE360: 8056 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8057 .align 1 8058 .global HAL_I2C_Master_Seq_Receive_DMA 8059 .syntax unified 8060 .thumb 8061 .thumb_func 8063 HAL_I2C_Master_Seq_Receive_DMA: 8064 .LVL574: 8065 .LFB361: 3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 8066 .loc 1 3818 1 is_stmt 1 view -0 8067 .cfi_startproc 8068 @ args = 4, pretend = 0, frame = 0 8069 @ frame_needed = 0, uses_anonymous_args = 0 3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 8070 .loc 1 3818 1 is_stmt 0 view .LVU2842 8071 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 8072 .cfi_def_cfa_offset 24 8073 .cfi_offset 4, -24 8074 .cfi_offset 5, -20 8075 .cfi_offset 6, -16 8076 .cfi_offset 7, -12 8077 .cfi_offset 8, -8 8078 .cfi_offset 14, -4 8079 0004 82B0 sub sp, sp, #8 8080 .cfi_def_cfa_offset 32 8081 0006 0E46 mov r6, r1 8082 0008 1546 mov r5, r2 8083 000a 089A ldr r2, [sp, #32] 8084 .LVL575: 3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8085 .loc 1 3819 3 is_stmt 1 view .LVU2843 3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8086 .loc 1 3820 3 view .LVU2844 3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8087 .loc 1 3821 3 view .LVU2845 3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8088 .loc 1 3824 3 view .LVU2846 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8089 .loc 1 3826 3 view .LVU2847 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8090 .loc 1 3826 11 is_stmt 0 view .LVU2848 8091 000c 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 8092 .LVL576: 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8093 .loc 1 3826 6 view .LVU2849 8094 0010 2029 cmp r1, #32 8095 0012 40F09D80 bne .L544 8096 0016 0446 mov r4, r0 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8097 .loc 1 3829 5 is_stmt 1 view .LVU2850 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8098 .loc 1 3829 5 view .LVU2851 8099 0018 90F84010 ldrb r1, [r0, #64] @ zero_extendqisi2 8100 001c 0129 cmp r1, #1 8101 001e 00F09B80 beq .L545 ARM GAS /tmp/ccN54YTb.s page 322 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8102 .loc 1 3829 5 discriminator 2 view .LVU2852 8103 0022 0121 movs r1, #1 8104 0024 80F84010 strb r1, [r0, #64] 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8105 .loc 1 3829 5 view .LVU2853 3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8106 .loc 1 3831 5 view .LVU2854 3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8107 .loc 1 3831 21 is_stmt 0 view .LVU2855 8108 0028 2221 movs r1, #34 8109 002a 80F84110 strb r1, [r0, #65] 3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8110 .loc 1 3832 5 is_stmt 1 view .LVU2856 3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8111 .loc 1 3832 21 is_stmt 0 view .LVU2857 8112 002e 1021 movs r1, #16 8113 0030 80F84210 strb r1, [r0, #66] 3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8114 .loc 1 3833 5 is_stmt 1 view .LVU2858 3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8115 .loc 1 3833 21 is_stmt 0 view .LVU2859 8116 0034 0021 movs r1, #0 8117 0036 4164 str r1, [r0, #68] 3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8118 .loc 1 3836 5 is_stmt 1 view .LVU2860 3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8119 .loc 1 3836 23 is_stmt 0 view .LVU2861 8120 0038 4562 str r5, [r0, #36] 3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8121 .loc 1 3837 5 is_stmt 1 view .LVU2862 3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8122 .loc 1 3837 23 is_stmt 0 view .LVU2863 8123 003a 4385 strh r3, [r0, #42] @ movhi 3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8124 .loc 1 3838 5 is_stmt 1 view .LVU2864 3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8125 .loc 1 3838 23 is_stmt 0 view .LVU2865 8126 003c C262 str r2, [r0, #44] 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8127 .loc 1 3839 5 is_stmt 1 view .LVU2866 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8128 .loc 1 3839 23 is_stmt 0 view .LVU2867 8129 003e 474B ldr r3, .L551 8130 .LVL577: 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8131 .loc 1 3839 23 view .LVU2868 8132 0040 4363 str r3, [r0, #52] 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8133 .loc 1 3842 5 is_stmt 1 view .LVU2869 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8134 .loc 1 3842 13 is_stmt 0 view .LVU2870 8135 0042 438D ldrh r3, [r0, #42] 8136 0044 9BB2 uxth r3, r3 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8137 .loc 1 3842 8 view .LVU2871 8138 0046 FF2B cmp r3, #255 ARM GAS /tmp/ccN54YTb.s page 323 8139 0048 3AD9 bls .L535 3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8140 .loc 1 3844 7 is_stmt 1 view .LVU2872 3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8141 .loc 1 3844 22 is_stmt 0 view .LVU2873 8142 004a FF23 movs r3, #255 8143 004c 0385 strh r3, [r0, #40] @ movhi 3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8144 .loc 1 3845 7 is_stmt 1 view .LVU2874 8145 .LVL578: 3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8146 .loc 1 3845 16 is_stmt 0 view .LVU2875 8147 004e 4FF08077 mov r7, #16777216 8148 .LVL579: 8149 .L536: 3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8150 .loc 1 3856 5 is_stmt 1 view .LVU2876 3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8151 .loc 1 3856 14 is_stmt 0 view .LVU2877 8152 0052 236B ldr r3, [r4, #48] 3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8153 .loc 1 3856 8 view .LVU2878 8154 0054 122B cmp r3, #18 8155 0056 04D1 bne .L537 3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8156 .loc 1 3856 59 discriminator 1 view .LVU2879 8157 0058 B2F52A4F cmp r2, #43520 8158 005c 18BF it ne 8159 005e AA2A cmpne r2, #170 8160 0060 32D1 bne .L546 8161 .L537: 3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8162 .loc 1 3864 7 is_stmt 1 view .LVU2880 8163 0062 2046 mov r0, r4 8164 .LVL580: 3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8165 .loc 1 3864 7 is_stmt 0 view .LVU2881 8166 0064 FFF7FEFF bl I2C_ConvertOtherXferOptions 8167 .LVL581: 3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8168 .loc 1 3867 7 is_stmt 1 view .LVU2882 3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8169 .loc 1 3867 15 is_stmt 0 view .LVU2883 8170 0068 638D ldrh r3, [r4, #42] 8171 006a 9BB2 uxth r3, r3 3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8172 .loc 1 3867 10 view .LVU2884 8173 006c FF2B cmp r3, #255 8174 006e 2ED8 bhi .L547 3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8175 .loc 1 3869 9 is_stmt 1 view .LVU2885 3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8176 .loc 1 3869 18 is_stmt 0 view .LVU2886 8177 0070 E76A ldr r7, [r4, #44] 8178 .LVL582: 3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8179 .loc 1 3820 12 view .LVU2887 ARM GAS /tmp/ccN54YTb.s page 324 8180 0072 DFF8F880 ldr r8, .L551+16 8181 .L538: 8182 .LVL583: 3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8183 .loc 1 3873 5 is_stmt 1 view .LVU2888 3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8184 .loc 1 3873 13 is_stmt 0 view .LVU2889 8185 0076 228D ldrh r2, [r4, #40] 3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8186 .loc 1 3873 8 view .LVU2890 8187 0078 002A cmp r2, #0 8188 007a 55D0 beq .L539 3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8189 .loc 1 3875 7 is_stmt 1 view .LVU2891 3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8190 .loc 1 3875 15 is_stmt 0 view .LVU2892 8191 007c E36B ldr r3, [r4, #60] 3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8192 .loc 1 3875 10 view .LVU2893 8193 007e 4BB3 cbz r3, .L540 3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8194 .loc 1 3878 9 is_stmt 1 view .LVU2894 3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8195 .loc 1 3878 40 is_stmt 0 view .LVU2895 8196 0080 374A ldr r2, .L551+4 8197 0082 DA63 str r2, [r3, #60] 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8198 .loc 1 3881 9 is_stmt 1 view .LVU2896 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8199 .loc 1 3881 13 is_stmt 0 view .LVU2897 8200 0084 E36B ldr r3, [r4, #60] 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8201 .loc 1 3881 41 view .LVU2898 8202 0086 374A ldr r2, .L551+8 8203 0088 DA64 str r2, [r3, #76] 3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8204 .loc 1 3884 9 is_stmt 1 view .LVU2899 3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8205 .loc 1 3884 13 is_stmt 0 view .LVU2900 8206 008a E26B ldr r2, [r4, #60] 3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8207 .loc 1 3884 44 view .LVU2901 8208 008c 0023 movs r3, #0 8209 008e 1364 str r3, [r2, #64] 3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8210 .loc 1 3885 9 is_stmt 1 view .LVU2902 3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8211 .loc 1 3885 13 is_stmt 0 view .LVU2903 8212 0090 E26B ldr r2, [r4, #60] 3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8213 .loc 1 3885 41 view .LVU2904 8214 0092 1365 str r3, [r2, #80] 3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8215 .loc 1 3888 9 is_stmt 1 view .LVU2905 3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8216 .loc 1 3888 71 is_stmt 0 view .LVU2906 8217 0094 2168 ldr r1, [r4] ARM GAS /tmp/ccN54YTb.s page 325 3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8218 .loc 1 3888 25 view .LVU2907 8219 0096 238D ldrh r3, [r4, #40] 8220 0098 2A46 mov r2, r5 8221 009a 2431 adds r1, r1, #36 8222 009c E06B ldr r0, [r4, #60] 8223 009e FFF7FEFF bl HAL_DMA_Start_IT 8224 .LVL584: 3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8225 .loc 1 3906 7 is_stmt 1 view .LVU2908 3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8226 .loc 1 3906 10 is_stmt 0 view .LVU2909 8227 00a2 28B3 cbz r0, .L550 3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8228 .loc 1 3929 9 is_stmt 1 view .LVU2910 3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8229 .loc 1 3929 25 is_stmt 0 view .LVU2911 8230 00a4 2023 movs r3, #32 8231 00a6 84F84130 strb r3, [r4, #65] 3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8232 .loc 1 3930 9 is_stmt 1 view .LVU2912 3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8233 .loc 1 3930 25 is_stmt 0 view .LVU2913 8234 00aa 0022 movs r2, #0 8235 00ac 84F84220 strb r2, [r4, #66] 3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8236 .loc 1 3933 9 is_stmt 1 view .LVU2914 3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8237 .loc 1 3933 13 is_stmt 0 view .LVU2915 8238 00b0 636C ldr r3, [r4, #68] 3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8239 .loc 1 3933 25 view .LVU2916 8240 00b2 43F01003 orr r3, r3, #16 8241 00b6 6364 str r3, [r4, #68] 3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8242 .loc 1 3936 9 is_stmt 1 view .LVU2917 3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8243 .loc 1 3936 9 view .LVU2918 8244 00b8 84F84020 strb r2, [r4, #64] 3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8245 .loc 1 3936 9 view .LVU2919 3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8246 .loc 1 3938 9 view .LVU2920 3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8247 .loc 1 3938 16 is_stmt 0 view .LVU2921 8248 00bc 0120 movs r0, #1 8249 .LVL585: 3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8250 .loc 1 3938 16 view .LVU2922 8251 00be 48E0 b .L534 8252 .LVL586: 8253 .L535: 3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8254 .loc 1 3849 7 is_stmt 1 view .LVU2923 3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8255 .loc 1 3849 28 is_stmt 0 view .LVU2924 8256 00c0 438D ldrh r3, [r0, #42] ARM GAS /tmp/ccN54YTb.s page 326 3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8257 .loc 1 3849 22 view .LVU2925 8258 00c2 0385 strh r3, [r0, #40] @ movhi 3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8259 .loc 1 3850 7 is_stmt 1 view .LVU2926 3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8260 .loc 1 3850 16 is_stmt 0 view .LVU2927 8261 00c4 C76A ldr r7, [r0, #44] 8262 00c6 C4E7 b .L536 8263 .LVL587: 8264 .L546: 3859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8265 .loc 1 3859 19 view .LVU2928 8266 00c8 4FF00008 mov r8, #0 8267 00cc D3E7 b .L538 8268 .LVL588: 8269 .L547: 3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8270 .loc 1 3820 12 view .LVU2929 8271 00ce DFF89C80 ldr r8, .L551+16 8272 00d2 D0E7 b .L538 8273 .LVL589: 8274 .L540: 3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8275 .loc 1 3894 9 is_stmt 1 view .LVU2930 3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8276 .loc 1 3894 25 is_stmt 0 view .LVU2931 8277 00d4 2023 movs r3, #32 8278 00d6 84F84130 strb r3, [r4, #65] 3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8279 .loc 1 3895 9 is_stmt 1 view .LVU2932 3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8280 .loc 1 3895 25 is_stmt 0 view .LVU2933 8281 00da 0022 movs r2, #0 8282 00dc 84F84220 strb r2, [r4, #66] 3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8283 .loc 1 3898 9 is_stmt 1 view .LVU2934 3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8284 .loc 1 3898 13 is_stmt 0 view .LVU2935 8285 00e0 636C ldr r3, [r4, #68] 3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8286 .loc 1 3898 25 view .LVU2936 8287 00e2 43F08003 orr r3, r3, #128 8288 00e6 6364 str r3, [r4, #68] 3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8289 .loc 1 3901 9 is_stmt 1 view .LVU2937 3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8290 .loc 1 3901 9 view .LVU2938 8291 00e8 84F84020 strb r2, [r4, #64] 3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8292 .loc 1 3901 9 view .LVU2939 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8293 .loc 1 3903 9 view .LVU2940 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8294 .loc 1 3903 16 is_stmt 0 view .LVU2941 8295 00ec 0120 movs r0, #1 8296 00ee 30E0 b .L534 ARM GAS /tmp/ccN54YTb.s page 327 8297 .LVL590: 8298 .L550: 3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8299 .loc 1 3909 9 is_stmt 1 view .LVU2942 8300 00f0 CDF80080 str r8, [sp] 8301 00f4 3B46 mov r3, r7 8302 00f6 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8303 00fa 3146 mov r1, r6 8304 00fc 2046 mov r0, r4 8305 .LVL591: 3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8306 .loc 1 3909 9 is_stmt 0 view .LVU2943 8307 00fe FFF7FEFF bl I2C_TransferConfig 8308 .LVL592: 3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8309 .loc 1 3912 9 is_stmt 1 view .LVU2944 3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8310 .loc 1 3912 13 is_stmt 0 view .LVU2945 8311 0102 638D ldrh r3, [r4, #42] 8312 0104 9BB2 uxth r3, r3 3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8313 .loc 1 3912 32 view .LVU2946 8314 0106 228D ldrh r2, [r4, #40] 3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8315 .loc 1 3912 25 view .LVU2947 8316 0108 9B1A subs r3, r3, r2 8317 010a 9BB2 uxth r3, r3 8318 010c 6385 strh r3, [r4, #42] @ movhi 3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8319 .loc 1 3915 9 is_stmt 1 view .LVU2948 3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8320 .loc 1 3915 9 view .LVU2949 8321 010e 0023 movs r3, #0 8322 0110 84F84030 strb r3, [r4, #64] 3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8323 .loc 1 3915 9 view .LVU2950 3921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8324 .loc 1 3921 9 view .LVU2951 8325 0114 1021 movs r1, #16 8326 0116 2046 mov r0, r4 8327 0118 FFF7FEFF bl I2C_Enable_IRQ 8328 .LVL593: 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8329 .loc 1 3924 9 view .LVU2952 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8330 .loc 1 3924 13 is_stmt 0 view .LVU2953 8331 011c 2268 ldr r2, [r4] 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8332 .loc 1 3924 23 view .LVU2954 8333 011e 1368 ldr r3, [r2] 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8334 .loc 1 3924 29 view .LVU2955 8335 0120 43F40043 orr r3, r3, #32768 8336 0124 1360 str r3, [r2] 8337 0126 11E0 b .L543 8338 .LVL594: 8339 .L539: ARM GAS /tmp/ccN54YTb.s page 328 3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8340 .loc 1 3944 7 is_stmt 1 view .LVU2956 3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8341 .loc 1 3944 21 is_stmt 0 view .LVU2957 8342 0128 0F4B ldr r3, .L551+12 8343 012a 6363 str r3, [r4, #52] 3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8344 .loc 1 3948 7 is_stmt 1 view .LVU2958 8345 012c 0F4B ldr r3, .L551+16 8346 012e 0093 str r3, [sp] 8347 0130 4FF00073 mov r3, #33554432 8348 0134 D2B2 uxtb r2, r2 8349 0136 3146 mov r1, r6 8350 0138 2046 mov r0, r4 8351 013a FFF7FEFF bl I2C_TransferConfig 8352 .LVL595: 3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8353 .loc 1 3952 7 view .LVU2959 3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8354 .loc 1 3952 7 view .LVU2960 8355 013e 0023 movs r3, #0 8356 0140 84F84030 strb r3, [r4, #64] 3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8357 .loc 1 3952 7 view .LVU2961 3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8358 .loc 1 3961 7 view .LVU2962 8359 0144 0221 movs r1, #2 8360 0146 2046 mov r0, r4 8361 0148 FFF7FEFF bl I2C_Enable_IRQ 8362 .LVL596: 8363 .L543: 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8364 .loc 1 3964 5 view .LVU2963 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8365 .loc 1 3964 12 is_stmt 0 view .LVU2964 8366 014c 0020 movs r0, #0 8367 014e 00E0 b .L534 8368 .LVL597: 8369 .L544: 3968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8370 .loc 1 3968 12 view .LVU2965 8371 0150 0220 movs r0, #2 8372 .LVL598: 8373 .L534: 3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8374 .loc 1 3970 1 view .LVU2966 8375 0152 02B0 add sp, sp, #8 8376 .cfi_remember_state 8377 .cfi_def_cfa_offset 24 8378 @ sp needed 8379 0154 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8380 .LVL599: 8381 .L545: 8382 .cfi_restore_state 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8383 .loc 1 3829 5 discriminator 1 view .LVU2967 8384 0158 0220 movs r0, #2 ARM GAS /tmp/ccN54YTb.s page 329 8385 .LVL600: 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8386 .loc 1 3829 5 discriminator 1 view .LVU2968 8387 015a FAE7 b .L534 8388 .L552: 8389 .align 2 8390 .L551: 8391 015c 00000000 .word I2C_Master_ISR_DMA 8392 0160 00000000 .word I2C_DMAMasterReceiveCplt 8393 0164 00000000 .word I2C_DMAError 8394 0168 00000000 .word I2C_Master_ISR_IT 8395 016c 00240080 .word -2147474432 8396 .cfi_endproc 8397 .LFE361: 8399 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8400 .align 1 8401 .global HAL_I2C_Slave_Seq_Transmit_IT 8402 .syntax unified 8403 .thumb 8404 .thumb_func 8406 HAL_I2C_Slave_Seq_Transmit_IT: 8407 .LVL601: 8408 .LFB362: 3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8409 .loc 1 3984 1 is_stmt 1 view -0 8410 .cfi_startproc 8411 @ args = 0, pretend = 0, frame = 0 8412 @ frame_needed = 0, uses_anonymous_args = 0 3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8413 .loc 1 3984 1 is_stmt 0 view .LVU2970 8414 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8415 .cfi_def_cfa_offset 24 8416 .cfi_offset 3, -24 8417 .cfi_offset 4, -20 8418 .cfi_offset 5, -16 8419 .cfi_offset 6, -12 8420 .cfi_offset 7, -8 8421 .cfi_offset 14, -4 8422 0002 0446 mov r4, r0 3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8423 .loc 1 3986 3 is_stmt 1 view .LVU2971 3989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8424 .loc 1 3989 3 view .LVU2972 3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8425 .loc 1 3991 3 view .LVU2973 3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8426 .loc 1 3991 22 is_stmt 0 view .LVU2974 8427 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8428 .LVL602: 3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8429 .loc 1 3991 6 view .LVU2975 8430 0008 00F02800 and r0, r0, #40 8431 000c 2828 cmp r0, #40 8432 000e 5FD1 bne .L558 8433 0010 0F46 mov r7, r1 8434 0012 1646 mov r6, r2 8435 0014 1D46 mov r5, r3 ARM GAS /tmp/ccN54YTb.s page 330 3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8436 .loc 1 3993 5 is_stmt 1 view .LVU2976 3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8437 .loc 1 3993 8 is_stmt 0 view .LVU2977 8438 0016 002A cmp r2, #0 8439 0018 18BF it ne 8440 001a 0029 cmpne r1, #0 8441 001c 04D1 bne .L555 3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8442 .loc 1 3995 7 is_stmt 1 view .LVU2978 3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8443 .loc 1 3995 23 is_stmt 0 view .LVU2979 8444 001e 4FF40073 mov r3, #512 8445 .LVL603: 3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8446 .loc 1 3995 23 view .LVU2980 8447 0022 6364 str r3, [r4, #68] 3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8448 .loc 1 3996 7 is_stmt 1 view .LVU2981 3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8449 .loc 1 3996 15 is_stmt 0 view .LVU2982 8450 0024 0120 movs r0, #1 8451 0026 54E0 b .L554 8452 .LVL604: 8453 .L555: 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8454 .loc 1 4000 5 is_stmt 1 view .LVU2983 8455 0028 48F20101 movw r1, #32769 8456 .LVL605: 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8457 .loc 1 4000 5 is_stmt 0 view .LVU2984 8458 002c 2046 mov r0, r4 8459 002e FFF7FEFF bl I2C_Disable_IRQ 8460 .LVL606: 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8461 .loc 1 4003 5 is_stmt 1 view .LVU2985 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8462 .loc 1 4003 5 view .LVU2986 8463 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8464 0036 012B cmp r3, #1 8465 0038 4CD0 beq .L559 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8466 .loc 1 4003 5 discriminator 2 view .LVU2987 8467 003a 0123 movs r3, #1 8468 003c 84F84030 strb r3, [r4, #64] 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8469 .loc 1 4003 5 view .LVU2988 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8470 .loc 1 4007 5 view .LVU2989 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8471 .loc 1 4007 13 is_stmt 0 view .LVU2990 8472 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8473 .loc 1 4007 8 view .LVU2991 8474 0044 2A2B cmp r3, #42 8475 0046 28D0 beq .L561 8476 .L556: ARM GAS /tmp/ccN54YTb.s page 331 4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8477 .loc 1 4033 5 is_stmt 1 view .LVU2992 4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8478 .loc 1 4033 21 is_stmt 0 view .LVU2993 8479 0048 2923 movs r3, #41 8480 004a 84F84130 strb r3, [r4, #65] 4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8481 .loc 1 4034 5 is_stmt 1 view .LVU2994 4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8482 .loc 1 4034 21 is_stmt 0 view .LVU2995 8483 004e 2023 movs r3, #32 8484 0050 84F84230 strb r3, [r4, #66] 4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8485 .loc 1 4035 5 is_stmt 1 view .LVU2996 4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8486 .loc 1 4035 21 is_stmt 0 view .LVU2997 8487 0054 0023 movs r3, #0 8488 0056 6364 str r3, [r4, #68] 4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8489 .loc 1 4038 5 is_stmt 1 view .LVU2998 4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8490 .loc 1 4038 9 is_stmt 0 view .LVU2999 8491 0058 2268 ldr r2, [r4] 4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8492 .loc 1 4038 19 view .LVU3000 8493 005a 5368 ldr r3, [r2, #4] 4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8494 .loc 1 4038 25 view .LVU3001 8495 005c 23F40043 bic r3, r3, #32768 8496 0060 5360 str r3, [r2, #4] 4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8497 .loc 1 4041 5 is_stmt 1 view .LVU3002 4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8498 .loc 1 4041 23 is_stmt 0 view .LVU3003 8499 0062 6762 str r7, [r4, #36] 4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8500 .loc 1 4042 5 is_stmt 1 view .LVU3004 4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8501 .loc 1 4042 23 is_stmt 0 view .LVU3005 8502 0064 6685 strh r6, [r4, #42] @ movhi 4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8503 .loc 1 4043 5 is_stmt 1 view .LVU3006 4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8504 .loc 1 4043 29 is_stmt 0 view .LVU3007 8505 0066 638D ldrh r3, [r4, #42] 4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8506 .loc 1 4043 23 view .LVU3008 8507 0068 2385 strh r3, [r4, #40] @ movhi 4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8508 .loc 1 4044 5 is_stmt 1 view .LVU3009 4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8509 .loc 1 4044 23 is_stmt 0 view .LVU3010 8510 006a E562 str r5, [r4, #44] 4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8511 .loc 1 4045 5 is_stmt 1 view .LVU3011 4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8512 .loc 1 4045 23 is_stmt 0 view .LVU3012 ARM GAS /tmp/ccN54YTb.s page 332 8513 006c 1A4B ldr r3, .L562 8514 006e 6363 str r3, [r4, #52] 4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8515 .loc 1 4047 5 is_stmt 1 view .LVU3013 4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8516 .loc 1 4047 11 is_stmt 0 view .LVU3014 8517 0070 2268 ldr r2, [r4] 8518 0072 9369 ldr r3, [r2, #24] 8519 0074 03F00803 and r3, r3, #8 8520 .LVL607: 4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8521 .loc 1 4048 5 is_stmt 1 view .LVU3015 4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8522 .loc 1 4048 10 is_stmt 0 view .LVU3016 8523 0078 9169 ldr r1, [r2, #24] 4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8524 .loc 1 4048 8 view .LVU3017 8525 007a 11F4803F tst r1, #65536 8526 007e 02D0 beq .L557 4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8527 .loc 1 4048 54 discriminator 1 view .LVU3018 8528 0080 0BB1 cbz r3, .L557 4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8529 .loc 1 4052 7 is_stmt 1 view .LVU3019 8530 0082 0823 movs r3, #8 8531 .LVL608: 4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8532 .loc 1 4052 7 is_stmt 0 view .LVU3020 8533 0084 D361 str r3, [r2, #28] 8534 .L557: 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8535 .loc 1 4056 5 is_stmt 1 view .LVU3021 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8536 .loc 1 4056 5 view .LVU3022 8537 0086 0025 movs r5, #0 8538 .LVL609: 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8539 .loc 1 4056 5 is_stmt 0 view .LVU3023 8540 0088 84F84050 strb r5, [r4, #64] 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8541 .loc 1 4056 5 is_stmt 1 view .LVU3024 4062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8542 .loc 1 4062 5 view .LVU3025 8543 008c 48F20101 movw r1, #32769 8544 0090 2046 mov r0, r4 8545 0092 FFF7FEFF bl I2C_Enable_IRQ 8546 .LVL610: 4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8547 .loc 1 4064 5 view .LVU3026 4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8548 .loc 1 4064 12 is_stmt 0 view .LVU3027 8549 0096 2846 mov r0, r5 8550 0098 1BE0 b .L554 8551 .LVL611: 8552 .L561: 4010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8553 .loc 1 4010 7 is_stmt 1 view .LVU3028 ARM GAS /tmp/ccN54YTb.s page 333 8554 009a 0221 movs r1, #2 8555 009c 2046 mov r0, r4 8556 009e FFF7FEFF bl I2C_Disable_IRQ 8557 .LVL612: 4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8558 .loc 1 4013 7 view .LVU3029 4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8559 .loc 1 4013 16 is_stmt 0 view .LVU3030 8560 00a2 2368 ldr r3, [r4] 4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8561 .loc 1 4013 26 view .LVU3031 8562 00a4 1A68 ldr r2, [r3] 4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8563 .loc 1 4013 10 view .LVU3032 8564 00a6 12F4004F tst r2, #32768 8565 00aa CDD0 beq .L556 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8566 .loc 1 4015 9 is_stmt 1 view .LVU3033 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8567 .loc 1 4015 23 is_stmt 0 view .LVU3034 8568 00ac 1A68 ldr r2, [r3] 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8569 .loc 1 4015 29 view .LVU3035 8570 00ae 22F40042 bic r2, r2, #32768 8571 00b2 1A60 str r2, [r3] 4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8572 .loc 1 4017 9 is_stmt 1 view .LVU3036 4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8573 .loc 1 4017 17 is_stmt 0 view .LVU3037 8574 00b4 E36B ldr r3, [r4, #60] 4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8575 .loc 1 4017 12 view .LVU3038 8576 00b6 002B cmp r3, #0 8577 00b8 C6D0 beq .L556 4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8578 .loc 1 4021 11 is_stmt 1 view .LVU3039 4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8579 .loc 1 4021 43 is_stmt 0 view .LVU3040 8580 00ba 084A ldr r2, .L562+4 8581 00bc 1A65 str r2, [r3, #80] 4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8582 .loc 1 4024 11 is_stmt 1 view .LVU3041 4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8583 .loc 1 4024 15 is_stmt 0 view .LVU3042 8584 00be E06B ldr r0, [r4, #60] 8585 00c0 FFF7FEFF bl HAL_DMA_Abort_IT 8586 .LVL613: 4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8587 .loc 1 4024 14 discriminator 1 view .LVU3043 8588 00c4 0028 cmp r0, #0 8589 00c6 BFD0 beq .L556 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8590 .loc 1 4027 13 is_stmt 1 view .LVU3044 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8591 .loc 1 4027 17 is_stmt 0 view .LVU3045 8592 00c8 E06B ldr r0, [r4, #60] 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 334 8593 .loc 1 4027 25 view .LVU3046 8594 00ca 036D ldr r3, [r0, #80] 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8595 .loc 1 4027 13 view .LVU3047 8596 00cc 9847 blx r3 8597 .LVL614: 8598 00ce BBE7 b .L556 8599 .LVL615: 8600 .L558: 4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8601 .loc 1 4068 12 view .LVU3048 8602 00d0 0120 movs r0, #1 8603 .LVL616: 8604 .L554: 4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8605 .loc 1 4070 1 view .LVU3049 8606 00d2 F8BD pop {r3, r4, r5, r6, r7, pc} 8607 .LVL617: 8608 .L559: 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8609 .loc 1 4003 5 discriminator 1 view .LVU3050 8610 00d4 0220 movs r0, #2 8611 00d6 FCE7 b .L554 8612 .L563: 8613 .align 2 8614 .L562: 8615 00d8 00000000 .word I2C_Slave_ISR_IT 8616 00dc 00000000 .word I2C_DMAAbort 8617 .cfi_endproc 8618 .LFE362: 8620 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8621 .align 1 8622 .global HAL_I2C_Slave_Seq_Transmit_DMA 8623 .syntax unified 8624 .thumb 8625 .thumb_func 8627 HAL_I2C_Slave_Seq_Transmit_DMA: 8628 .LVL618: 8629 .LFB363: 4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8630 .loc 1 4084 1 is_stmt 1 view -0 8631 .cfi_startproc 8632 @ args = 0, pretend = 0, frame = 0 8633 @ frame_needed = 0, uses_anonymous_args = 0 4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8634 .loc 1 4084 1 is_stmt 0 view .LVU3052 8635 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8636 .cfi_def_cfa_offset 24 8637 .cfi_offset 3, -24 8638 .cfi_offset 4, -20 8639 .cfi_offset 5, -16 8640 .cfi_offset 6, -12 8641 .cfi_offset 7, -8 8642 .cfi_offset 14, -4 8643 0002 0446 mov r4, r0 4086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8644 .loc 1 4086 3 is_stmt 1 view .LVU3053 ARM GAS /tmp/ccN54YTb.s page 335 4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8645 .loc 1 4087 3 view .LVU3054 4090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8646 .loc 1 4090 3 view .LVU3055 4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8647 .loc 1 4092 3 view .LVU3056 4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8648 .loc 1 4092 22 is_stmt 0 view .LVU3057 8649 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8650 .LVL619: 4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8651 .loc 1 4092 6 view .LVU3058 8652 0008 00F02800 and r0, r0, #40 8653 000c 2828 cmp r0, #40 8654 000e 40F0BE80 bne .L574 8655 0012 0F46 mov r7, r1 8656 0014 1646 mov r6, r2 8657 0016 1D46 mov r5, r3 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8658 .loc 1 4094 5 is_stmt 1 view .LVU3059 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8659 .loc 1 4094 8 is_stmt 0 view .LVU3060 8660 0018 002A cmp r2, #0 8661 001a 18BF it ne 8662 001c 0029 cmpne r1, #0 8663 001e 4DD0 beq .L578 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8664 .loc 1 4101 5 is_stmt 1 view .LVU3061 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8665 .loc 1 4101 5 view .LVU3062 8666 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8667 .LVL620: 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8668 .loc 1 4101 5 is_stmt 0 view .LVU3063 8669 0024 012B cmp r3, #1 8670 0026 00F0B580 beq .L575 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8671 .loc 1 4101 5 is_stmt 1 discriminator 2 view .LVU3064 8672 002a 0123 movs r3, #1 8673 002c 84F84030 strb r3, [r4, #64] 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8674 .loc 1 4101 5 view .LVU3065 4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8675 .loc 1 4104 5 view .LVU3066 8676 0030 48F20101 movw r1, #32769 8677 .LVL621: 4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8678 .loc 1 4104 5 is_stmt 0 view .LVU3067 8679 0034 2046 mov r0, r4 8680 0036 FFF7FEFF bl I2C_Disable_IRQ 8681 .LVL622: 4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8682 .loc 1 4108 5 is_stmt 1 view .LVU3068 4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8683 .loc 1 4108 13 is_stmt 0 view .LVU3069 8684 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 336 8685 .loc 1 4108 8 view .LVU3070 8686 003e 2A2B cmp r3, #42 8687 0040 41D0 beq .L579 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8688 .loc 1 4133 10 is_stmt 1 view .LVU3071 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8689 .loc 1 4133 18 is_stmt 0 view .LVU3072 8690 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8691 .loc 1 4133 13 view .LVU3073 8692 0046 292B cmp r3, #41 8693 0048 59D0 beq .L580 8694 .L568: 4158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8695 .loc 1 4158 5 is_stmt 1 view .LVU3074 4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8696 .loc 1 4160 5 view .LVU3075 4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8697 .loc 1 4160 21 is_stmt 0 view .LVU3076 8698 004a 2923 movs r3, #41 8699 004c 84F84130 strb r3, [r4, #65] 4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8700 .loc 1 4161 5 is_stmt 1 view .LVU3077 4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8701 .loc 1 4161 21 is_stmt 0 view .LVU3078 8702 0050 2023 movs r3, #32 8703 0052 84F84230 strb r3, [r4, #66] 4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8704 .loc 1 4162 5 is_stmt 1 view .LVU3079 4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8705 .loc 1 4162 21 is_stmt 0 view .LVU3080 8706 0056 0023 movs r3, #0 8707 0058 6364 str r3, [r4, #68] 4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8708 .loc 1 4165 5 is_stmt 1 view .LVU3081 4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8709 .loc 1 4165 9 is_stmt 0 view .LVU3082 8710 005a 2268 ldr r2, [r4] 4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8711 .loc 1 4165 19 view .LVU3083 8712 005c 5368 ldr r3, [r2, #4] 4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8713 .loc 1 4165 25 view .LVU3084 8714 005e 23F40043 bic r3, r3, #32768 8715 0062 5360 str r3, [r2, #4] 4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8716 .loc 1 4168 5 is_stmt 1 view .LVU3085 4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8717 .loc 1 4168 23 is_stmt 0 view .LVU3086 8718 0064 6762 str r7, [r4, #36] 4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8719 .loc 1 4169 5 is_stmt 1 view .LVU3087 4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8720 .loc 1 4169 23 is_stmt 0 view .LVU3088 8721 0066 6685 strh r6, [r4, #42] @ movhi 4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8722 .loc 1 4170 5 is_stmt 1 view .LVU3089 ARM GAS /tmp/ccN54YTb.s page 337 4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8723 .loc 1 4170 29 is_stmt 0 view .LVU3090 8724 0068 638D ldrh r3, [r4, #42] 4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8725 .loc 1 4170 23 view .LVU3091 8726 006a 2385 strh r3, [r4, #40] @ movhi 4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8727 .loc 1 4171 5 is_stmt 1 view .LVU3092 4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8728 .loc 1 4171 23 is_stmt 0 view .LVU3093 8729 006c E562 str r5, [r4, #44] 4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8730 .loc 1 4172 5 is_stmt 1 view .LVU3094 4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8731 .loc 1 4172 23 is_stmt 0 view .LVU3095 8732 006e 4A4B ldr r3, .L581 8733 0070 6363 str r3, [r4, #52] 4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8734 .loc 1 4174 5 is_stmt 1 view .LVU3096 4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8735 .loc 1 4174 13 is_stmt 0 view .LVU3097 8736 0072 A36B ldr r3, [r4, #56] 4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8737 .loc 1 4174 8 view .LVU3098 8738 0074 002B cmp r3, #0 8739 0076 59D0 beq .L569 4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8740 .loc 1 4177 7 is_stmt 1 view .LVU3099 4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8741 .loc 1 4177 38 is_stmt 0 view .LVU3100 8742 0078 484A ldr r2, .L581+4 8743 007a DA63 str r2, [r3, #60] 4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8744 .loc 1 4180 7 is_stmt 1 view .LVU3101 4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8745 .loc 1 4180 11 is_stmt 0 view .LVU3102 8746 007c A36B ldr r3, [r4, #56] 4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8747 .loc 1 4180 39 view .LVU3103 8748 007e 484A ldr r2, .L581+8 8749 0080 DA64 str r2, [r3, #76] 4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8750 .loc 1 4183 7 is_stmt 1 view .LVU3104 4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8751 .loc 1 4183 11 is_stmt 0 view .LVU3105 8752 0082 A26B ldr r2, [r4, #56] 4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8753 .loc 1 4183 42 view .LVU3106 8754 0084 0023 movs r3, #0 8755 0086 1364 str r3, [r2, #64] 4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8756 .loc 1 4184 7 is_stmt 1 view .LVU3107 4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8757 .loc 1 4184 11 is_stmt 0 view .LVU3108 8758 0088 A26B ldr r2, [r4, #56] 4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8759 .loc 1 4184 39 view .LVU3109 ARM GAS /tmp/ccN54YTb.s page 338 8760 008a 1365 str r3, [r2, #80] 4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8761 .loc 1 4187 7 is_stmt 1 view .LVU3110 4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8762 .loc 1 4187 86 is_stmt 0 view .LVU3111 8763 008c 2268 ldr r2, [r4] 4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8764 .loc 1 4187 23 view .LVU3112 8765 008e 238D ldrh r3, [r4, #40] 8766 0090 2832 adds r2, r2, #40 8767 0092 3946 mov r1, r7 8768 0094 A06B ldr r0, [r4, #56] 8769 0096 FFF7FEFF bl HAL_DMA_Start_IT 8770 .LVL623: 4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8771 .loc 1 4205 5 is_stmt 1 view .LVU3113 4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8772 .loc 1 4205 8 is_stmt 0 view .LVU3114 8773 009a 0546 mov r5, r0 8774 .LVL624: 4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8775 .loc 1 4205 8 view .LVU3115 8776 009c 0028 cmp r0, #0 8777 009e 53D0 beq .L570 4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8778 .loc 1 4216 7 is_stmt 1 view .LVU3116 4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8779 .loc 1 4216 23 is_stmt 0 view .LVU3117 8780 00a0 2823 movs r3, #40 8781 00a2 84F84130 strb r3, [r4, #65] 4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8782 .loc 1 4217 7 is_stmt 1 view .LVU3118 4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8783 .loc 1 4217 23 is_stmt 0 view .LVU3119 8784 00a6 0022 movs r2, #0 8785 00a8 84F84220 strb r2, [r4, #66] 4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8786 .loc 1 4220 7 is_stmt 1 view .LVU3120 4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8787 .loc 1 4220 11 is_stmt 0 view .LVU3121 8788 00ac 636C ldr r3, [r4, #68] 4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8789 .loc 1 4220 23 view .LVU3122 8790 00ae 43F01003 orr r3, r3, #16 8791 00b2 6364 str r3, [r4, #68] 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8792 .loc 1 4223 7 is_stmt 1 view .LVU3123 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8793 .loc 1 4223 7 view .LVU3124 8794 00b4 84F84020 strb r2, [r4, #64] 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8795 .loc 1 4223 7 view .LVU3125 4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8796 .loc 1 4225 7 view .LVU3126 4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8797 .loc 1 4225 14 is_stmt 0 view .LVU3127 8798 00b8 0125 movs r5, #1 ARM GAS /tmp/ccN54YTb.s page 339 8799 00ba 69E0 b .L565 8800 .LVL625: 8801 .L578: 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8802 .loc 1 4096 7 is_stmt 1 view .LVU3128 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8803 .loc 1 4096 23 is_stmt 0 view .LVU3129 8804 00bc 4FF40073 mov r3, #512 8805 .LVL626: 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8806 .loc 1 4096 23 view .LVU3130 8807 00c0 6364 str r3, [r4, #68] 4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8808 .loc 1 4097 7 is_stmt 1 view .LVU3131 4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8809 .loc 1 4097 15 is_stmt 0 view .LVU3132 8810 00c2 0125 movs r5, #1 8811 .LVL627: 4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8812 .loc 1 4097 15 view .LVU3133 8813 00c4 64E0 b .L565 8814 .LVL628: 8815 .L579: 4111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8816 .loc 1 4111 7 is_stmt 1 view .LVU3134 8817 00c6 0221 movs r1, #2 8818 00c8 2046 mov r0, r4 8819 00ca FFF7FEFF bl I2C_Disable_IRQ 8820 .LVL629: 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8821 .loc 1 4113 7 view .LVU3135 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8822 .loc 1 4113 16 is_stmt 0 view .LVU3136 8823 00ce 2368 ldr r3, [r4] 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8824 .loc 1 4113 26 view .LVU3137 8825 00d0 1A68 ldr r2, [r3] 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8826 .loc 1 4113 10 view .LVU3138 8827 00d2 12F4004F tst r2, #32768 8828 00d6 B8D0 beq .L568 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8829 .loc 1 4116 9 is_stmt 1 view .LVU3139 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8830 .loc 1 4116 17 is_stmt 0 view .LVU3140 8831 00d8 E26B ldr r2, [r4, #60] 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8832 .loc 1 4116 12 view .LVU3141 8833 00da 002A cmp r2, #0 8834 00dc B5D0 beq .L568 4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8835 .loc 1 4118 11 is_stmt 1 view .LVU3142 4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8836 .loc 1 4118 25 is_stmt 0 view .LVU3143 8837 00de 1A68 ldr r2, [r3] 4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8838 .loc 1 4118 31 view .LVU3144 ARM GAS /tmp/ccN54YTb.s page 340 8839 00e0 22F40042 bic r2, r2, #32768 8840 00e4 1A60 str r2, [r3] 4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8841 .loc 1 4122 11 is_stmt 1 view .LVU3145 4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8842 .loc 1 4122 15 is_stmt 0 view .LVU3146 8843 00e6 E36B ldr r3, [r4, #60] 4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8844 .loc 1 4122 43 view .LVU3147 8845 00e8 2E4A ldr r2, .L581+12 8846 00ea 1A65 str r2, [r3, #80] 4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8847 .loc 1 4125 11 is_stmt 1 view .LVU3148 4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8848 .loc 1 4125 15 is_stmt 0 view .LVU3149 8849 00ec E06B ldr r0, [r4, #60] 8850 00ee FFF7FEFF bl HAL_DMA_Abort_IT 8851 .LVL630: 4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8852 .loc 1 4125 14 discriminator 1 view .LVU3150 8853 00f2 0028 cmp r0, #0 8854 00f4 A9D0 beq .L568 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8855 .loc 1 4128 13 is_stmt 1 view .LVU3151 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8856 .loc 1 4128 17 is_stmt 0 view .LVU3152 8857 00f6 E06B ldr r0, [r4, #60] 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8858 .loc 1 4128 25 view .LVU3153 8859 00f8 036D ldr r3, [r0, #80] 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8860 .loc 1 4128 13 view .LVU3154 8861 00fa 9847 blx r3 8862 .LVL631: 8863 00fc A5E7 b .L568 8864 .L580: 4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8865 .loc 1 4135 7 is_stmt 1 view .LVU3155 4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8866 .loc 1 4135 16 is_stmt 0 view .LVU3156 8867 00fe 2368 ldr r3, [r4] 4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8868 .loc 1 4135 26 view .LVU3157 8869 0100 1A68 ldr r2, [r3] 4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8870 .loc 1 4135 10 view .LVU3158 8871 0102 12F4804F tst r2, #16384 8872 0106 A0D0 beq .L568 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8873 .loc 1 4137 9 is_stmt 1 view .LVU3159 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8874 .loc 1 4137 23 is_stmt 0 view .LVU3160 8875 0108 1A68 ldr r2, [r3] 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8876 .loc 1 4137 29 view .LVU3161 8877 010a 22F48042 bic r2, r2, #16384 8878 010e 1A60 str r2, [r3] ARM GAS /tmp/ccN54YTb.s page 341 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8879 .loc 1 4140 9 is_stmt 1 view .LVU3162 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8880 .loc 1 4140 17 is_stmt 0 view .LVU3163 8881 0110 A36B ldr r3, [r4, #56] 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8882 .loc 1 4140 12 view .LVU3164 8883 0112 002B cmp r3, #0 8884 0114 99D0 beq .L568 4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8885 .loc 1 4144 11 is_stmt 1 view .LVU3165 4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8886 .loc 1 4144 43 is_stmt 0 view .LVU3166 8887 0116 234A ldr r2, .L581+12 8888 0118 1A65 str r2, [r3, #80] 4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8889 .loc 1 4147 11 is_stmt 1 view .LVU3167 4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8890 .loc 1 4147 15 is_stmt 0 view .LVU3168 8891 011a A06B ldr r0, [r4, #56] 8892 011c FFF7FEFF bl HAL_DMA_Abort_IT 8893 .LVL632: 4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8894 .loc 1 4147 14 discriminator 1 view .LVU3169 8895 0120 0028 cmp r0, #0 8896 0122 92D0 beq .L568 4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8897 .loc 1 4150 13 is_stmt 1 view .LVU3170 4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8898 .loc 1 4150 17 is_stmt 0 view .LVU3171 8899 0124 A06B ldr r0, [r4, #56] 4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8900 .loc 1 4150 25 view .LVU3172 8901 0126 036D ldr r3, [r0, #80] 4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8902 .loc 1 4150 13 view .LVU3173 8903 0128 9847 blx r3 8904 .LVL633: 8905 012a 8EE7 b .L568 8906 .L569: 4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8907 .loc 1 4193 7 is_stmt 1 view .LVU3174 4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8908 .loc 1 4193 23 is_stmt 0 view .LVU3175 8909 012c 2823 movs r3, #40 8910 012e 84F84130 strb r3, [r4, #65] 4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8911 .loc 1 4194 7 is_stmt 1 view .LVU3176 4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8912 .loc 1 4194 23 is_stmt 0 view .LVU3177 8913 0132 0022 movs r2, #0 8914 0134 84F84220 strb r2, [r4, #66] 4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8915 .loc 1 4197 7 is_stmt 1 view .LVU3178 4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8916 .loc 1 4197 11 is_stmt 0 view .LVU3179 8917 0138 636C ldr r3, [r4, #68] ARM GAS /tmp/ccN54YTb.s page 342 4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8918 .loc 1 4197 23 view .LVU3180 8919 013a 43F08003 orr r3, r3, #128 8920 013e 6364 str r3, [r4, #68] 4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8921 .loc 1 4200 7 is_stmt 1 view .LVU3181 4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8922 .loc 1 4200 7 view .LVU3182 8923 0140 84F84020 strb r2, [r4, #64] 4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8924 .loc 1 4200 7 view .LVU3183 4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8925 .loc 1 4202 7 view .LVU3184 4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8926 .loc 1 4202 14 is_stmt 0 view .LVU3185 8927 0144 0125 movs r5, #1 8928 .LVL634: 4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8929 .loc 1 4202 14 view .LVU3186 8930 0146 23E0 b .L565 8931 .LVL635: 8932 .L570: 4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8933 .loc 1 4208 7 is_stmt 1 view .LVU3187 4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8934 .loc 1 4208 11 is_stmt 0 view .LVU3188 8935 0148 638D ldrh r3, [r4, #42] 8936 014a 9BB2 uxth r3, r3 4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8937 .loc 1 4208 30 view .LVU3189 8938 014c 228D ldrh r2, [r4, #40] 4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8939 .loc 1 4208 23 view .LVU3190 8940 014e 9B1A subs r3, r3, r2 8941 0150 9BB2 uxth r3, r3 8942 0152 6385 strh r3, [r4, #42] @ movhi 4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8943 .loc 1 4211 7 is_stmt 1 view .LVU3191 4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8944 .loc 1 4211 22 is_stmt 0 view .LVU3192 8945 0154 0023 movs r3, #0 8946 0156 2385 strh r3, [r4, #40] @ movhi 4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8947 .loc 1 4228 5 is_stmt 1 view .LVU3193 4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8948 .loc 1 4228 11 is_stmt 0 view .LVU3194 8949 0158 2268 ldr r2, [r4] 8950 015a 9369 ldr r3, [r2, #24] 8951 015c 03F00803 and r3, r3, #8 8952 .LVL636: 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8953 .loc 1 4229 5 is_stmt 1 view .LVU3195 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8954 .loc 1 4229 10 is_stmt 0 view .LVU3196 8955 0160 9169 ldr r1, [r2, #24] 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8956 .loc 1 4229 8 view .LVU3197 ARM GAS /tmp/ccN54YTb.s page 343 8957 0162 11F4803F tst r1, #65536 8958 0166 0DD1 bne .L572 8959 .LVL637: 8960 .L573: 4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8961 .loc 1 4237 5 is_stmt 1 view .LVU3198 4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8962 .loc 1 4237 5 view .LVU3199 8963 0168 0023 movs r3, #0 8964 016a 84F84030 strb r3, [r4, #64] 4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8965 .loc 1 4237 5 view .LVU3200 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8966 .loc 1 4240 5 view .LVU3201 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8967 .loc 1 4240 9 is_stmt 0 view .LVU3202 8968 016e 2268 ldr r2, [r4] 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8969 .loc 1 4240 19 view .LVU3203 8970 0170 1368 ldr r3, [r2] 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8971 .loc 1 4240 25 view .LVU3204 8972 0172 43F48043 orr r3, r3, #16384 8973 0176 1360 str r3, [r2] 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8974 .loc 1 4246 5 is_stmt 1 view .LVU3205 8975 0178 4FF40041 mov r1, #32768 8976 017c 2046 mov r0, r4 8977 .LVL638: 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8978 .loc 1 4246 5 is_stmt 0 view .LVU3206 8979 017e FFF7FEFF bl I2C_Enable_IRQ 8980 .LVL639: 4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8981 .loc 1 4248 5 is_stmt 1 view .LVU3207 4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8982 .loc 1 4248 12 is_stmt 0 view .LVU3208 8983 0182 05E0 b .L565 8984 .LVL640: 8985 .L572: 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8986 .loc 1 4229 54 discriminator 1 view .LVU3209 8987 0184 002B cmp r3, #0 8988 0186 EFD0 beq .L573 4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8989 .loc 1 4233 7 is_stmt 1 view .LVU3210 8990 0188 0823 movs r3, #8 8991 .LVL641: 4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8992 .loc 1 4233 7 is_stmt 0 view .LVU3211 8993 018a D361 str r3, [r2, #28] 8994 018c ECE7 b .L573 8995 .LVL642: 8996 .L574: 4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8997 .loc 1 4252 12 view .LVU3212 8998 018e 0125 movs r5, #1 ARM GAS /tmp/ccN54YTb.s page 344 8999 .LVL643: 9000 .L565: 4254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9001 .loc 1 4254 1 view .LVU3213 9002 0190 2846 mov r0, r5 9003 0192 F8BD pop {r3, r4, r5, r6, r7, pc} 9004 .LVL644: 9005 .L575: 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9006 .loc 1 4101 5 discriminator 1 view .LVU3214 9007 0194 0225 movs r5, #2 9008 .LVL645: 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9009 .loc 1 4101 5 discriminator 1 view .LVU3215 9010 0196 FBE7 b .L565 9011 .L582: 9012 .align 2 9013 .L581: 9014 0198 00000000 .word I2C_Slave_ISR_DMA 9015 019c 00000000 .word I2C_DMASlaveTransmitCplt 9016 01a0 00000000 .word I2C_DMAError 9017 01a4 00000000 .word I2C_DMAAbort 9018 .cfi_endproc 9019 .LFE363: 9021 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 9022 .align 1 9023 .global HAL_I2C_Slave_Seq_Receive_IT 9024 .syntax unified 9025 .thumb 9026 .thumb_func 9028 HAL_I2C_Slave_Seq_Receive_IT: 9029 .LVL646: 9030 .LFB364: 4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9031 .loc 1 4268 1 is_stmt 1 view -0 9032 .cfi_startproc 9033 @ args = 0, pretend = 0, frame = 0 9034 @ frame_needed = 0, uses_anonymous_args = 0 4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9035 .loc 1 4268 1 is_stmt 0 view .LVU3217 9036 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9037 .cfi_def_cfa_offset 24 9038 .cfi_offset 3, -24 9039 .cfi_offset 4, -20 9040 .cfi_offset 5, -16 9041 .cfi_offset 6, -12 9042 .cfi_offset 7, -8 9043 .cfi_offset 14, -4 9044 0002 0446 mov r4, r0 4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9045 .loc 1 4270 3 is_stmt 1 view .LVU3218 4273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9046 .loc 1 4273 3 view .LVU3219 4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9047 .loc 1 4275 3 view .LVU3220 4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9048 .loc 1 4275 22 is_stmt 0 view .LVU3221 ARM GAS /tmp/ccN54YTb.s page 345 9049 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9050 .LVL647: 4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9051 .loc 1 4275 6 view .LVU3222 9052 0008 00F02800 and r0, r0, #40 9053 000c 2828 cmp r0, #40 9054 000e 5FD1 bne .L588 9055 0010 0F46 mov r7, r1 9056 0012 1646 mov r6, r2 9057 0014 1D46 mov r5, r3 4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9058 .loc 1 4277 5 is_stmt 1 view .LVU3223 4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9059 .loc 1 4277 8 is_stmt 0 view .LVU3224 9060 0016 002A cmp r2, #0 9061 0018 18BF it ne 9062 001a 0029 cmpne r1, #0 9063 001c 04D1 bne .L585 4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9064 .loc 1 4279 7 is_stmt 1 view .LVU3225 4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9065 .loc 1 4279 23 is_stmt 0 view .LVU3226 9066 001e 4FF40073 mov r3, #512 9067 .LVL648: 4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9068 .loc 1 4279 23 view .LVU3227 9069 0022 6364 str r3, [r4, #68] 4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9070 .loc 1 4280 7 is_stmt 1 view .LVU3228 4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9071 .loc 1 4280 15 is_stmt 0 view .LVU3229 9072 0024 0120 movs r0, #1 9073 0026 54E0 b .L584 9074 .LVL649: 9075 .L585: 4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9076 .loc 1 4284 5 is_stmt 1 view .LVU3230 9077 0028 48F20201 movw r1, #32770 9078 .LVL650: 4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9079 .loc 1 4284 5 is_stmt 0 view .LVU3231 9080 002c 2046 mov r0, r4 9081 002e FFF7FEFF bl I2C_Disable_IRQ 9082 .LVL651: 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9083 .loc 1 4287 5 is_stmt 1 view .LVU3232 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9084 .loc 1 4287 5 view .LVU3233 9085 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9086 0036 012B cmp r3, #1 9087 0038 4CD0 beq .L589 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9088 .loc 1 4287 5 discriminator 2 view .LVU3234 9089 003a 0123 movs r3, #1 9090 003c 84F84030 strb r3, [r4, #64] 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9091 .loc 1 4287 5 view .LVU3235 ARM GAS /tmp/ccN54YTb.s page 346 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9092 .loc 1 4291 5 view .LVU3236 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9093 .loc 1 4291 13 is_stmt 0 view .LVU3237 9094 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9095 .loc 1 4291 8 view .LVU3238 9096 0044 292B cmp r3, #41 9097 0046 28D0 beq .L591 9098 .L586: 4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9099 .loc 1 4317 5 is_stmt 1 view .LVU3239 4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9100 .loc 1 4317 21 is_stmt 0 view .LVU3240 9101 0048 2A23 movs r3, #42 9102 004a 84F84130 strb r3, [r4, #65] 4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9103 .loc 1 4318 5 is_stmt 1 view .LVU3241 4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9104 .loc 1 4318 21 is_stmt 0 view .LVU3242 9105 004e 2023 movs r3, #32 9106 0050 84F84230 strb r3, [r4, #66] 4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9107 .loc 1 4319 5 is_stmt 1 view .LVU3243 4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9108 .loc 1 4319 21 is_stmt 0 view .LVU3244 9109 0054 0023 movs r3, #0 9110 0056 6364 str r3, [r4, #68] 4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9111 .loc 1 4322 5 is_stmt 1 view .LVU3245 4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9112 .loc 1 4322 9 is_stmt 0 view .LVU3246 9113 0058 2268 ldr r2, [r4] 4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9114 .loc 1 4322 19 view .LVU3247 9115 005a 5368 ldr r3, [r2, #4] 4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9116 .loc 1 4322 25 view .LVU3248 9117 005c 23F40043 bic r3, r3, #32768 9118 0060 5360 str r3, [r2, #4] 4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 9119 .loc 1 4325 5 is_stmt 1 view .LVU3249 4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 9120 .loc 1 4325 23 is_stmt 0 view .LVU3250 9121 0062 6762 str r7, [r4, #36] 4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9122 .loc 1 4326 5 is_stmt 1 view .LVU3251 4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9123 .loc 1 4326 23 is_stmt 0 view .LVU3252 9124 0064 6685 strh r6, [r4, #42] @ movhi 4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9125 .loc 1 4327 5 is_stmt 1 view .LVU3253 4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9126 .loc 1 4327 29 is_stmt 0 view .LVU3254 9127 0066 638D ldrh r3, [r4, #42] 4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9128 .loc 1 4327 23 view .LVU3255 ARM GAS /tmp/ccN54YTb.s page 347 9129 0068 2385 strh r3, [r4, #40] @ movhi 4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9130 .loc 1 4328 5 is_stmt 1 view .LVU3256 4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9131 .loc 1 4328 23 is_stmt 0 view .LVU3257 9132 006a E562 str r5, [r4, #44] 4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9133 .loc 1 4329 5 is_stmt 1 view .LVU3258 4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9134 .loc 1 4329 23 is_stmt 0 view .LVU3259 9135 006c 1A4B ldr r3, .L592 9136 006e 6363 str r3, [r4, #52] 4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9137 .loc 1 4331 5 is_stmt 1 view .LVU3260 4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9138 .loc 1 4331 11 is_stmt 0 view .LVU3261 9139 0070 2268 ldr r2, [r4] 9140 0072 9369 ldr r3, [r2, #24] 9141 0074 03F00803 and r3, r3, #8 9142 .LVL652: 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9143 .loc 1 4332 5 is_stmt 1 view .LVU3262 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9144 .loc 1 4332 10 is_stmt 0 view .LVU3263 9145 0078 9169 ldr r1, [r2, #24] 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9146 .loc 1 4332 8 view .LVU3264 9147 007a 11F4803F tst r1, #65536 9148 007e 02D1 bne .L587 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9149 .loc 1 4332 55 discriminator 1 view .LVU3265 9150 0080 0BB1 cbz r3, .L587 4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9151 .loc 1 4336 7 is_stmt 1 view .LVU3266 9152 0082 0823 movs r3, #8 9153 .LVL653: 4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9154 .loc 1 4336 7 is_stmt 0 view .LVU3267 9155 0084 D361 str r3, [r2, #28] 9156 .L587: 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9157 .loc 1 4340 5 is_stmt 1 view .LVU3268 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9158 .loc 1 4340 5 view .LVU3269 9159 0086 0025 movs r5, #0 9160 .LVL654: 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9161 .loc 1 4340 5 is_stmt 0 view .LVU3270 9162 0088 84F84050 strb r5, [r4, #64] 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9163 .loc 1 4340 5 is_stmt 1 view .LVU3271 4346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9164 .loc 1 4346 5 view .LVU3272 9165 008c 48F20201 movw r1, #32770 9166 0090 2046 mov r0, r4 9167 0092 FFF7FEFF bl I2C_Enable_IRQ 9168 .LVL655: ARM GAS /tmp/ccN54YTb.s page 348 4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9169 .loc 1 4348 5 view .LVU3273 4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9170 .loc 1 4348 12 is_stmt 0 view .LVU3274 9171 0096 2846 mov r0, r5 9172 0098 1BE0 b .L584 9173 .LVL656: 9174 .L591: 4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9175 .loc 1 4294 7 is_stmt 1 view .LVU3275 9176 009a 0121 movs r1, #1 9177 009c 2046 mov r0, r4 9178 009e FFF7FEFF bl I2C_Disable_IRQ 9179 .LVL657: 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9180 .loc 1 4296 7 view .LVU3276 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9181 .loc 1 4296 16 is_stmt 0 view .LVU3277 9182 00a2 2368 ldr r3, [r4] 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9183 .loc 1 4296 26 view .LVU3278 9184 00a4 1A68 ldr r2, [r3] 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9185 .loc 1 4296 10 view .LVU3279 9186 00a6 12F4804F tst r2, #16384 9187 00aa CDD0 beq .L586 4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9188 .loc 1 4298 9 is_stmt 1 view .LVU3280 4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9189 .loc 1 4298 23 is_stmt 0 view .LVU3281 9190 00ac 1A68 ldr r2, [r3] 4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9191 .loc 1 4298 29 view .LVU3282 9192 00ae 22F48042 bic r2, r2, #16384 9193 00b2 1A60 str r2, [r3] 4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9194 .loc 1 4301 9 is_stmt 1 view .LVU3283 4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9195 .loc 1 4301 17 is_stmt 0 view .LVU3284 9196 00b4 A36B ldr r3, [r4, #56] 4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9197 .loc 1 4301 12 view .LVU3285 9198 00b6 002B cmp r3, #0 9199 00b8 C6D0 beq .L586 4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9200 .loc 1 4305 11 is_stmt 1 view .LVU3286 4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9201 .loc 1 4305 43 is_stmt 0 view .LVU3287 9202 00ba 084A ldr r2, .L592+4 9203 00bc 1A65 str r2, [r3, #80] 4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9204 .loc 1 4308 11 is_stmt 1 view .LVU3288 4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9205 .loc 1 4308 15 is_stmt 0 view .LVU3289 9206 00be A06B ldr r0, [r4, #56] 9207 00c0 FFF7FEFF bl HAL_DMA_Abort_IT 9208 .LVL658: ARM GAS /tmp/ccN54YTb.s page 349 4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9209 .loc 1 4308 14 discriminator 1 view .LVU3290 9210 00c4 0028 cmp r0, #0 9211 00c6 BFD0 beq .L586 4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9212 .loc 1 4311 13 is_stmt 1 view .LVU3291 4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9213 .loc 1 4311 17 is_stmt 0 view .LVU3292 9214 00c8 A06B ldr r0, [r4, #56] 4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9215 .loc 1 4311 25 view .LVU3293 9216 00ca 036D ldr r3, [r0, #80] 4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9217 .loc 1 4311 13 view .LVU3294 9218 00cc 9847 blx r3 9219 .LVL659: 9220 00ce BBE7 b .L586 9221 .LVL660: 9222 .L588: 4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9223 .loc 1 4352 12 view .LVU3295 9224 00d0 0120 movs r0, #1 9225 .LVL661: 9226 .L584: 4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9227 .loc 1 4354 1 view .LVU3296 9228 00d2 F8BD pop {r3, r4, r5, r6, r7, pc} 9229 .LVL662: 9230 .L589: 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9231 .loc 1 4287 5 discriminator 1 view .LVU3297 9232 00d4 0220 movs r0, #2 9233 00d6 FCE7 b .L584 9234 .L593: 9235 .align 2 9236 .L592: 9237 00d8 00000000 .word I2C_Slave_ISR_IT 9238 00dc 00000000 .word I2C_DMAAbort 9239 .cfi_endproc 9240 .LFE364: 9242 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9243 .align 1 9244 .global HAL_I2C_Slave_Seq_Receive_DMA 9245 .syntax unified 9246 .thumb 9247 .thumb_func 9249 HAL_I2C_Slave_Seq_Receive_DMA: 9250 .LVL663: 9251 .LFB365: 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9252 .loc 1 4368 1 is_stmt 1 view -0 9253 .cfi_startproc 9254 @ args = 0, pretend = 0, frame = 0 9255 @ frame_needed = 0, uses_anonymous_args = 0 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9256 .loc 1 4368 1 is_stmt 0 view .LVU3299 9257 0000 F8B5 push {r3, r4, r5, r6, r7, lr} ARM GAS /tmp/ccN54YTb.s page 350 9258 .cfi_def_cfa_offset 24 9259 .cfi_offset 3, -24 9260 .cfi_offset 4, -20 9261 .cfi_offset 5, -16 9262 .cfi_offset 6, -12 9263 .cfi_offset 7, -8 9264 .cfi_offset 14, -4 9265 0002 0446 mov r4, r0 4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9266 .loc 1 4370 3 is_stmt 1 view .LVU3300 4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9267 .loc 1 4371 3 view .LVU3301 4374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9268 .loc 1 4374 3 view .LVU3302 4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9269 .loc 1 4376 3 view .LVU3303 4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9270 .loc 1 4376 22 is_stmt 0 view .LVU3304 9271 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9272 .LVL664: 4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9273 .loc 1 4376 6 view .LVU3305 9274 0008 00F02800 and r0, r0, #40 9275 000c 2828 cmp r0, #40 9276 000e 40F0BE80 bne .L604 9277 0012 0F46 mov r7, r1 9278 0014 1646 mov r6, r2 9279 0016 1D46 mov r5, r3 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9280 .loc 1 4378 5 is_stmt 1 view .LVU3306 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9281 .loc 1 4378 8 is_stmt 0 view .LVU3307 9282 0018 002A cmp r2, #0 9283 001a 18BF it ne 9284 001c 0029 cmpne r1, #0 9285 001e 04D1 bne .L596 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9286 .loc 1 4380 7 is_stmt 1 view .LVU3308 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9287 .loc 1 4380 23 is_stmt 0 view .LVU3309 9288 0020 4FF40073 mov r3, #512 9289 .LVL665: 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9290 .loc 1 4380 23 view .LVU3310 9291 0024 6364 str r3, [r4, #68] 4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9292 .loc 1 4381 7 is_stmt 1 view .LVU3311 4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9293 .loc 1 4381 15 is_stmt 0 view .LVU3312 9294 0026 0125 movs r5, #1 9295 .LVL666: 4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9296 .loc 1 4381 15 view .LVU3313 9297 0028 B2E0 b .L595 9298 .LVL667: 9299 .L596: 4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 351 9300 .loc 1 4385 5 is_stmt 1 view .LVU3314 9301 002a 48F20201 movw r1, #32770 9302 .LVL668: 4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9303 .loc 1 4385 5 is_stmt 0 view .LVU3315 9304 002e 2046 mov r0, r4 9305 0030 FFF7FEFF bl I2C_Disable_IRQ 9306 .LVL669: 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9307 .loc 1 4388 5 is_stmt 1 view .LVU3316 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9308 .loc 1 4388 5 view .LVU3317 9309 0034 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9310 0038 012B cmp r3, #1 9311 003a 00F0AB80 beq .L605 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9312 .loc 1 4388 5 discriminator 2 view .LVU3318 9313 003e 0123 movs r3, #1 9314 0040 84F84030 strb r3, [r4, #64] 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9315 .loc 1 4388 5 view .LVU3319 4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9316 .loc 1 4392 5 view .LVU3320 4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9317 .loc 1 4392 13 is_stmt 0 view .LVU3321 9318 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9319 .loc 1 4392 8 view .LVU3322 9320 0048 292B cmp r3, #41 9321 004a 3CD0 beq .L608 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9322 .loc 1 4417 10 is_stmt 1 view .LVU3323 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9323 .loc 1 4417 18 is_stmt 0 view .LVU3324 9324 004c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9325 .loc 1 4417 13 view .LVU3325 9326 0050 2A2B cmp r3, #42 9327 0052 54D0 beq .L609 9328 .L598: 4442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9329 .loc 1 4442 5 is_stmt 1 view .LVU3326 4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9330 .loc 1 4444 5 view .LVU3327 4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9331 .loc 1 4444 21 is_stmt 0 view .LVU3328 9332 0054 2A23 movs r3, #42 9333 0056 84F84130 strb r3, [r4, #65] 4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9334 .loc 1 4445 5 is_stmt 1 view .LVU3329 4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9335 .loc 1 4445 21 is_stmt 0 view .LVU3330 9336 005a 2023 movs r3, #32 9337 005c 84F84230 strb r3, [r4, #66] 4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9338 .loc 1 4446 5 is_stmt 1 view .LVU3331 4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 352 9339 .loc 1 4446 21 is_stmt 0 view .LVU3332 9340 0060 0023 movs r3, #0 9341 0062 6364 str r3, [r4, #68] 4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9342 .loc 1 4449 5 is_stmt 1 view .LVU3333 4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9343 .loc 1 4449 9 is_stmt 0 view .LVU3334 9344 0064 2268 ldr r2, [r4] 4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9345 .loc 1 4449 19 view .LVU3335 9346 0066 5368 ldr r3, [r2, #4] 4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9347 .loc 1 4449 25 view .LVU3336 9348 0068 23F40043 bic r3, r3, #32768 9349 006c 5360 str r3, [r2, #4] 4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 9350 .loc 1 4452 5 is_stmt 1 view .LVU3337 4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 9351 .loc 1 4452 23 is_stmt 0 view .LVU3338 9352 006e 6762 str r7, [r4, #36] 4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9353 .loc 1 4453 5 is_stmt 1 view .LVU3339 4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9354 .loc 1 4453 23 is_stmt 0 view .LVU3340 9355 0070 6685 strh r6, [r4, #42] @ movhi 4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9356 .loc 1 4454 5 is_stmt 1 view .LVU3341 4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9357 .loc 1 4454 29 is_stmt 0 view .LVU3342 9358 0072 638D ldrh r3, [r4, #42] 4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9359 .loc 1 4454 23 view .LVU3343 9360 0074 2385 strh r3, [r4, #40] @ movhi 4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9361 .loc 1 4455 5 is_stmt 1 view .LVU3344 4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9362 .loc 1 4455 23 is_stmt 0 view .LVU3345 9363 0076 E562 str r5, [r4, #44] 4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9364 .loc 1 4456 5 is_stmt 1 view .LVU3346 4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9365 .loc 1 4456 23 is_stmt 0 view .LVU3347 9366 0078 474B ldr r3, .L610 9367 007a 6363 str r3, [r4, #52] 4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9368 .loc 1 4458 5 is_stmt 1 view .LVU3348 4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9369 .loc 1 4458 13 is_stmt 0 view .LVU3349 9370 007c E36B ldr r3, [r4, #60] 4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9371 .loc 1 4458 8 view .LVU3350 9372 007e 002B cmp r3, #0 9373 0080 54D0 beq .L599 4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9374 .loc 1 4461 7 is_stmt 1 view .LVU3351 4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9375 .loc 1 4461 38 is_stmt 0 view .LVU3352 ARM GAS /tmp/ccN54YTb.s page 353 9376 0082 464A ldr r2, .L610+4 9377 0084 DA63 str r2, [r3, #60] 4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9378 .loc 1 4464 7 is_stmt 1 view .LVU3353 4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9379 .loc 1 4464 11 is_stmt 0 view .LVU3354 9380 0086 E36B ldr r3, [r4, #60] 4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9381 .loc 1 4464 39 view .LVU3355 9382 0088 454A ldr r2, .L610+8 9383 008a DA64 str r2, [r3, #76] 4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9384 .loc 1 4467 7 is_stmt 1 view .LVU3356 4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9385 .loc 1 4467 11 is_stmt 0 view .LVU3357 9386 008c E26B ldr r2, [r4, #60] 4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9387 .loc 1 4467 42 view .LVU3358 9388 008e 0023 movs r3, #0 9389 0090 1364 str r3, [r2, #64] 4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9390 .loc 1 4468 7 is_stmt 1 view .LVU3359 4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9391 .loc 1 4468 11 is_stmt 0 view .LVU3360 9392 0092 E26B ldr r2, [r4, #60] 4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9393 .loc 1 4468 39 view .LVU3361 9394 0094 1365 str r3, [r2, #80] 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9395 .loc 1 4471 7 is_stmt 1 view .LVU3362 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9396 .loc 1 4471 69 is_stmt 0 view .LVU3363 9397 0096 2168 ldr r1, [r4] 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9398 .loc 1 4471 23 view .LVU3364 9399 0098 238D ldrh r3, [r4, #40] 9400 009a 3A46 mov r2, r7 9401 009c 2431 adds r1, r1, #36 9402 009e E06B ldr r0, [r4, #60] 9403 00a0 FFF7FEFF bl HAL_DMA_Start_IT 9404 .LVL670: 4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9405 .loc 1 4489 5 is_stmt 1 view .LVU3365 4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9406 .loc 1 4489 8 is_stmt 0 view .LVU3366 9407 00a4 0546 mov r5, r0 9408 .LVL671: 4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9409 .loc 1 4489 8 view .LVU3367 9410 00a6 0028 cmp r0, #0 9411 00a8 4ED0 beq .L600 4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9412 .loc 1 4500 7 is_stmt 1 view .LVU3368 4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9413 .loc 1 4500 23 is_stmt 0 view .LVU3369 9414 00aa 2823 movs r3, #40 9415 00ac 84F84130 strb r3, [r4, #65] ARM GAS /tmp/ccN54YTb.s page 354 4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9416 .loc 1 4501 7 is_stmt 1 view .LVU3370 4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9417 .loc 1 4501 23 is_stmt 0 view .LVU3371 9418 00b0 0022 movs r2, #0 9419 00b2 84F84220 strb r2, [r4, #66] 4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9420 .loc 1 4504 7 is_stmt 1 view .LVU3372 4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9421 .loc 1 4504 11 is_stmt 0 view .LVU3373 9422 00b6 636C ldr r3, [r4, #68] 4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9423 .loc 1 4504 23 view .LVU3374 9424 00b8 43F01003 orr r3, r3, #16 9425 00bc 6364 str r3, [r4, #68] 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9426 .loc 1 4507 7 is_stmt 1 view .LVU3375 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9427 .loc 1 4507 7 view .LVU3376 9428 00be 84F84020 strb r2, [r4, #64] 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9429 .loc 1 4507 7 view .LVU3377 4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9430 .loc 1 4509 7 view .LVU3378 4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9431 .loc 1 4509 14 is_stmt 0 view .LVU3379 9432 00c2 0125 movs r5, #1 9433 00c4 64E0 b .L595 9434 .LVL672: 9435 .L608: 4395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9436 .loc 1 4395 7 is_stmt 1 view .LVU3380 9437 00c6 0121 movs r1, #1 9438 00c8 2046 mov r0, r4 9439 00ca FFF7FEFF bl I2C_Disable_IRQ 9440 .LVL673: 4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9441 .loc 1 4397 7 view .LVU3381 4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9442 .loc 1 4397 16 is_stmt 0 view .LVU3382 9443 00ce 2368 ldr r3, [r4] 4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9444 .loc 1 4397 26 view .LVU3383 9445 00d0 1A68 ldr r2, [r3] 4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9446 .loc 1 4397 10 view .LVU3384 9447 00d2 12F4804F tst r2, #16384 9448 00d6 BDD0 beq .L598 4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9449 .loc 1 4400 9 is_stmt 1 view .LVU3385 4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9450 .loc 1 4400 17 is_stmt 0 view .LVU3386 9451 00d8 A26B ldr r2, [r4, #56] 4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9452 .loc 1 4400 12 view .LVU3387 9453 00da 002A cmp r2, #0 9454 00dc BAD0 beq .L598 ARM GAS /tmp/ccN54YTb.s page 355 4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9455 .loc 1 4402 11 is_stmt 1 view .LVU3388 4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9456 .loc 1 4402 25 is_stmt 0 view .LVU3389 9457 00de 1A68 ldr r2, [r3] 4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9458 .loc 1 4402 31 view .LVU3390 9459 00e0 22F48042 bic r2, r2, #16384 9460 00e4 1A60 str r2, [r3] 4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9461 .loc 1 4406 11 is_stmt 1 view .LVU3391 4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9462 .loc 1 4406 15 is_stmt 0 view .LVU3392 9463 00e6 A36B ldr r3, [r4, #56] 4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9464 .loc 1 4406 43 view .LVU3393 9465 00e8 2E4A ldr r2, .L610+12 9466 00ea 1A65 str r2, [r3, #80] 4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9467 .loc 1 4409 11 is_stmt 1 view .LVU3394 4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9468 .loc 1 4409 15 is_stmt 0 view .LVU3395 9469 00ec A06B ldr r0, [r4, #56] 9470 00ee FFF7FEFF bl HAL_DMA_Abort_IT 9471 .LVL674: 4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9472 .loc 1 4409 14 discriminator 1 view .LVU3396 9473 00f2 0028 cmp r0, #0 9474 00f4 AED0 beq .L598 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9475 .loc 1 4412 13 is_stmt 1 view .LVU3397 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9476 .loc 1 4412 17 is_stmt 0 view .LVU3398 9477 00f6 A06B ldr r0, [r4, #56] 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9478 .loc 1 4412 25 view .LVU3399 9479 00f8 036D ldr r3, [r0, #80] 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9480 .loc 1 4412 13 view .LVU3400 9481 00fa 9847 blx r3 9482 .LVL675: 9483 00fc AAE7 b .L598 9484 .L609: 4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9485 .loc 1 4419 7 is_stmt 1 view .LVU3401 4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9486 .loc 1 4419 16 is_stmt 0 view .LVU3402 9487 00fe 2368 ldr r3, [r4] 4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9488 .loc 1 4419 26 view .LVU3403 9489 0100 1A68 ldr r2, [r3] 4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9490 .loc 1 4419 10 view .LVU3404 9491 0102 12F4004F tst r2, #32768 9492 0106 A5D0 beq .L598 4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9493 .loc 1 4421 9 is_stmt 1 view .LVU3405 ARM GAS /tmp/ccN54YTb.s page 356 4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9494 .loc 1 4421 23 is_stmt 0 view .LVU3406 9495 0108 1A68 ldr r2, [r3] 4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9496 .loc 1 4421 29 view .LVU3407 9497 010a 22F40042 bic r2, r2, #32768 9498 010e 1A60 str r2, [r3] 4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9499 .loc 1 4424 9 is_stmt 1 view .LVU3408 4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9500 .loc 1 4424 17 is_stmt 0 view .LVU3409 9501 0110 E36B ldr r3, [r4, #60] 4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9502 .loc 1 4424 12 view .LVU3410 9503 0112 002B cmp r3, #0 9504 0114 9ED0 beq .L598 4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9505 .loc 1 4428 11 is_stmt 1 view .LVU3411 4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9506 .loc 1 4428 43 is_stmt 0 view .LVU3412 9507 0116 234A ldr r2, .L610+12 9508 0118 1A65 str r2, [r3, #80] 4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9509 .loc 1 4431 11 is_stmt 1 view .LVU3413 4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9510 .loc 1 4431 15 is_stmt 0 view .LVU3414 9511 011a E06B ldr r0, [r4, #60] 9512 011c FFF7FEFF bl HAL_DMA_Abort_IT 9513 .LVL676: 4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9514 .loc 1 4431 14 discriminator 1 view .LVU3415 9515 0120 0028 cmp r0, #0 9516 0122 97D0 beq .L598 4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9517 .loc 1 4434 13 is_stmt 1 view .LVU3416 4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9518 .loc 1 4434 17 is_stmt 0 view .LVU3417 9519 0124 E06B ldr r0, [r4, #60] 4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9520 .loc 1 4434 25 view .LVU3418 9521 0126 036D ldr r3, [r0, #80] 4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9522 .loc 1 4434 13 view .LVU3419 9523 0128 9847 blx r3 9524 .LVL677: 9525 012a 93E7 b .L598 9526 .L599: 4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9527 .loc 1 4477 7 is_stmt 1 view .LVU3420 4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9528 .loc 1 4477 23 is_stmt 0 view .LVU3421 9529 012c 2823 movs r3, #40 9530 012e 84F84130 strb r3, [r4, #65] 4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9531 .loc 1 4478 7 is_stmt 1 view .LVU3422 4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9532 .loc 1 4478 23 is_stmt 0 view .LVU3423 ARM GAS /tmp/ccN54YTb.s page 357 9533 0132 0022 movs r2, #0 9534 0134 84F84220 strb r2, [r4, #66] 4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9535 .loc 1 4481 7 is_stmt 1 view .LVU3424 4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9536 .loc 1 4481 11 is_stmt 0 view .LVU3425 9537 0138 636C ldr r3, [r4, #68] 4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9538 .loc 1 4481 23 view .LVU3426 9539 013a 43F08003 orr r3, r3, #128 9540 013e 6364 str r3, [r4, #68] 4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9541 .loc 1 4484 7 is_stmt 1 view .LVU3427 4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9542 .loc 1 4484 7 view .LVU3428 9543 0140 84F84020 strb r2, [r4, #64] 4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9544 .loc 1 4484 7 view .LVU3429 4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9545 .loc 1 4486 7 view .LVU3430 4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9546 .loc 1 4486 14 is_stmt 0 view .LVU3431 9547 0144 0125 movs r5, #1 9548 .LVL678: 4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9549 .loc 1 4486 14 view .LVU3432 9550 0146 23E0 b .L595 9551 .LVL679: 9552 .L600: 4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9553 .loc 1 4492 7 is_stmt 1 view .LVU3433 4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9554 .loc 1 4492 11 is_stmt 0 view .LVU3434 9555 0148 638D ldrh r3, [r4, #42] 9556 014a 9BB2 uxth r3, r3 4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9557 .loc 1 4492 30 view .LVU3435 9558 014c 228D ldrh r2, [r4, #40] 4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9559 .loc 1 4492 23 view .LVU3436 9560 014e 9B1A subs r3, r3, r2 9561 0150 9BB2 uxth r3, r3 9562 0152 6385 strh r3, [r4, #42] @ movhi 4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9563 .loc 1 4495 7 is_stmt 1 view .LVU3437 4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9564 .loc 1 4495 22 is_stmt 0 view .LVU3438 9565 0154 0023 movs r3, #0 9566 0156 2385 strh r3, [r4, #40] @ movhi 4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9567 .loc 1 4512 5 is_stmt 1 view .LVU3439 4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9568 .loc 1 4512 11 is_stmt 0 view .LVU3440 9569 0158 2268 ldr r2, [r4] 9570 015a 9369 ldr r3, [r2, #24] 9571 015c 03F00803 and r3, r3, #8 9572 .LVL680: ARM GAS /tmp/ccN54YTb.s page 358 4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9573 .loc 1 4513 5 is_stmt 1 view .LVU3441 4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9574 .loc 1 4513 10 is_stmt 0 view .LVU3442 9575 0160 9169 ldr r1, [r2, #24] 4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9576 .loc 1 4513 8 view .LVU3443 9577 0162 11F4803F tst r1, #65536 9578 0166 0DD0 beq .L602 9579 .LVL681: 9580 .L603: 4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9581 .loc 1 4521 5 is_stmt 1 view .LVU3444 4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9582 .loc 1 4521 5 view .LVU3445 9583 0168 0023 movs r3, #0 9584 016a 84F84030 strb r3, [r4, #64] 4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9585 .loc 1 4521 5 view .LVU3446 4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9586 .loc 1 4524 5 view .LVU3447 4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9587 .loc 1 4524 9 is_stmt 0 view .LVU3448 9588 016e 2268 ldr r2, [r4] 4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9589 .loc 1 4524 19 view .LVU3449 9590 0170 1368 ldr r3, [r2] 4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9591 .loc 1 4524 25 view .LVU3450 9592 0172 43F40043 orr r3, r3, #32768 9593 0176 1360 str r3, [r2] 4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9594 .loc 1 4530 5 is_stmt 1 view .LVU3451 9595 0178 48F20201 movw r1, #32770 9596 017c 2046 mov r0, r4 9597 .LVL682: 4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9598 .loc 1 4530 5 is_stmt 0 view .LVU3452 9599 017e FFF7FEFF bl I2C_Enable_IRQ 9600 .LVL683: 4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9601 .loc 1 4532 5 is_stmt 1 view .LVU3453 4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9602 .loc 1 4532 12 is_stmt 0 view .LVU3454 9603 0182 05E0 b .L595 9604 .LVL684: 9605 .L602: 4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9606 .loc 1 4513 55 discriminator 1 view .LVU3455 9607 0184 002B cmp r3, #0 9608 0186 EFD0 beq .L603 4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9609 .loc 1 4517 7 is_stmt 1 view .LVU3456 9610 0188 0823 movs r3, #8 9611 .LVL685: 4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9612 .loc 1 4517 7 is_stmt 0 view .LVU3457 ARM GAS /tmp/ccN54YTb.s page 359 9613 018a D361 str r3, [r2, #28] 9614 018c ECE7 b .L603 9615 .LVL686: 9616 .L604: 4536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9617 .loc 1 4536 12 view .LVU3458 9618 018e 0125 movs r5, #1 9619 .LVL687: 9620 .L595: 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9621 .loc 1 4538 1 view .LVU3459 9622 0190 2846 mov r0, r5 9623 0192 F8BD pop {r3, r4, r5, r6, r7, pc} 9624 .LVL688: 9625 .L605: 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9626 .loc 1 4388 5 discriminator 1 view .LVU3460 9627 0194 0225 movs r5, #2 9628 .LVL689: 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9629 .loc 1 4388 5 discriminator 1 view .LVU3461 9630 0196 FBE7 b .L595 9631 .L611: 9632 .align 2 9633 .L610: 9634 0198 00000000 .word I2C_Slave_ISR_DMA 9635 019c 00000000 .word I2C_DMASlaveReceiveCplt 9636 01a0 00000000 .word I2C_DMAError 9637 01a4 00000000 .word I2C_DMAAbort 9638 .cfi_endproc 9639 .LFE365: 9641 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9642 .align 1 9643 .global HAL_I2C_EnableListen_IT 9644 .syntax unified 9645 .thumb 9646 .thumb_func 9648 HAL_I2C_EnableListen_IT: 9649 .LVL690: 9650 .LFB366: 4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9651 .loc 1 4547 1 is_stmt 1 view -0 9652 .cfi_startproc 9653 @ args = 0, pretend = 0, frame = 0 9654 @ frame_needed = 0, uses_anonymous_args = 0 4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9655 .loc 1 4547 1 is_stmt 0 view .LVU3463 9656 0000 08B5 push {r3, lr} 9657 .cfi_def_cfa_offset 8 9658 .cfi_offset 3, -8 9659 .cfi_offset 14, -4 4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9660 .loc 1 4548 3 is_stmt 1 view .LVU3464 4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9661 .loc 1 4548 11 is_stmt 0 view .LVU3465 9662 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 360 9663 .loc 1 4548 6 view .LVU3466 9664 0006 202B cmp r3, #32 9665 0008 01D0 beq .L616 4560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9666 .loc 1 4560 12 view .LVU3467 9667 000a 0220 movs r0, #2 9668 .LVL691: 9669 .L613: 4562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9670 .loc 1 4562 1 view .LVU3468 9671 000c 08BD pop {r3, pc} 9672 .LVL692: 9673 .L616: 4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9674 .loc 1 4550 5 is_stmt 1 view .LVU3469 4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9675 .loc 1 4550 17 is_stmt 0 view .LVU3470 9676 000e 2823 movs r3, #40 9677 0010 80F84130 strb r3, [r0, #65] 4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9678 .loc 1 4551 5 is_stmt 1 view .LVU3471 4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9679 .loc 1 4551 19 is_stmt 0 view .LVU3472 9680 0014 034B ldr r3, .L617 9681 0016 4363 str r3, [r0, #52] 4554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9682 .loc 1 4554 5 is_stmt 1 view .LVU3473 9683 0018 4FF40041 mov r1, #32768 9684 001c FFF7FEFF bl I2C_Enable_IRQ 9685 .LVL693: 4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9686 .loc 1 4556 5 view .LVU3474 4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9687 .loc 1 4556 12 is_stmt 0 view .LVU3475 9688 0020 0020 movs r0, #0 9689 0022 F3E7 b .L613 9690 .L618: 9691 .align 2 9692 .L617: 9693 0024 00000000 .word I2C_Slave_ISR_IT 9694 .cfi_endproc 9695 .LFE366: 9697 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9698 .align 1 9699 .global HAL_I2C_DisableListen_IT 9700 .syntax unified 9701 .thumb 9702 .thumb_func 9704 HAL_I2C_DisableListen_IT: 9705 .LVL694: 9706 .LFB367: 4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9707 .loc 1 4571 1 is_stmt 1 view -0 9708 .cfi_startproc 9709 @ args = 0, pretend = 0, frame = 0 9710 @ frame_needed = 0, uses_anonymous_args = 0 4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 361 9711 .loc 1 4573 3 view .LVU3477 4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9712 .loc 1 4576 3 view .LVU3478 4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9713 .loc 1 4576 11 is_stmt 0 view .LVU3479 9714 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9715 .loc 1 4576 6 view .LVU3480 9716 0004 282B cmp r3, #40 9717 0006 01D0 beq .L626 4591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9718 .loc 1 4591 12 view .LVU3481 9719 0008 0220 movs r0, #2 9720 .LVL695: 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9721 .loc 1 4593 1 view .LVU3482 9722 000a 7047 bx lr 9723 .LVL696: 9724 .L626: 4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9725 .loc 1 4571 1 view .LVU3483 9726 000c 10B5 push {r4, lr} 9727 .cfi_def_cfa_offset 8 9728 .cfi_offset 4, -8 9729 .cfi_offset 14, -4 4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9730 .loc 1 4578 5 is_stmt 1 view .LVU3484 4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9731 .loc 1 4578 26 is_stmt 0 view .LVU3485 9732 000e 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9733 .LVL697: 4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9734 .loc 1 4579 5 is_stmt 1 view .LVU3486 4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9735 .loc 1 4579 48 is_stmt 0 view .LVU3487 9736 0012 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9737 .loc 1 4579 31 view .LVU3488 9738 0016 02F00302 and r2, r2, #3 9739 .LVL698: 4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9740 .loc 1 4579 31 view .LVU3489 9741 001a 1343 orrs r3, r3, r2 4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9742 .loc 1 4579 25 view .LVU3490 9743 001c 0363 str r3, [r0, #48] 4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9744 .loc 1 4580 5 is_stmt 1 view .LVU3491 4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9745 .loc 1 4580 17 is_stmt 0 view .LVU3492 9746 001e 2023 movs r3, #32 9747 0020 80F84130 strb r3, [r0, #65] 4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9748 .loc 1 4581 5 is_stmt 1 view .LVU3493 4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9749 .loc 1 4581 16 is_stmt 0 view .LVU3494 9750 0024 0024 movs r4, #0 ARM GAS /tmp/ccN54YTb.s page 362 9751 0026 80F84240 strb r4, [r0, #66] 4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9752 .loc 1 4582 5 is_stmt 1 view .LVU3495 4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9753 .loc 1 4582 19 is_stmt 0 view .LVU3496 9754 002a 4463 str r4, [r0, #52] 4585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9755 .loc 1 4585 5 is_stmt 1 view .LVU3497 9756 002c 4FF40041 mov r1, #32768 9757 0030 FFF7FEFF bl I2C_Disable_IRQ 9758 .LVL699: 4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9759 .loc 1 4587 5 view .LVU3498 4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9760 .loc 1 4587 12 is_stmt 0 view .LVU3499 9761 0034 2046 mov r0, r4 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9762 .loc 1 4593 1 view .LVU3500 9763 0036 10BD pop {r4, pc} 9764 .cfi_endproc 9765 .LFE367: 9767 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9768 .align 1 9769 .global HAL_I2C_Master_Abort_IT 9770 .syntax unified 9771 .thumb 9772 .thumb_func 9774 HAL_I2C_Master_Abort_IT: 9775 .LVL700: 9776 .LFB368: 4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9777 .loc 1 4604 1 is_stmt 1 view -0 9778 .cfi_startproc 9779 @ args = 0, pretend = 0, frame = 0 9780 @ frame_needed = 0, uses_anonymous_args = 0 4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9781 .loc 1 4605 3 view .LVU3502 4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9782 .loc 1 4605 23 is_stmt 0 view .LVU3503 9783 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9784 .LVL701: 4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9785 .loc 1 4607 3 is_stmt 1 view .LVU3504 4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9786 .loc 1 4607 6 is_stmt 0 view .LVU3505 9787 0004 402B cmp r3, #64 9788 0006 18BF it ne 9789 0008 102B cmpne r3, #16 9790 000a 34D1 bne .L631 4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9791 .loc 1 4604 1 view .LVU3506 9792 000c 30B5 push {r4, r5, lr} 9793 .cfi_def_cfa_offset 12 9794 .cfi_offset 4, -12 9795 .cfi_offset 5, -8 9796 .cfi_offset 14, -4 9797 000e 83B0 sub sp, sp, #12 ARM GAS /tmp/ccN54YTb.s page 363 9798 .cfi_def_cfa_offset 24 9799 0010 0446 mov r4, r0 9800 0012 0D46 mov r5, r1 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9801 .loc 1 4610 5 is_stmt 1 view .LVU3507 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9802 .loc 1 4610 5 view .LVU3508 9803 0014 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 9804 .LVL702: 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9805 .loc 1 4610 5 is_stmt 0 view .LVU3509 9806 0018 012B cmp r3, #1 9807 001a 2ED0 beq .L632 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9808 .loc 1 4610 5 is_stmt 1 discriminator 2 view .LVU3510 9809 001c 0123 movs r3, #1 9810 001e 80F84030 strb r3, [r0, #64] 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9811 .loc 1 4610 5 view .LVU3511 4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9812 .loc 1 4613 5 view .LVU3512 4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9813 .loc 1 4613 13 is_stmt 0 view .LVU3513 9814 0022 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9815 .loc 1 4613 8 view .LVU3514 9816 0026 212B cmp r3, #33 9817 0028 19D0 beq .L637 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9818 .loc 1 4618 10 is_stmt 1 view .LVU3515 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9819 .loc 1 4618 18 is_stmt 0 view .LVU3516 9820 002a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9821 .loc 1 4618 13 view .LVU3517 9822 002e 222B cmp r3, #34 9823 0030 1BD0 beq .L638 9824 .LVL703: 9825 .L630: 4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9826 .loc 1 4626 5 is_stmt 1 view .LVU3518 4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9827 .loc 1 4629 5 view .LVU3519 4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9828 .loc 1 4629 17 is_stmt 0 view .LVU3520 9829 0032 6023 movs r3, #96 9830 0034 84F84130 strb r3, [r4, #65] 4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9831 .loc 1 4633 5 is_stmt 1 view .LVU3521 9832 0038 114B ldr r3, .L639 9833 003a 0093 str r3, [sp] 9834 003c 4FF00073 mov r3, #33554432 9835 0040 0122 movs r2, #1 9836 0042 2946 mov r1, r5 9837 0044 2046 mov r0, r4 9838 0046 FFF7FEFF bl I2C_TransferConfig 9839 .LVL704: ARM GAS /tmp/ccN54YTb.s page 364 4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9840 .loc 1 4636 5 view .LVU3522 4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9841 .loc 1 4636 5 view .LVU3523 9842 004a 0025 movs r5, #0 9843 .LVL705: 4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9844 .loc 1 4636 5 is_stmt 0 view .LVU3524 9845 004c 84F84050 strb r5, [r4, #64] 4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9846 .loc 1 4636 5 is_stmt 1 view .LVU3525 4641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9847 .loc 1 4641 5 view .LVU3526 9848 0050 2021 movs r1, #32 9849 0052 2046 mov r0, r4 9850 0054 FFF7FEFF bl I2C_Enable_IRQ 9851 .LVL706: 4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9852 .loc 1 4643 5 view .LVU3527 4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9853 .loc 1 4643 12 is_stmt 0 view .LVU3528 9854 0058 2846 mov r0, r5 9855 .L628: 4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9856 .loc 1 4651 1 view .LVU3529 9857 005a 03B0 add sp, sp, #12 9858 .cfi_remember_state 9859 .cfi_def_cfa_offset 12 9860 @ sp needed 9861 005c 30BD pop {r4, r5, pc} 9862 .LVL707: 9863 .L637: 9864 .cfi_restore_state 4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9865 .loc 1 4615 7 is_stmt 1 view .LVU3530 9866 005e 0121 movs r1, #1 9867 .LVL708: 4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9868 .loc 1 4615 7 is_stmt 0 view .LVU3531 9869 0060 FFF7FEFF bl I2C_Disable_IRQ 9870 .LVL709: 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9871 .loc 1 4616 7 is_stmt 1 view .LVU3532 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9872 .loc 1 4616 27 is_stmt 0 view .LVU3533 9873 0064 1123 movs r3, #17 9874 0066 2363 str r3, [r4, #48] 9875 0068 E3E7 b .L630 9876 .LVL710: 9877 .L638: 4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9878 .loc 1 4620 7 is_stmt 1 view .LVU3534 9879 006a 0221 movs r1, #2 9880 .LVL711: 4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9881 .loc 1 4620 7 is_stmt 0 view .LVU3535 9882 006c FFF7FEFF bl I2C_Disable_IRQ ARM GAS /tmp/ccN54YTb.s page 365 9883 .LVL712: 4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9884 .loc 1 4621 7 is_stmt 1 view .LVU3536 4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9885 .loc 1 4621 27 is_stmt 0 view .LVU3537 9886 0070 1223 movs r3, #18 9887 0072 2363 str r3, [r4, #48] 9888 0074 DDE7 b .L630 9889 .LVL713: 9890 .L631: 9891 .cfi_def_cfa_offset 0 9892 .cfi_restore 4 9893 .cfi_restore 5 9894 .cfi_restore 14 4649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9895 .loc 1 4649 12 view .LVU3538 9896 0076 0120 movs r0, #1 9897 .LVL714: 4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9898 .loc 1 4651 1 view .LVU3539 9899 0078 7047 bx lr 9900 .LVL715: 9901 .L632: 9902 .cfi_def_cfa_offset 24 9903 .cfi_offset 4, -12 9904 .cfi_offset 5, -8 9905 .cfi_offset 14, -4 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9906 .loc 1 4610 5 discriminator 1 view .LVU3540 9907 007a 0220 movs r0, #2 9908 .LVL716: 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9909 .loc 1 4610 5 discriminator 1 view .LVU3541 9910 007c EDE7 b .L628 9911 .L640: 9912 007e 00BF .align 2 9913 .L639: 9914 0080 00400080 .word -2147467264 9915 .cfi_endproc 9916 .LFE368: 9918 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 9919 .align 1 9920 .global HAL_I2C_EV_IRQHandler 9921 .syntax unified 9922 .thumb 9923 .thumb_func 9925 HAL_I2C_EV_IRQHandler: 9926 .LVL717: 9927 .LFB369: 4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9928 .loc 1 4668 1 is_stmt 1 view -0 9929 .cfi_startproc 9930 @ args = 0, pretend = 0, frame = 0 9931 @ frame_needed = 0, uses_anonymous_args = 0 4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9932 .loc 1 4668 1 is_stmt 0 view .LVU3543 9933 0000 08B5 push {r3, lr} ARM GAS /tmp/ccN54YTb.s page 366 9934 .cfi_def_cfa_offset 8 9935 .cfi_offset 3, -8 9936 .cfi_offset 14, -4 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9937 .loc 1 4670 3 is_stmt 1 view .LVU3544 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9938 .loc 1 4670 24 is_stmt 0 view .LVU3545 9939 0002 0368 ldr r3, [r0] 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9940 .loc 1 4670 12 view .LVU3546 9941 0004 9969 ldr r1, [r3, #24] 9942 .LVL718: 4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9943 .loc 1 4671 3 is_stmt 1 view .LVU3547 4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9944 .loc 1 4671 12 is_stmt 0 view .LVU3548 9945 0006 1A68 ldr r2, [r3] 9946 .LVL719: 4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9947 .loc 1 4674 3 is_stmt 1 view .LVU3549 4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9948 .loc 1 4674 11 is_stmt 0 view .LVU3550 9949 0008 436B ldr r3, [r0, #52] 4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9950 .loc 1 4674 6 view .LVU3551 9951 000a 03B1 cbz r3, .L641 4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9952 .loc 1 4676 5 is_stmt 1 view .LVU3552 9953 000c 9847 blx r3 9954 .LVL720: 9955 .L641: 4678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9956 .loc 1 4678 1 is_stmt 0 view .LVU3553 9957 000e 08BD pop {r3, pc} 9958 .cfi_endproc 9959 .LFE369: 9961 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 9962 .align 1 9963 .weak HAL_I2C_MasterTxCpltCallback 9964 .syntax unified 9965 .thumb 9966 .thumb_func 9968 HAL_I2C_MasterTxCpltCallback: 9969 .LVL721: 9970 .LFB371: 4739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9971 .loc 1 4739 1 is_stmt 1 view -0 9972 .cfi_startproc 9973 @ args = 0, pretend = 0, frame = 0 9974 @ frame_needed = 0, uses_anonymous_args = 0 9975 @ link register save eliminated. 4741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9976 .loc 1 4741 3 view .LVU3555 4746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9977 .loc 1 4746 1 is_stmt 0 view .LVU3556 9978 0000 7047 bx lr 9979 .cfi_endproc ARM GAS /tmp/ccN54YTb.s page 367 9980 .LFE371: 9982 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 9983 .align 1 9984 .weak HAL_I2C_MasterRxCpltCallback 9985 .syntax unified 9986 .thumb 9987 .thumb_func 9989 HAL_I2C_MasterRxCpltCallback: 9990 .LVL722: 9991 .LFB372: 4755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9992 .loc 1 4755 1 is_stmt 1 view -0 9993 .cfi_startproc 9994 @ args = 0, pretend = 0, frame = 0 9995 @ frame_needed = 0, uses_anonymous_args = 0 9996 @ link register save eliminated. 4757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9997 .loc 1 4757 3 view .LVU3558 4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9998 .loc 1 4762 1 is_stmt 0 view .LVU3559 9999 0000 7047 bx lr 10000 .cfi_endproc 10001 .LFE372: 10003 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 10004 .align 1 10005 .syntax unified 10006 .thumb 10007 .thumb_func 10009 I2C_ITMasterSeqCplt: 10010 .LVL723: 10011 .LFB393: 6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 10012 .loc 1 6034 1 is_stmt 1 view -0 10013 .cfi_startproc 10014 @ args = 0, pretend = 0, frame = 0 10015 @ frame_needed = 0, uses_anonymous_args = 0 6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 10016 .loc 1 6034 1 is_stmt 0 view .LVU3561 10017 0000 38B5 push {r3, r4, r5, lr} 10018 .cfi_def_cfa_offset 16 10019 .cfi_offset 3, -16 10020 .cfi_offset 4, -12 10021 .cfi_offset 5, -8 10022 .cfi_offset 14, -4 10023 0002 0446 mov r4, r0 6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10024 .loc 1 6036 3 is_stmt 1 view .LVU3562 6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10025 .loc 1 6036 14 is_stmt 0 view .LVU3563 10026 0004 0023 movs r3, #0 10027 0006 80F84230 strb r3, [r0, #66] 6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10028 .loc 1 6040 3 is_stmt 1 view .LVU3564 6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10029 .loc 1 6040 11 is_stmt 0 view .LVU3565 10030 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 368 10031 .loc 1 6040 6 view .LVU3566 10032 000e 212B cmp r3, #33 10033 0010 0FD0 beq .L650 6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10034 .loc 1 6062 5 is_stmt 1 view .LVU3567 6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10035 .loc 1 6062 25 is_stmt 0 view .LVU3568 10036 0012 2023 movs r3, #32 10037 0014 80F84130 strb r3, [r0, #65] 6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10038 .loc 1 6063 5 is_stmt 1 view .LVU3569 6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10039 .loc 1 6063 25 is_stmt 0 view .LVU3570 10040 0018 1223 movs r3, #18 10041 001a 0363 str r3, [r0, #48] 6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10042 .loc 1 6064 5 is_stmt 1 view .LVU3571 6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10043 .loc 1 6064 25 is_stmt 0 view .LVU3572 10044 001c 0025 movs r5, #0 10045 001e 4563 str r5, [r0, #52] 6067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10046 .loc 1 6067 5 is_stmt 1 view .LVU3573 10047 0020 0221 movs r1, #2 10048 0022 FFF7FEFF bl I2C_Disable_IRQ 10049 .LVL724: 6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10050 .loc 1 6070 5 view .LVU3574 6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10051 .loc 1 6070 5 view .LVU3575 10052 0026 84F84050 strb r5, [r4, #64] 6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10053 .loc 1 6070 5 view .LVU3576 6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10054 .loc 1 6076 5 view .LVU3577 10055 002a 2046 mov r0, r4 10056 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 10057 .LVL725: 10058 .L646: 6079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10059 .loc 1 6079 1 is_stmt 0 view .LVU3578 10060 0030 38BD pop {r3, r4, r5, pc} 10061 .LVL726: 10062 .L650: 6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10063 .loc 1 6042 5 is_stmt 1 view .LVU3579 6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10064 .loc 1 6042 25 is_stmt 0 view .LVU3580 10065 0032 2023 movs r3, #32 10066 0034 80F84130 strb r3, [r0, #65] 6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10067 .loc 1 6043 5 is_stmt 1 view .LVU3581 6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10068 .loc 1 6043 25 is_stmt 0 view .LVU3582 10069 0038 1123 movs r3, #17 10070 003a 0363 str r3, [r0, #48] 6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 369 10071 .loc 1 6044 5 is_stmt 1 view .LVU3583 6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10072 .loc 1 6044 25 is_stmt 0 view .LVU3584 10073 003c 0025 movs r5, #0 10074 003e 4563 str r5, [r0, #52] 6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10075 .loc 1 6047 5 is_stmt 1 view .LVU3585 10076 0040 0121 movs r1, #1 10077 0042 FFF7FEFF bl I2C_Disable_IRQ 10078 .LVL727: 6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10079 .loc 1 6050 5 view .LVU3586 6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10080 .loc 1 6050 5 view .LVU3587 10081 0046 84F84050 strb r5, [r4, #64] 6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10082 .loc 1 6050 5 view .LVU3588 6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10083 .loc 1 6056 5 view .LVU3589 10084 004a 2046 mov r0, r4 10085 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10086 .LVL728: 10087 0050 EEE7 b .L646 10088 .cfi_endproc 10089 .LFE393: 10091 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10092 .align 1 10093 .weak HAL_I2C_SlaveTxCpltCallback 10094 .syntax unified 10095 .thumb 10096 .thumb_func 10098 HAL_I2C_SlaveTxCpltCallback: 10099 .LVL729: 10100 .LFB373: 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10101 .loc 1 4770 1 view -0 10102 .cfi_startproc 10103 @ args = 0, pretend = 0, frame = 0 10104 @ frame_needed = 0, uses_anonymous_args = 0 10105 @ link register save eliminated. 4772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10106 .loc 1 4772 3 view .LVU3591 4777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10107 .loc 1 4777 1 is_stmt 0 view .LVU3592 10108 0000 7047 bx lr 10109 .cfi_endproc 10110 .LFE373: 10112 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10113 .align 1 10114 .weak HAL_I2C_SlaveRxCpltCallback 10115 .syntax unified 10116 .thumb 10117 .thumb_func 10119 HAL_I2C_SlaveRxCpltCallback: 10120 .LVL730: 10121 .LFB374: 4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/ccN54YTb.s page 370 10122 .loc 1 4786 1 is_stmt 1 view -0 10123 .cfi_startproc 10124 @ args = 0, pretend = 0, frame = 0 10125 @ frame_needed = 0, uses_anonymous_args = 0 10126 @ link register save eliminated. 4788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10127 .loc 1 4788 3 view .LVU3594 4793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10128 .loc 1 4793 1 is_stmt 0 view .LVU3595 10129 0000 7047 bx lr 10130 .cfi_endproc 10131 .LFE374: 10133 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 10134 .align 1 10135 .syntax unified 10136 .thumb 10137 .thumb_func 10139 I2C_ITSlaveSeqCplt: 10140 .LVL731: 10141 .LFB394: 6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10142 .loc 1 6087 1 is_stmt 1 view -0 10143 .cfi_startproc 10144 @ args = 0, pretend = 0, frame = 0 10145 @ frame_needed = 0, uses_anonymous_args = 0 6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10146 .loc 1 6087 1 is_stmt 0 view .LVU3597 10147 0000 10B5 push {r4, lr} 10148 .cfi_def_cfa_offset 8 10149 .cfi_offset 4, -8 10150 .cfi_offset 14, -4 10151 0002 0446 mov r4, r0 6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10152 .loc 1 6088 3 is_stmt 1 view .LVU3598 6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10153 .loc 1 6088 26 is_stmt 0 view .LVU3599 10154 0004 0368 ldr r3, [r0] 6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10155 .loc 1 6088 12 view .LVU3600 10156 0006 1A68 ldr r2, [r3] 10157 .LVL732: 6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10158 .loc 1 6091 3 is_stmt 1 view .LVU3601 6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10159 .loc 1 6091 14 is_stmt 0 view .LVU3602 10160 0008 0021 movs r1, #0 10161 000a 80F84210 strb r1, [r0, #66] 6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10162 .loc 1 6094 3 is_stmt 1 view .LVU3603 6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10163 .loc 1 6094 6 is_stmt 0 view .LVU3604 10164 000e 12F4804F tst r2, #16384 10165 0012 0CD0 beq .L654 6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10166 .loc 1 6097 5 is_stmt 1 view .LVU3605 6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10167 .loc 1 6097 19 is_stmt 0 view .LVU3606 ARM GAS /tmp/ccN54YTb.s page 371 10168 0014 1A68 ldr r2, [r3] 10169 .LVL733: 6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10170 .loc 1 6097 25 view .LVU3607 10171 0016 22F48042 bic r2, r2, #16384 10172 001a 1A60 str r2, [r3] 10173 .L655: 6107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10174 .loc 1 6107 3 is_stmt 1 view .LVU3608 6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10175 .loc 1 6109 3 view .LVU3609 6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10176 .loc 1 6109 11 is_stmt 0 view .LVU3610 10177 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10178 .loc 1 6109 6 view .LVU3611 10179 0020 292B cmp r3, #41 10180 0022 0CD0 beq .L659 6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10181 .loc 1 6129 8 is_stmt 1 view .LVU3612 6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10182 .loc 1 6129 16 is_stmt 0 view .LVU3613 10183 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10184 .loc 1 6129 11 view .LVU3614 10185 0028 2A2B cmp r3, #42 10186 002a 18D0 beq .L660 10187 .LVL734: 10188 .L653: 6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10189 .loc 1 6152 1 view .LVU3615 10190 002c 10BD pop {r4, pc} 10191 .LVL735: 10192 .L654: 6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10193 .loc 1 6099 8 is_stmt 1 view .LVU3616 6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10194 .loc 1 6099 11 is_stmt 0 view .LVU3617 10195 002e 12F4004F tst r2, #32768 10196 0032 F3D0 beq .L655 6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10197 .loc 1 6102 5 is_stmt 1 view .LVU3618 6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10198 .loc 1 6102 19 is_stmt 0 view .LVU3619 10199 0034 1A68 ldr r2, [r3] 10200 .LVL736: 6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10201 .loc 1 6102 25 view .LVU3620 10202 0036 22F40042 bic r2, r2, #32768 10203 003a 1A60 str r2, [r3] 10204 003c EEE7 b .L655 10205 .L659: 6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10206 .loc 1 6112 5 is_stmt 1 view .LVU3621 6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10207 .loc 1 6112 25 is_stmt 0 view .LVU3622 10208 003e 2823 movs r3, #40 ARM GAS /tmp/ccN54YTb.s page 372 10209 0040 84F84130 strb r3, [r4, #65] 6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10210 .loc 1 6113 5 is_stmt 1 view .LVU3623 6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10211 .loc 1 6113 25 is_stmt 0 view .LVU3624 10212 0044 2123 movs r3, #33 10213 0046 2363 str r3, [r4, #48] 6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10214 .loc 1 6116 5 is_stmt 1 view .LVU3625 10215 0048 0121 movs r1, #1 10216 004a 2046 mov r0, r4 10217 .LVL737: 6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10218 .loc 1 6116 5 is_stmt 0 view .LVU3626 10219 004c FFF7FEFF bl I2C_Disable_IRQ 10220 .LVL738: 6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10221 .loc 1 6119 5 is_stmt 1 view .LVU3627 6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10222 .loc 1 6119 5 view .LVU3628 10223 0050 0023 movs r3, #0 10224 0052 84F84030 strb r3, [r4, #64] 6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10225 .loc 1 6119 5 view .LVU3629 6125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10226 .loc 1 6125 5 view .LVU3630 10227 0056 2046 mov r0, r4 10228 0058 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10229 .LVL739: 10230 005c E6E7 b .L653 10231 .LVL740: 10232 .L660: 6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10233 .loc 1 6132 5 view .LVU3631 6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10234 .loc 1 6132 25 is_stmt 0 view .LVU3632 10235 005e 2823 movs r3, #40 10236 0060 84F84130 strb r3, [r4, #65] 6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10237 .loc 1 6133 5 is_stmt 1 view .LVU3633 6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10238 .loc 1 6133 25 is_stmt 0 view .LVU3634 10239 0064 2223 movs r3, #34 10240 0066 2363 str r3, [r4, #48] 6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10241 .loc 1 6136 5 is_stmt 1 view .LVU3635 10242 0068 0221 movs r1, #2 10243 006a 2046 mov r0, r4 10244 .LVL741: 6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10245 .loc 1 6136 5 is_stmt 0 view .LVU3636 10246 006c FFF7FEFF bl I2C_Disable_IRQ 10247 .LVL742: 6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10248 .loc 1 6139 5 is_stmt 1 view .LVU3637 6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10249 .loc 1 6139 5 view .LVU3638 ARM GAS /tmp/ccN54YTb.s page 373 10250 0070 0023 movs r3, #0 10251 0072 84F84030 strb r3, [r4, #64] 6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10252 .loc 1 6139 5 view .LVU3639 6145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10253 .loc 1 6145 5 view .LVU3640 10254 0076 2046 mov r0, r4 10255 0078 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10256 .LVL743: 6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10257 .loc 1 6151 3 view .LVU3641 6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10258 .loc 1 6152 1 is_stmt 0 view .LVU3642 10259 007c D6E7 b .L653 10260 .cfi_endproc 10261 .LFE394: 10263 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10264 .align 1 10265 .syntax unified 10266 .thumb 10267 .thumb_func 10269 I2C_DMASlaveTransmitCplt: 10270 .LVL744: 10271 .LFB402: 6812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10272 .loc 1 6812 1 is_stmt 1 view -0 10273 .cfi_startproc 10274 @ args = 0, pretend = 0, frame = 0 10275 @ frame_needed = 0, uses_anonymous_args = 0 6812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10276 .loc 1 6812 1 is_stmt 0 view .LVU3644 10277 0000 08B5 push {r3, lr} 10278 .cfi_def_cfa_offset 8 10279 .cfi_offset 3, -8 10280 .cfi_offset 14, -4 6814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10281 .loc 1 6814 3 is_stmt 1 view .LVU3645 6814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10282 .loc 1 6814 22 is_stmt 0 view .LVU3646 10283 0002 806B ldr r0, [r0, #56] 10284 .LVL745: 6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10285 .loc 1 6815 3 is_stmt 1 view .LVU3647 6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10286 .loc 1 6815 12 is_stmt 0 view .LVU3648 10287 0004 C36A ldr r3, [r0, #44] 10288 .LVL746: 6817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10289 .loc 1 6817 3 is_stmt 1 view .LVU3649 6817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10290 .loc 1 6817 6 is_stmt 0 view .LVU3650 10291 0006 002B cmp r3, #0 10292 0008 18BF it ne 10293 000a B3F1807F cmpne r3, #16777216 10294 000e 00D0 beq .L664 10295 .LVL747: 10296 .L661: ARM GAS /tmp/ccN54YTb.s page 374 6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10297 .loc 1 6832 1 view .LVU3651 10298 0010 08BD pop {r3, pc} 10299 .LVL748: 10300 .L664: 6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10301 .loc 1 6820 5 is_stmt 1 view .LVU3652 6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10302 .loc 1 6820 9 is_stmt 0 view .LVU3653 10303 0012 0268 ldr r2, [r0] 6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10304 .loc 1 6820 19 view .LVU3654 10305 0014 1368 ldr r3, [r2] 10306 .LVL749: 6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10307 .loc 1 6820 25 view .LVU3655 10308 0016 23F48043 bic r3, r3, #16384 10309 001a 1360 str r3, [r2] 6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10310 .loc 1 6824 5 is_stmt 1 view .LVU3656 10311 001c FFF7FEFF bl I2C_ITSlaveSeqCplt 10312 .LVL750: 6831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10313 .loc 1 6831 3 view .LVU3657 6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10314 .loc 1 6832 1 is_stmt 0 view .LVU3658 10315 0020 F6E7 b .L661 10316 .cfi_endproc 10317 .LFE402: 10319 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 10320 .align 1 10321 .syntax unified 10322 .thumb 10323 .thumb_func 10325 I2C_DMASlaveReceiveCplt: 10326 .LVL751: 10327 .LFB404: 6892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10328 .loc 1 6892 1 is_stmt 1 view -0 10329 .cfi_startproc 10330 @ args = 0, pretend = 0, frame = 0 10331 @ frame_needed = 0, uses_anonymous_args = 0 6892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10332 .loc 1 6892 1 is_stmt 0 view .LVU3660 10333 0000 10B5 push {r4, lr} 10334 .cfi_def_cfa_offset 8 10335 .cfi_offset 4, -8 10336 .cfi_offset 14, -4 6894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10337 .loc 1 6894 3 is_stmt 1 view .LVU3661 6894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10338 .loc 1 6894 22 is_stmt 0 view .LVU3662 10339 0002 806B ldr r0, [r0, #56] 10340 .LVL752: 6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10341 .loc 1 6895 3 is_stmt 1 view .LVU3663 6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 375 10342 .loc 1 6895 12 is_stmt 0 view .LVU3664 10343 0004 C46A ldr r4, [r0, #44] 10344 .LVL753: 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10345 .loc 1 6897 3 is_stmt 1 view .LVU3665 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10346 .loc 1 6897 8 is_stmt 0 view .LVU3666 10347 0006 C36B ldr r3, [r0, #60] 10348 0008 1B68 ldr r3, [r3] 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10349 .loc 1 6897 46 view .LVU3667 10350 000a 2349 ldr r1, .L672 10351 000c 234A ldr r2, .L672+4 10352 000e 9342 cmp r3, r2 10353 0010 18BF it ne 10354 0012 8B42 cmpne r3, r1 10355 0014 2FD0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10356 .loc 1 6897 8 discriminator 2 view .LVU3668 10357 0016 1832 adds r2, r2, #24 10358 0018 9342 cmp r3, r2 10359 001a 2CD0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10360 .loc 1 6897 8 discriminator 4 view .LVU3669 10361 001c 1832 adds r2, r2, #24 10362 001e 9342 cmp r3, r2 10363 0020 29D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10364 .loc 1 6897 8 discriminator 6 view .LVU3670 10365 0022 1832 adds r2, r2, #24 10366 0024 9342 cmp r3, r2 10367 0026 26D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10368 .loc 1 6897 8 discriminator 8 view .LVU3671 10369 0028 1832 adds r2, r2, #24 10370 002a 9342 cmp r3, r2 10371 002c 23D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10372 .loc 1 6897 8 discriminator 10 view .LVU3672 10373 002e 1832 adds r2, r2, #24 10374 0030 9342 cmp r3, r2 10375 0032 20D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10376 .loc 1 6897 8 discriminator 12 view .LVU3673 10377 0034 1832 adds r2, r2, #24 10378 0036 9342 cmp r3, r2 10379 0038 1DD0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10380 .loc 1 6897 8 discriminator 14 view .LVU3674 10381 003a 02F55672 add r2, r2, #856 10382 003e 9342 cmp r3, r2 10383 0040 19D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10384 .loc 1 6897 8 discriminator 16 view .LVU3675 10385 0042 1832 adds r2, r2, #24 10386 0044 9342 cmp r3, r2 10387 0046 16D0 beq .L666 ARM GAS /tmp/ccN54YTb.s page 376 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10388 .loc 1 6897 8 discriminator 18 view .LVU3676 10389 0048 1832 adds r2, r2, #24 10390 004a 9342 cmp r3, r2 10391 004c 13D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10392 .loc 1 6897 8 discriminator 20 view .LVU3677 10393 004e 1832 adds r2, r2, #24 10394 0050 9342 cmp r3, r2 10395 0052 10D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10396 .loc 1 6897 8 discriminator 22 view .LVU3678 10397 0054 1832 adds r2, r2, #24 10398 0056 9342 cmp r3, r2 10399 0058 0DD0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10400 .loc 1 6897 8 discriminator 24 view .LVU3679 10401 005a 1832 adds r2, r2, #24 10402 005c 9342 cmp r3, r2 10403 005e 0AD0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10404 .loc 1 6897 8 discriminator 26 view .LVU3680 10405 0060 1832 adds r2, r2, #24 10406 0062 9342 cmp r3, r2 10407 0064 07D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10408 .loc 1 6897 8 discriminator 28 view .LVU3681 10409 0066 1832 adds r2, r2, #24 10410 0068 9342 cmp r3, r2 10411 006a 04D0 beq .L666 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10412 .loc 1 6897 8 discriminator 30 view .LVU3682 10413 006c 5B68 ldr r3, [r3, #4] 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10414 .loc 1 6897 46 discriminator 30 view .LVU3683 10415 006e B3FA83F3 clz r3, r3 10416 0072 5B09 lsrs r3, r3, #5 10417 0074 03E0 b .L668 10418 .L666: 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10419 .loc 1 6897 8 discriminator 29 view .LVU3684 10420 0076 5B68 ldr r3, [r3, #4] 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10421 .loc 1 6897 46 discriminator 29 view .LVU3685 10422 0078 B3FA83F3 clz r3, r3 10423 007c 5B09 lsrs r3, r3, #5 10424 .L668: 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10425 .loc 1 6897 6 discriminator 32 view .LVU3686 10426 007e 13B1 cbz r3, .L665 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10427 .loc 1 6897 53 discriminator 33 view .LVU3687 10428 0080 14F5803F cmn r4, #65536 10429 0084 00D1 bne .L671 10430 .LVL754: 10431 .L665: 6912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 377 10432 .loc 1 6912 1 view .LVU3688 10433 0086 10BD pop {r4, pc} 10434 .LVL755: 10435 .L671: 6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10436 .loc 1 6901 5 is_stmt 1 view .LVU3689 6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10437 .loc 1 6901 9 is_stmt 0 view .LVU3690 10438 0088 0268 ldr r2, [r0] 6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10439 .loc 1 6901 19 view .LVU3691 10440 008a 1368 ldr r3, [r2] 6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10441 .loc 1 6901 25 view .LVU3692 10442 008c 23F40043 bic r3, r3, #32768 10443 0090 1360 str r3, [r2] 6904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10444 .loc 1 6904 5 is_stmt 1 view .LVU3693 10445 0092 FFF7FEFF bl I2C_ITSlaveSeqCplt 10446 .LVL756: 6911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10447 .loc 1 6911 3 view .LVU3694 6912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10448 .loc 1 6912 1 is_stmt 0 view .LVU3695 10449 0096 F6E7 b .L665 10450 .L673: 10451 .align 2 10452 .L672: 10453 0098 10000240 .word 1073872912 10454 009c 28000240 .word 1073872936 10455 .cfi_endproc 10456 .LFE404: 10458 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10459 .align 1 10460 .weak HAL_I2C_AddrCallback 10461 .syntax unified 10462 .thumb 10463 .thumb_func 10465 HAL_I2C_AddrCallback: 10466 .LVL757: 10467 .LFB375: 4804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10468 .loc 1 4804 1 is_stmt 1 view -0 10469 .cfi_startproc 10470 @ args = 0, pretend = 0, frame = 0 10471 @ frame_needed = 0, uses_anonymous_args = 0 10472 @ link register save eliminated. 4806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection); 10473 .loc 1 4806 3 view .LVU3697 4807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode); 10474 .loc 1 4807 3 view .LVU3698 4808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10475 .loc 1 4808 3 view .LVU3699 4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10476 .loc 1 4813 1 is_stmt 0 view .LVU3700 10477 0000 7047 bx lr 10478 .cfi_endproc ARM GAS /tmp/ccN54YTb.s page 378 10479 .LFE375: 10481 .section .text.I2C_ITAddrCplt,"ax",%progbits 10482 .align 1 10483 .syntax unified 10484 .thumb 10485 .thumb_func 10487 I2C_ITAddrCplt: 10488 .LVL758: 10489 .LFB392: 5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 10490 .loc 1 5939 1 is_stmt 1 view -0 10491 .cfi_startproc 10492 @ args = 0, pretend = 0, frame = 0 10493 @ frame_needed = 0, uses_anonymous_args = 0 5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 10494 .loc 1 5939 1 is_stmt 0 view .LVU3702 10495 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10496 .cfi_def_cfa_offset 24 10497 .cfi_offset 3, -24 10498 .cfi_offset 4, -20 10499 .cfi_offset 5, -16 10500 .cfi_offset 6, -12 10501 .cfi_offset 7, -8 10502 .cfi_offset 14, -4 10503 0002 0446 mov r4, r0 5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode; 10504 .loc 1 5940 3 is_stmt 1 view .LVU3703 5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code; 10505 .loc 1 5941 3 view .LVU3704 5942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code; 10506 .loc 1 5942 3 view .LVU3705 5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10507 .loc 1 5943 3 view .LVU3706 5946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10508 .loc 1 5946 3 view .LVU3707 5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10509 .loc 1 5949 3 view .LVU3708 5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10510 .loc 1 5949 22 is_stmt 0 view .LVU3709 10511 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10512 .loc 1 5949 6 view .LVU3710 10513 0008 03F02803 and r3, r3, #40 10514 000c 282B cmp r3, #40 10515 000e 06D0 beq .L681 6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10516 .loc 1 6021 5 is_stmt 1 view .LVU3711 10517 0010 0368 ldr r3, [r0] 10518 0012 0822 movs r2, #8 10519 0014 DA61 str r2, [r3, #28] 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10520 .loc 1 6024 5 view .LVU3712 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10521 .loc 1 6024 5 view .LVU3713 10522 0016 0023 movs r3, #0 10523 0018 80F84030 strb r3, [r0, #64] 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 379 10524 .loc 1 6024 5 discriminator 1 view .LVU3714 10525 .LVL759: 10526 .L675: 6026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10527 .loc 1 6026 1 is_stmt 0 view .LVU3715 10528 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10529 .LVL760: 10530 .L681: 5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10531 .loc 1 5951 5 is_stmt 1 view .LVU3716 5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10532 .loc 1 5951 25 is_stmt 0 view .LVU3717 10533 001e 0368 ldr r3, [r0] 10534 0020 9E69 ldr r6, [r3, #24] 5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10535 .loc 1 5951 23 view .LVU3718 10536 0022 C6F30046 ubfx r6, r6, #16, #1 10537 .LVL761: 5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10538 .loc 1 5952 5 is_stmt 1 view .LVU3719 5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10539 .loc 1 5952 25 is_stmt 0 view .LVU3720 10540 0026 9A69 ldr r2, [r3, #24] 10541 0028 120C lsrs r2, r2, #16 5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10542 .loc 1 5952 23 view .LVU3721 10543 002a 02F0FE05 and r5, r2, #254 10544 .LVL762: 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10545 .loc 1 5953 5 is_stmt 1 view .LVU3722 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10546 .loc 1 5953 25 is_stmt 0 view .LVU3723 10547 002e 9A68 ldr r2, [r3, #8] 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10548 .loc 1 5953 23 view .LVU3724 10549 0030 C2F30902 ubfx r2, r2, #0, #10 10550 .LVL763: 5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10551 .loc 1 5954 5 is_stmt 1 view .LVU3725 5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10552 .loc 1 5954 25 is_stmt 0 view .LVU3726 10553 0034 DF68 ldr r7, [r3, #12] 5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10554 .loc 1 5954 23 view .LVU3727 10555 0036 07F0FE07 and r7, r7, #254 10556 .LVL764: 5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10557 .loc 1 5957 5 is_stmt 1 view .LVU3728 5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10558 .loc 1 5957 19 is_stmt 0 view .LVU3729 10559 003a C168 ldr r1, [r0, #12] 10560 .LVL765: 5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10561 .loc 1 5957 8 view .LVU3730 10562 003c 0229 cmp r1, #2 10563 003e 22D1 bne .L677 5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 380 10564 .loc 1 5959 7 is_stmt 1 view .LVU3731 5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10565 .loc 1 5959 44 is_stmt 0 view .LVU3732 10566 0040 85EAD215 eor r5, r5, r2, lsr #7 10567 .LVL766: 5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10568 .loc 1 5959 10 view .LVU3733 10569 0044 15F0060F tst r5, #6 10570 0048 10D1 bne .L678 5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++; 10571 .loc 1 5961 9 is_stmt 1 view .LVU3734 10572 .LVL767: 5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10573 .loc 1 5962 9 view .LVU3735 5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10574 .loc 1 5962 13 is_stmt 0 view .LVU3736 10575 004a 816C ldr r1, [r0, #72] 5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10576 .loc 1 5962 29 view .LVU3737 10577 004c 0131 adds r1, r1, #1 10578 004e 8164 str r1, [r0, #72] 5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10579 .loc 1 5963 9 is_stmt 1 view .LVU3738 5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10580 .loc 1 5963 17 is_stmt 0 view .LVU3739 10581 0050 816C ldr r1, [r0, #72] 5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10582 .loc 1 5963 12 view .LVU3740 10583 0052 0229 cmp r1, #2 10584 0054 E2D1 bne .L675 5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10585 .loc 1 5966 11 is_stmt 1 view .LVU3741 5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10586 .loc 1 5966 32 is_stmt 0 view .LVU3742 10587 0056 0021 movs r1, #0 10588 0058 8164 str r1, [r0, #72] 5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10589 .loc 1 5969 11 is_stmt 1 view .LVU3743 10590 005a 0820 movs r0, #8 10591 .LVL768: 5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10592 .loc 1 5969 11 is_stmt 0 view .LVU3744 10593 005c D861 str r0, [r3, #28] 5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10594 .loc 1 5972 11 is_stmt 1 view .LVU3745 5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10595 .loc 1 5972 11 view .LVU3746 10596 005e 84F84010 strb r1, [r4, #64] 5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10597 .loc 1 5972 11 view .LVU3747 5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10598 .loc 1 5978 11 view .LVU3748 10599 0062 3146 mov r1, r6 10600 0064 2046 mov r0, r4 10601 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10602 .LVL769: 5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccN54YTb.s page 381 10603 .loc 1 5978 11 is_stmt 0 view .LVU3749 10604 006a D7E7 b .L675 10605 .LVL770: 10606 .L678: 5984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10607 .loc 1 5984 9 is_stmt 1 view .LVU3750 5987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10608 .loc 1 5987 9 view .LVU3751 10609 006c 4FF40041 mov r1, #32768 10610 0070 FFF7FEFF bl I2C_Disable_IRQ 10611 .LVL771: 5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10612 .loc 1 5990 9 view .LVU3752 5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10613 .loc 1 5990 9 view .LVU3753 10614 0074 0023 movs r3, #0 10615 0076 84F84030 strb r3, [r4, #64] 5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10616 .loc 1 5990 9 view .LVU3754 5996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10617 .loc 1 5996 9 view .LVU3755 10618 007a 3A46 mov r2, r7 10619 007c 3146 mov r1, r6 10620 007e 2046 mov r0, r4 10621 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10622 .LVL772: 10623 0084 CAE7 b .L675 10624 .LVL773: 10625 .L677: 6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10626 .loc 1 6004 7 view .LVU3756 10627 0086 4FF40041 mov r1, #32768 10628 008a FFF7FEFF bl I2C_Disable_IRQ 10629 .LVL774: 6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10630 .loc 1 6007 7 view .LVU3757 6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10631 .loc 1 6007 7 view .LVU3758 10632 008e 0023 movs r3, #0 10633 0090 84F84030 strb r3, [r4, #64] 6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10634 .loc 1 6007 7 view .LVU3759 6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10635 .loc 1 6013 7 view .LVU3760 10636 0094 2A46 mov r2, r5 10637 0096 3146 mov r1, r6 10638 0098 2046 mov r0, r4 10639 009a FFF7FEFF bl HAL_I2C_AddrCallback 10640 .LVL775: 10641 009e BDE7 b .L675 10642 .cfi_endproc 10643 .LFE392: 10645 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10646 .align 1 10647 .weak HAL_I2C_ListenCpltCallback 10648 .syntax unified 10649 .thumb ARM GAS /tmp/ccN54YTb.s page 382 10650 .thumb_func 10652 HAL_I2C_ListenCpltCallback: 10653 .LVL776: 10654 .LFB376: 4822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10655 .loc 1 4822 1 view -0 10656 .cfi_startproc 10657 @ args = 0, pretend = 0, frame = 0 10658 @ frame_needed = 0, uses_anonymous_args = 0 10659 @ link register save eliminated. 4824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10660 .loc 1 4824 3 view .LVU3762 4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10661 .loc 1 4829 1 is_stmt 0 view .LVU3763 10662 0000 7047 bx lr 10663 .cfi_endproc 10664 .LFE376: 10666 .section .text.I2C_ITListenCplt,"ax",%progbits 10667 .align 1 10668 .syntax unified 10669 .thumb 10670 .thumb_func 10672 I2C_ITListenCplt: 10673 .LVL777: 10674 .LFB397: 6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 10675 .loc 1 6520 1 is_stmt 1 view -0 10676 .cfi_startproc 10677 @ args = 0, pretend = 0, frame = 0 10678 @ frame_needed = 0, uses_anonymous_args = 0 6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 10679 .loc 1 6520 1 is_stmt 0 view .LVU3765 10680 0000 10B5 push {r4, lr} 10681 .cfi_def_cfa_offset 8 10682 .cfi_offset 4, -8 10683 .cfi_offset 14, -4 10684 0002 0446 mov r4, r0 6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10685 .loc 1 6522 3 is_stmt 1 view .LVU3766 6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10686 .loc 1 6522 21 is_stmt 0 view .LVU3767 10687 0004 174B ldr r3, .L686 10688 0006 C362 str r3, [r0, #44] 6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10689 .loc 1 6523 3 is_stmt 1 view .LVU3768 6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10690 .loc 1 6523 23 is_stmt 0 view .LVU3769 10691 0008 0023 movs r3, #0 10692 000a 0363 str r3, [r0, #48] 6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10693 .loc 1 6524 3 is_stmt 1 view .LVU3770 6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10694 .loc 1 6524 15 is_stmt 0 view .LVU3771 10695 000c 2022 movs r2, #32 10696 000e 80F84120 strb r2, [r0, #65] 6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10697 .loc 1 6525 3 is_stmt 1 view .LVU3772 ARM GAS /tmp/ccN54YTb.s page 383 6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10698 .loc 1 6525 14 is_stmt 0 view .LVU3773 10699 0012 80F84230 strb r3, [r0, #66] 6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10700 .loc 1 6526 3 is_stmt 1 view .LVU3774 6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10701 .loc 1 6526 17 is_stmt 0 view .LVU3775 10702 0016 4363 str r3, [r0, #52] 6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10703 .loc 1 6529 3 is_stmt 1 view .LVU3776 6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10704 .loc 1 6529 6 is_stmt 0 view .LVU3777 10705 0018 11F0040F tst r1, #4 10706 001c 13D0 beq .L684 6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10707 .loc 1 6532 5 is_stmt 1 view .LVU3778 6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10708 .loc 1 6532 36 is_stmt 0 view .LVU3779 10709 001e 0368 ldr r3, [r0] 6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10710 .loc 1 6532 46 view .LVU3780 10711 0020 5A6A ldr r2, [r3, #36] 6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10712 .loc 1 6532 10 view .LVU3781 10713 0022 436A ldr r3, [r0, #36] 6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10714 .loc 1 6532 21 view .LVU3782 10715 0024 1A70 strb r2, [r3] 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10716 .loc 1 6535 5 is_stmt 1 view .LVU3783 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10717 .loc 1 6535 9 is_stmt 0 view .LVU3784 10718 0026 436A ldr r3, [r0, #36] 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10719 .loc 1 6535 19 view .LVU3785 10720 0028 0133 adds r3, r3, #1 10721 002a 4362 str r3, [r0, #36] 6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10722 .loc 1 6537 5 is_stmt 1 view .LVU3786 6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10723 .loc 1 6537 14 is_stmt 0 view .LVU3787 10724 002c 038D ldrh r3, [r0, #40] 6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10725 .loc 1 6537 8 view .LVU3788 10726 002e 53B1 cbz r3, .L684 6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 10727 .loc 1 6539 7 is_stmt 1 view .LVU3789 6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 10728 .loc 1 6539 21 is_stmt 0 view .LVU3790 10729 0030 013B subs r3, r3, #1 10730 0032 0385 strh r3, [r0, #40] @ movhi 6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10731 .loc 1 6540 7 is_stmt 1 view .LVU3791 6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10732 .loc 1 6540 11 is_stmt 0 view .LVU3792 10733 0034 438D ldrh r3, [r0, #42] 10734 0036 9BB2 uxth r3, r3 ARM GAS /tmp/ccN54YTb.s page 384 6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10735 .loc 1 6540 22 view .LVU3793 10736 0038 013B subs r3, r3, #1 10737 003a 9BB2 uxth r3, r3 10738 003c 4385 strh r3, [r0, #42] @ movhi 6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10739 .loc 1 6543 7 is_stmt 1 view .LVU3794 6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10740 .loc 1 6543 11 is_stmt 0 view .LVU3795 10741 003e 436C ldr r3, [r0, #68] 6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10742 .loc 1 6543 23 view .LVU3796 10743 0040 43F00403 orr r3, r3, #4 10744 0044 4364 str r3, [r0, #68] 10745 .L684: 6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10746 .loc 1 6548 3 is_stmt 1 view .LVU3797 10747 0046 48F20301 movw r1, #32771 10748 .LVL778: 6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10749 .loc 1 6548 3 is_stmt 0 view .LVU3798 10750 004a 2046 mov r0, r4 10751 .LVL779: 6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10752 .loc 1 6548 3 view .LVU3799 10753 004c FFF7FEFF bl I2C_Disable_IRQ 10754 .LVL780: 6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10755 .loc 1 6551 3 is_stmt 1 view .LVU3800 10756 0050 2368 ldr r3, [r4] 10757 0052 1022 movs r2, #16 10758 0054 DA61 str r2, [r3, #28] 6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10759 .loc 1 6554 3 view .LVU3801 6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10760 .loc 1 6554 3 view .LVU3802 10761 0056 0023 movs r3, #0 10762 0058 84F84030 strb r3, [r4, #64] 6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10763 .loc 1 6554 3 view .LVU3803 6560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10764 .loc 1 6560 3 view .LVU3804 10765 005c 2046 mov r0, r4 10766 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10767 .LVL781: 6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10768 .loc 1 6562 1 is_stmt 0 view .LVU3805 10769 0062 10BD pop {r4, pc} 10770 .LVL782: 10771 .L687: 6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10772 .loc 1 6562 1 view .LVU3806 10773 .align 2 10774 .L686: 10775 0064 0000FFFF .word -65536 10776 .cfi_endproc 10777 .LFE397: ARM GAS /tmp/ccN54YTb.s page 385 10779 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10780 .align 1 10781 .weak HAL_I2C_MemTxCpltCallback 10782 .syntax unified 10783 .thumb 10784 .thumb_func 10786 HAL_I2C_MemTxCpltCallback: 10787 .LVL783: 10788 .LFB377: 4838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10789 .loc 1 4838 1 is_stmt 1 view -0 10790 .cfi_startproc 10791 @ args = 0, pretend = 0, frame = 0 10792 @ frame_needed = 0, uses_anonymous_args = 0 10793 @ link register save eliminated. 4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10794 .loc 1 4840 3 view .LVU3808 4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10795 .loc 1 4845 1 is_stmt 0 view .LVU3809 10796 0000 7047 bx lr 10797 .cfi_endproc 10798 .LFE377: 10800 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10801 .align 1 10802 .weak HAL_I2C_MemRxCpltCallback 10803 .syntax unified 10804 .thumb 10805 .thumb_func 10807 HAL_I2C_MemRxCpltCallback: 10808 .LVL784: 10809 .LFB378: 4854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10810 .loc 1 4854 1 is_stmt 1 view -0 10811 .cfi_startproc 10812 @ args = 0, pretend = 0, frame = 0 10813 @ frame_needed = 0, uses_anonymous_args = 0 10814 @ link register save eliminated. 4856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10815 .loc 1 4856 3 view .LVU3811 4861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10816 .loc 1 4861 1 is_stmt 0 view .LVU3812 10817 0000 7047 bx lr 10818 .cfi_endproc 10819 .LFE378: 10821 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10822 .align 1 10823 .weak HAL_I2C_ErrorCallback 10824 .syntax unified 10825 .thumb 10826 .thumb_func 10828 HAL_I2C_ErrorCallback: 10829 .LVL785: 10830 .LFB379: 4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10831 .loc 1 4870 1 is_stmt 1 view -0 10832 .cfi_startproc 10833 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccN54YTb.s page 386 10834 @ frame_needed = 0, uses_anonymous_args = 0 10835 @ link register save eliminated. 4872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10836 .loc 1 4872 3 view .LVU3814 4877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10837 .loc 1 4877 1 is_stmt 0 view .LVU3815 10838 0000 7047 bx lr 10839 .cfi_endproc 10840 .LFE379: 10842 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10843 .align 1 10844 .weak HAL_I2C_AbortCpltCallback 10845 .syntax unified 10846 .thumb 10847 .thumb_func 10849 HAL_I2C_AbortCpltCallback: 10850 .LVL786: 10851 .LFB380: 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10852 .loc 1 4886 1 is_stmt 1 view -0 10853 .cfi_startproc 10854 @ args = 0, pretend = 0, frame = 0 10855 @ frame_needed = 0, uses_anonymous_args = 0 10856 @ link register save eliminated. 4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10857 .loc 1 4888 3 view .LVU3817 4893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10858 .loc 1 4893 1 is_stmt 0 view .LVU3818 10859 0000 7047 bx lr 10860 .cfi_endproc 10861 .LFE380: 10863 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10864 .align 1 10865 .syntax unified 10866 .thumb 10867 .thumb_func 10869 I2C_TreatErrorCallback: 10870 .LVL787: 10871 .LFB399: 6702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10872 .loc 1 6702 1 is_stmt 1 view -0 10873 .cfi_startproc 10874 @ args = 0, pretend = 0, frame = 0 10875 @ frame_needed = 0, uses_anonymous_args = 0 6702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10876 .loc 1 6702 1 is_stmt 0 view .LVU3820 10877 0000 08B5 push {r3, lr} 10878 .cfi_def_cfa_offset 8 10879 .cfi_offset 3, -8 10880 .cfi_offset 14, -4 6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10881 .loc 1 6703 3 is_stmt 1 view .LVU3821 6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10882 .loc 1 6703 11 is_stmt 0 view .LVU3822 10883 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10884 .loc 1 6703 6 view .LVU3823 ARM GAS /tmp/ccN54YTb.s page 387 10885 0006 602B cmp r3, #96 10886 0008 06D0 beq .L696 6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10887 .loc 1 6720 5 is_stmt 1 view .LVU3824 6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10888 .loc 1 6720 25 is_stmt 0 view .LVU3825 10889 000a 0023 movs r3, #0 10890 000c 0363 str r3, [r0, #48] 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10891 .loc 1 6723 5 is_stmt 1 view .LVU3826 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10892 .loc 1 6723 5 view .LVU3827 10893 000e 80F84030 strb r3, [r0, #64] 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10894 .loc 1 6723 5 view .LVU3828 6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10895 .loc 1 6729 5 view .LVU3829 10896 0012 FFF7FEFF bl HAL_I2C_ErrorCallback 10897 .LVL788: 10898 .L692: 6732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10899 .loc 1 6732 1 is_stmt 0 view .LVU3830 10900 0016 08BD pop {r3, pc} 10901 .LVL789: 10902 .L696: 6705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10903 .loc 1 6705 5 is_stmt 1 view .LVU3831 6705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10904 .loc 1 6705 17 is_stmt 0 view .LVU3832 10905 0018 2023 movs r3, #32 10906 001a 80F84130 strb r3, [r0, #65] 6706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10907 .loc 1 6706 5 is_stmt 1 view .LVU3833 6706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10908 .loc 1 6706 25 is_stmt 0 view .LVU3834 10909 001e 0023 movs r3, #0 10910 0020 0363 str r3, [r0, #48] 6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10911 .loc 1 6709 5 is_stmt 1 view .LVU3835 6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10912 .loc 1 6709 5 view .LVU3836 10913 0022 80F84030 strb r3, [r0, #64] 6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10914 .loc 1 6709 5 view .LVU3837 6715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10915 .loc 1 6715 5 view .LVU3838 10916 0026 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10917 .LVL790: 6715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10918 .loc 1 6715 5 is_stmt 0 view .LVU3839 10919 002a F4E7 b .L692 10920 .cfi_endproc 10921 .LFE399: 10923 .section .text.I2C_ITError,"ax",%progbits 10924 .align 1 10925 .syntax unified 10926 .thumb ARM GAS /tmp/ccN54YTb.s page 388 10927 .thumb_func 10929 I2C_ITError: 10930 .LVL791: 10931 .LFB398: 6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10932 .loc 1 6571 1 is_stmt 1 view -0 10933 .cfi_startproc 10934 @ args = 0, pretend = 0, frame = 0 10935 @ frame_needed = 0, uses_anonymous_args = 0 6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10936 .loc 1 6571 1 is_stmt 0 view .LVU3841 10937 0000 10B5 push {r4, lr} 10938 .cfi_def_cfa_offset 8 10939 .cfi_offset 4, -8 10940 .cfi_offset 14, -4 10941 0002 0446 mov r4, r0 6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10942 .loc 1 6572 3 is_stmt 1 view .LVU3842 6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10943 .loc 1 6572 24 is_stmt 0 view .LVU3843 10944 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10945 .LVL792: 6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10946 .loc 1 6574 3 is_stmt 1 view .LVU3844 6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10947 .loc 1 6577 3 view .LVU3845 6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10948 .loc 1 6577 23 is_stmt 0 view .LVU3846 10949 0008 0022 movs r2, #0 10950 000a 80F84220 strb r2, [r0, #66] 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10951 .loc 1 6578 3 is_stmt 1 view .LVU3847 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10952 .loc 1 6578 23 is_stmt 0 view .LVU3848 10953 000e 4548 ldr r0, .L710 10954 .LVL793: 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10955 .loc 1 6578 23 view .LVU3849 10956 0010 E062 str r0, [r4, #44] 6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10957 .loc 1 6579 3 is_stmt 1 view .LVU3850 6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10958 .loc 1 6579 23 is_stmt 0 view .LVU3851 10959 0012 6285 strh r2, [r4, #42] @ movhi 6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10960 .loc 1 6582 3 is_stmt 1 view .LVU3852 6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10961 .loc 1 6582 7 is_stmt 0 view .LVU3853 10962 0014 626C ldr r2, [r4, #68] 6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10963 .loc 1 6582 19 view .LVU3854 10964 0016 0A43 orrs r2, r2, r1 10965 0018 6264 str r2, [r4, #68] 6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10966 .loc 1 6585 3 is_stmt 1 view .LVU3855 6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10967 .loc 1 6586 50 is_stmt 0 view .LVU3856 ARM GAS /tmp/ccN54YTb.s page 389 10968 001a 283B subs r3, r3, #40 10969 .LVL794: 6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10970 .loc 1 6586 50 view .LVU3857 10971 001c DBB2 uxtb r3, r3 10972 .LVL795: 6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10973 .loc 1 6585 6 view .LVU3858 10974 001e 022B cmp r3, #2 10975 0020 2DD8 bhi .L698 6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10976 .loc 1 6590 5 is_stmt 1 view .LVU3859 10977 0022 0321 movs r1, #3 10978 .LVL796: 6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10979 .loc 1 6590 5 is_stmt 0 view .LVU3860 10980 0024 2046 mov r0, r4 10981 0026 FFF7FEFF bl I2C_Disable_IRQ 10982 .LVL797: 6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10983 .loc 1 6593 5 is_stmt 1 view .LVU3861 6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10984 .loc 1 6593 25 is_stmt 0 view .LVU3862 10985 002a 2823 movs r3, #40 10986 002c 84F84130 strb r3, [r4, #65] 6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10987 .loc 1 6594 5 is_stmt 1 view .LVU3863 6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10988 .loc 1 6594 25 is_stmt 0 view .LVU3864 10989 0030 3D4B ldr r3, .L710+4 10990 0032 6363 str r3, [r4, #52] 10991 .L699: 6629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10992 .loc 1 6629 3 is_stmt 1 view .LVU3865 6629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10993 .loc 1 6629 20 is_stmt 0 view .LVU3866 10994 0034 236B ldr r3, [r4, #48] 10995 .LVL798: 6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10996 .loc 1 6631 3 is_stmt 1 view .LVU3867 6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10997 .loc 1 6631 12 is_stmt 0 view .LVU3868 10998 0036 A26B ldr r2, [r4, #56] 6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10999 .loc 1 6631 6 view .LVU3869 11000 0038 002A cmp r2, #0 11001 003a 48D0 beq .L702 6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11002 .loc 1 6631 30 discriminator 1 view .LVU3870 11003 003c 212B cmp r3, #33 11004 003e 18BF it ne 11005 0040 112B cmpne r3, #17 11006 0042 44D1 bne .L702 6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11007 .loc 1 6634 5 is_stmt 1 view .LVU3871 6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11008 .loc 1 6634 14 is_stmt 0 view .LVU3872 ARM GAS /tmp/ccN54YTb.s page 390 11009 0044 2368 ldr r3, [r4] 11010 .LVL799: 6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11011 .loc 1 6634 24 view .LVU3873 11012 0046 1A68 ldr r2, [r3] 6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11013 .loc 1 6634 8 view .LVU3874 11014 0048 12F4804F tst r2, #16384 11015 004c 03D0 beq .L703 6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11016 .loc 1 6636 7 is_stmt 1 view .LVU3875 6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11017 .loc 1 6636 21 is_stmt 0 view .LVU3876 11018 004e 1A68 ldr r2, [r3] 6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11019 .loc 1 6636 27 view .LVU3877 11020 0050 22F48042 bic r2, r2, #16384 11021 0054 1A60 str r2, [r3] 11022 .L703: 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11023 .loc 1 6639 5 is_stmt 1 view .LVU3878 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11024 .loc 1 6639 9 is_stmt 0 view .LVU3879 11025 0056 A06B ldr r0, [r4, #56] 11026 0058 FFF7FEFF bl HAL_DMA_GetState 11027 .LVL800: 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11028 .loc 1 6639 8 discriminator 1 view .LVU3880 11029 005c 0128 cmp r0, #1 11030 005e 32D0 beq .L704 6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11031 .loc 1 6643 7 is_stmt 1 view .LVU3881 6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11032 .loc 1 6643 11 is_stmt 0 view .LVU3882 11033 0060 A36B ldr r3, [r4, #56] 6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11034 .loc 1 6643 39 view .LVU3883 11035 0062 324A ldr r2, .L710+8 11036 0064 1A65 str r2, [r3, #80] 6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11037 .loc 1 6646 7 is_stmt 1 view .LVU3884 6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11038 .loc 1 6646 7 view .LVU3885 11039 0066 0023 movs r3, #0 11040 0068 84F84030 strb r3, [r4, #64] 6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11041 .loc 1 6646 7 view .LVU3886 6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11042 .loc 1 6649 7 view .LVU3887 6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11043 .loc 1 6649 11 is_stmt 0 view .LVU3888 11044 006c A06B ldr r0, [r4, #56] 11045 006e FFF7FEFF bl HAL_DMA_Abort_IT 11046 .LVL801: 6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11047 .loc 1 6649 10 discriminator 1 view .LVU3889 11048 0072 0028 cmp r0, #0 ARM GAS /tmp/ccN54YTb.s page 391 11049 0074 54D0 beq .L697 6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11050 .loc 1 6652 9 is_stmt 1 view .LVU3890 6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11051 .loc 1 6652 13 is_stmt 0 view .LVU3891 11052 0076 A06B ldr r0, [r4, #56] 6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11053 .loc 1 6652 21 view .LVU3892 11054 0078 036D ldr r3, [r0, #80] 6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11055 .loc 1 6652 9 view .LVU3893 11056 007a 9847 blx r3 11057 .LVL802: 11058 007c 50E0 b .L697 11059 .LVL803: 11060 .L698: 6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11061 .loc 1 6599 5 is_stmt 1 view .LVU3894 11062 007e 48F20301 movw r1, #32771 11063 .LVL804: 6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11064 .loc 1 6599 5 is_stmt 0 view .LVU3895 11065 0082 2046 mov r0, r4 11066 0084 FFF7FEFF bl I2C_Disable_IRQ 11067 .LVL805: 6602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11068 .loc 1 6602 5 is_stmt 1 view .LVU3896 11069 0088 2046 mov r0, r4 11070 008a FFF7FEFF bl I2C_Flush_TXDR 11071 .LVL806: 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11072 .loc 1 6606 5 view .LVU3897 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11073 .loc 1 6606 13 is_stmt 0 view .LVU3898 11074 008e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11075 .loc 1 6606 8 view .LVU3899 11076 0092 602B cmp r3, #96 11077 0094 14D0 beq .L700 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11078 .loc 1 6609 7 is_stmt 1 view .LVU3900 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11079 .loc 1 6609 27 is_stmt 0 view .LVU3901 11080 0096 2023 movs r3, #32 11081 0098 84F84130 strb r3, [r4, #65] 6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11082 .loc 1 6612 7 is_stmt 1 view .LVU3902 6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11083 .loc 1 6612 11 is_stmt 0 view .LVU3903 11084 009c 2368 ldr r3, [r4] 11085 009e 9A69 ldr r2, [r3, #24] 6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11086 .loc 1 6612 10 view .LVU3904 11087 00a0 12F0200F tst r2, #32 11088 00a4 0CD0 beq .L700 6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11089 .loc 1 6614 9 is_stmt 1 view .LVU3905 ARM GAS /tmp/ccN54YTb.s page 392 6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11090 .loc 1 6614 13 is_stmt 0 view .LVU3906 11091 00a6 9A69 ldr r2, [r3, #24] 6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11092 .loc 1 6614 12 view .LVU3907 11093 00a8 12F0100F tst r2, #16 11094 00ac 05D0 beq .L701 6616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 11095 .loc 1 6616 11 is_stmt 1 view .LVU3908 11096 00ae 1022 movs r2, #16 11097 00b0 DA61 str r2, [r3, #28] 6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11098 .loc 1 6617 11 view .LVU3909 6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11099 .loc 1 6617 15 is_stmt 0 view .LVU3910 11100 00b2 636C ldr r3, [r4, #68] 6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11101 .loc 1 6617 27 view .LVU3911 11102 00b4 43F00403 orr r3, r3, #4 11103 00b8 6364 str r3, [r4, #68] 11104 .L701: 6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11105 .loc 1 6621 9 is_stmt 1 view .LVU3912 11106 00ba 2368 ldr r3, [r4] 11107 00bc 2022 movs r2, #32 11108 00be DA61 str r2, [r3, #28] 11109 .L700: 6625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11110 .loc 1 6625 5 view .LVU3913 6625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11111 .loc 1 6625 25 is_stmt 0 view .LVU3914 11112 00c0 0023 movs r3, #0 11113 00c2 6363 str r3, [r4, #52] 11114 00c4 B6E7 b .L699 11115 .LVL807: 11116 .L704: 6657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11117 .loc 1 6657 7 is_stmt 1 view .LVU3915 11118 00c6 2046 mov r0, r4 11119 00c8 FFF7FEFF bl I2C_TreatErrorCallback 11120 .LVL808: 11121 00cc 28E0 b .L697 11122 .LVL809: 11123 .L702: 6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11124 .loc 1 6661 8 view .LVU3916 6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11125 .loc 1 6661 17 is_stmt 0 view .LVU3917 11126 00ce E26B ldr r2, [r4, #60] 6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11127 .loc 1 6661 11 view .LVU3918 11128 00d0 1AB3 cbz r2, .L706 6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11129 .loc 1 6661 35 discriminator 1 view .LVU3919 11130 00d2 222B cmp r3, #34 11131 00d4 18BF it ne 11132 00d6 122B cmpne r3, #18 ARM GAS /tmp/ccN54YTb.s page 393 11133 00d8 1FD1 bne .L706 6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11134 .loc 1 6664 5 is_stmt 1 view .LVU3920 6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11135 .loc 1 6664 14 is_stmt 0 view .LVU3921 11136 00da 2368 ldr r3, [r4] 11137 .LVL810: 6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11138 .loc 1 6664 24 view .LVU3922 11139 00dc 1A68 ldr r2, [r3] 6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11140 .loc 1 6664 8 view .LVU3923 11141 00de 12F4004F tst r2, #32768 11142 00e2 03D0 beq .L707 6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11143 .loc 1 6666 7 is_stmt 1 view .LVU3924 6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11144 .loc 1 6666 21 is_stmt 0 view .LVU3925 11145 00e4 1A68 ldr r2, [r3] 6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11146 .loc 1 6666 27 view .LVU3926 11147 00e6 22F40042 bic r2, r2, #32768 11148 00ea 1A60 str r2, [r3] 11149 .L707: 6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11150 .loc 1 6669 5 is_stmt 1 view .LVU3927 6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11151 .loc 1 6669 9 is_stmt 0 view .LVU3928 11152 00ec E06B ldr r0, [r4, #60] 11153 00ee FFF7FEFF bl HAL_DMA_GetState 11154 .LVL811: 6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11155 .loc 1 6669 8 discriminator 1 view .LVU3929 11156 00f2 0128 cmp r0, #1 11157 00f4 0DD0 beq .L708 6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11158 .loc 1 6673 7 is_stmt 1 view .LVU3930 6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11159 .loc 1 6673 11 is_stmt 0 view .LVU3931 11160 00f6 E36B ldr r3, [r4, #60] 6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11161 .loc 1 6673 39 view .LVU3932 11162 00f8 0C4A ldr r2, .L710+8 11163 00fa 1A65 str r2, [r3, #80] 6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11164 .loc 1 6676 7 is_stmt 1 view .LVU3933 6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11165 .loc 1 6676 7 view .LVU3934 11166 00fc 0023 movs r3, #0 11167 00fe 84F84030 strb r3, [r4, #64] 6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11168 .loc 1 6676 7 view .LVU3935 6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11169 .loc 1 6679 7 view .LVU3936 6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11170 .loc 1 6679 11 is_stmt 0 view .LVU3937 11171 0102 E06B ldr r0, [r4, #60] ARM GAS /tmp/ccN54YTb.s page 394 11172 0104 FFF7FEFF bl HAL_DMA_Abort_IT 11173 .LVL812: 6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11174 .loc 1 6679 10 discriminator 1 view .LVU3938 11175 0108 50B1 cbz r0, .L697 6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11176 .loc 1 6682 9 is_stmt 1 view .LVU3939 6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11177 .loc 1 6682 13 is_stmt 0 view .LVU3940 11178 010a E06B ldr r0, [r4, #60] 6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11179 .loc 1 6682 21 view .LVU3941 11180 010c 036D ldr r3, [r0, #80] 6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11181 .loc 1 6682 9 view .LVU3942 11182 010e 9847 blx r3 11183 .LVL813: 11184 0110 06E0 b .L697 11185 .L708: 6687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11186 .loc 1 6687 7 is_stmt 1 view .LVU3943 11187 0112 2046 mov r0, r4 11188 0114 FFF7FEFF bl I2C_TreatErrorCallback 11189 .LVL814: 11190 0118 02E0 b .L697 11191 .LVL815: 11192 .L706: 6692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11193 .loc 1 6692 5 view .LVU3944 11194 011a 2046 mov r0, r4 11195 011c FFF7FEFF bl I2C_TreatErrorCallback 11196 .LVL816: 11197 .L697: 6694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11198 .loc 1 6694 1 is_stmt 0 view .LVU3945 11199 0120 10BD pop {r4, pc} 11200 .LVL817: 11201 .L711: 6694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11202 .loc 1 6694 1 view .LVU3946 11203 0122 00BF .align 2 11204 .L710: 11205 0124 0000FFFF .word -65536 11206 0128 00000000 .word I2C_Slave_ISR_IT 11207 012c 00000000 .word I2C_DMAAbort 11208 .cfi_endproc 11209 .LFE398: 11211 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11212 .align 1 11213 .syntax unified 11214 .thumb 11215 .thumb_func 11217 I2C_ITSlaveCplt: 11218 .LVL818: 11219 .LFB396: 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11220 .loc 1 6304 1 is_stmt 1 view -0 ARM GAS /tmp/ccN54YTb.s page 395 11221 .cfi_startproc 11222 @ args = 0, pretend = 0, frame = 0 11223 @ frame_needed = 0, uses_anonymous_args = 0 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11224 .loc 1 6304 1 is_stmt 0 view .LVU3948 11225 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11226 .cfi_def_cfa_offset 24 11227 .cfi_offset 3, -24 11228 .cfi_offset 4, -20 11229 .cfi_offset 5, -16 11230 .cfi_offset 6, -12 11231 .cfi_offset 7, -8 11232 .cfi_offset 14, -4 11233 0002 0446 mov r4, r0 11234 0004 0D46 mov r5, r1 6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11235 .loc 1 6305 3 is_stmt 1 view .LVU3949 6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11236 .loc 1 6305 26 is_stmt 0 view .LVU3950 11237 0006 0268 ldr r2, [r0] 6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11238 .loc 1 6305 12 view .LVU3951 11239 0008 1668 ldr r6, [r2] 11240 .LVL819: 6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11241 .loc 1 6306 3 is_stmt 1 view .LVU3952 6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11242 .loc 1 6307 3 view .LVU3953 6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11243 .loc 1 6307 12 is_stmt 0 view .LVU3954 11244 000a C76A ldr r7, [r0, #44] 11245 .LVL820: 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11246 .loc 1 6308 3 is_stmt 1 view .LVU3955 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11247 .loc 1 6308 24 is_stmt 0 view .LVU3956 11248 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11249 .LVL821: 6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11250 .loc 1 6311 3 is_stmt 1 view .LVU3957 11251 0010 2021 movs r1, #32 11252 .LVL822: 6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11253 .loc 1 6311 3 is_stmt 0 view .LVU3958 11254 0012 D161 str r1, [r2, #28] 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11255 .loc 1 6314 3 is_stmt 1 view .LVU3959 11256 0014 213B subs r3, r3, #33 11257 .LVL823: 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11258 .loc 1 6314 3 is_stmt 0 view .LVU3960 11259 0016 092B cmp r3, #9 11260 0018 0CD8 bhi .L713 11261 001a DFE803F0 tbb [pc, r3] 11262 .L715: 11263 001e 05 .byte (.L716-.L715)/2 11264 001f 5F .byte (.L714-.L715)/2 ARM GAS /tmp/ccN54YTb.s page 396 11265 0020 0B .byte (.L713-.L715)/2 11266 0021 0B .byte (.L713-.L715)/2 11267 0022 0B .byte (.L713-.L715)/2 11268 0023 0B .byte (.L713-.L715)/2 11269 0024 0B .byte (.L713-.L715)/2 11270 0025 66 .byte (.L717-.L715)/2 11271 0026 05 .byte (.L716-.L715)/2 11272 0027 5F .byte (.L714-.L715)/2 11273 .p2align 1 11274 .L716: 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11275 .loc 1 6316 5 is_stmt 1 view .LVU3961 11276 0028 48F20101 movw r1, #32769 11277 002c FFF7FEFF bl I2C_Disable_IRQ 11278 .LVL824: 6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11279 .loc 1 6317 5 view .LVU3962 6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11280 .loc 1 6317 25 is_stmt 0 view .LVU3963 11281 0030 2123 movs r3, #33 11282 0032 2363 str r3, [r4, #48] 11283 .L713: 6332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11284 .loc 1 6332 3 is_stmt 1 view .LVU3964 6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11285 .loc 1 6335 3 view .LVU3965 6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11286 .loc 1 6335 7 is_stmt 0 view .LVU3966 11287 0034 2268 ldr r2, [r4] 6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11288 .loc 1 6335 17 view .LVU3967 11289 0036 5368 ldr r3, [r2, #4] 6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11290 .loc 1 6335 23 view .LVU3968 11291 0038 43F40043 orr r3, r3, #32768 11292 003c 5360 str r3, [r2, #4] 6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11293 .loc 1 6338 3 is_stmt 1 view .LVU3969 11294 003e 2268 ldr r2, [r4] 11295 0040 5368 ldr r3, [r2, #4] 11296 0042 23F0FF73 bic r3, r3, #33423360 11297 0046 23F48B33 bic r3, r3, #71168 11298 004a 23F4FF73 bic r3, r3, #510 11299 004e 23F00103 bic r3, r3, #1 11300 0052 5360 str r3, [r2, #4] 6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11301 .loc 1 6341 3 view .LVU3970 11302 0054 2046 mov r0, r4 11303 0056 FFF7FEFF bl I2C_Flush_TXDR 11304 .LVL825: 6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11305 .loc 1 6344 3 view .LVU3971 6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11306 .loc 1 6344 6 is_stmt 0 view .LVU3972 11307 005a 16F4804F tst r6, #16384 11308 005e 00F09B80 beq .L718 6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 397 11309 .loc 1 6347 5 is_stmt 1 view .LVU3973 6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11310 .loc 1 6347 9 is_stmt 0 view .LVU3974 11311 0062 2268 ldr r2, [r4] 6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11312 .loc 1 6347 19 view .LVU3975 11313 0064 1368 ldr r3, [r2] 6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11314 .loc 1 6347 25 view .LVU3976 11315 0066 23F48043 bic r3, r3, #16384 11316 006a 1360 str r3, [r2] 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11317 .loc 1 6349 5 is_stmt 1 view .LVU3977 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11318 .loc 1 6349 13 is_stmt 0 view .LVU3978 11319 006c A36B ldr r3, [r4, #56] 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11320 .loc 1 6349 8 view .LVU3979 11321 006e 002B cmp r3, #0 11322 0070 45D0 beq .L719 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11323 .loc 1 6351 7 is_stmt 1 view .LVU3980 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11324 .loc 1 6351 35 is_stmt 0 view .LVU3981 11325 0072 1B68 ldr r3, [r3] 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11326 .loc 1 6351 25 view .LVU3982 11327 0074 9249 ldr r1, .L743 11328 0076 934A ldr r2, .L743+4 11329 0078 9342 cmp r3, r2 11330 007a 18BF it ne 11331 007c 8B42 cmpne r3, r1 11332 007e 3BD0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11333 .loc 1 6351 35 discriminator 2 view .LVU3983 11334 0080 1832 adds r2, r2, #24 11335 0082 9342 cmp r3, r2 11336 0084 38D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11337 .loc 1 6351 35 discriminator 4 view .LVU3984 11338 0086 1832 adds r2, r2, #24 11339 0088 9342 cmp r3, r2 11340 008a 35D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11341 .loc 1 6351 35 discriminator 6 view .LVU3985 11342 008c 1832 adds r2, r2, #24 11343 008e 9342 cmp r3, r2 11344 0090 32D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11345 .loc 1 6351 35 discriminator 8 view .LVU3986 11346 0092 1832 adds r2, r2, #24 11347 0094 9342 cmp r3, r2 11348 0096 2FD0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11349 .loc 1 6351 35 discriminator 10 view .LVU3987 11350 0098 1832 adds r2, r2, #24 11351 009a 9342 cmp r3, r2 ARM GAS /tmp/ccN54YTb.s page 398 11352 009c 2CD0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11353 .loc 1 6351 35 discriminator 12 view .LVU3988 11354 009e 1832 adds r2, r2, #24 11355 00a0 9342 cmp r3, r2 11356 00a2 29D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11357 .loc 1 6351 35 discriminator 14 view .LVU3989 11358 00a4 02F55672 add r2, r2, #856 11359 00a8 9342 cmp r3, r2 11360 00aa 25D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11361 .loc 1 6351 35 discriminator 16 view .LVU3990 11362 00ac 1832 adds r2, r2, #24 11363 00ae 9342 cmp r3, r2 11364 00b0 22D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11365 .loc 1 6351 35 discriminator 18 view .LVU3991 11366 00b2 1832 adds r2, r2, #24 11367 00b4 9342 cmp r3, r2 11368 00b6 1FD0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11369 .loc 1 6351 35 discriminator 20 view .LVU3992 11370 00b8 1832 adds r2, r2, #24 11371 00ba 9342 cmp r3, r2 11372 00bc 1CD0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11373 .loc 1 6351 35 discriminator 22 view .LVU3993 11374 00be 1832 adds r2, r2, #24 11375 00c0 9342 cmp r3, r2 11376 00c2 19D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11377 .loc 1 6351 35 discriminator 24 view .LVU3994 11378 00c4 1832 adds r2, r2, #24 11379 00c6 9342 cmp r3, r2 11380 00c8 16D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11381 .loc 1 6351 35 discriminator 26 view .LVU3995 11382 00ca 1832 adds r2, r2, #24 11383 00cc 9342 cmp r3, r2 11384 00ce 13D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11385 .loc 1 6351 35 discriminator 28 view .LVU3996 11386 00d0 1832 adds r2, r2, #24 11387 00d2 9342 cmp r3, r2 11388 00d4 10D0 beq .L720 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11389 .loc 1 6351 35 discriminator 30 view .LVU3997 11390 00d6 5B68 ldr r3, [r3, #4] 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11391 .loc 1 6351 25 discriminator 30 view .LVU3998 11392 00d8 9BB2 uxth r3, r3 11393 00da 0FE0 b .L722 11394 .LVL826: 11395 .L714: 6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11396 .loc 1 6321 5 is_stmt 1 view .LVU3999 ARM GAS /tmp/ccN54YTb.s page 399 11397 00dc 48F20201 movw r1, #32770 11398 00e0 FFF7FEFF bl I2C_Disable_IRQ 11399 .LVL827: 6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11400 .loc 1 6322 5 view .LVU4000 6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11401 .loc 1 6322 25 is_stmt 0 view .LVU4001 11402 00e4 2223 movs r3, #34 11403 00e6 2363 str r3, [r4, #48] 11404 00e8 A4E7 b .L713 11405 .LVL828: 11406 .L717: 6326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11407 .loc 1 6326 5 is_stmt 1 view .LVU4002 11408 00ea 48F20301 movw r1, #32771 11409 00ee FFF7FEFF bl I2C_Disable_IRQ 11410 .LVL829: 6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11411 .loc 1 6327 5 view .LVU4003 6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11412 .loc 1 6327 25 is_stmt 0 view .LVU4004 11413 00f2 0023 movs r3, #0 11414 00f4 2363 str r3, [r4, #48] 11415 00f6 9DE7 b .L713 11416 .L720: 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11417 .loc 1 6351 35 discriminator 29 view .LVU4005 11418 00f8 5B68 ldr r3, [r3, #4] 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11419 .loc 1 6351 25 discriminator 29 view .LVU4006 11420 00fa 9BB2 uxth r3, r3 11421 .L722: 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11422 .loc 1 6351 23 discriminator 32 view .LVU4007 11423 00fc 6385 strh r3, [r4, #42] @ movhi 11424 .L719: 6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11425 .loc 1 6367 3 is_stmt 1 view .LVU4008 6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11426 .loc 1 6370 3 view .LVU4009 6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11427 .loc 1 6370 6 is_stmt 0 view .LVU4010 11428 00fe 15F0040F tst r5, #4 11429 0102 11D0 beq .L726 6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11430 .loc 1 6373 5 is_stmt 1 view .LVU4011 6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11431 .loc 1 6373 16 is_stmt 0 view .LVU4012 11432 0104 25F00405 bic r5, r5, #4 11433 .LVL830: 6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11434 .loc 1 6376 5 is_stmt 1 view .LVU4013 6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11435 .loc 1 6376 36 is_stmt 0 view .LVU4014 11436 0108 2368 ldr r3, [r4] 6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11437 .loc 1 6376 46 view .LVU4015 ARM GAS /tmp/ccN54YTb.s page 400 11438 010a 5A6A ldr r2, [r3, #36] 6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11439 .loc 1 6376 10 view .LVU4016 11440 010c 636A ldr r3, [r4, #36] 6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11441 .loc 1 6376 21 view .LVU4017 11442 010e 1A70 strb r2, [r3] 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11443 .loc 1 6379 5 is_stmt 1 view .LVU4018 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11444 .loc 1 6379 9 is_stmt 0 view .LVU4019 11445 0110 636A ldr r3, [r4, #36] 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11446 .loc 1 6379 19 view .LVU4020 11447 0112 0133 adds r3, r3, #1 11448 0114 6362 str r3, [r4, #36] 6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11449 .loc 1 6381 5 is_stmt 1 view .LVU4021 6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11450 .loc 1 6381 14 is_stmt 0 view .LVU4022 11451 0116 238D ldrh r3, [r4, #40] 6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11452 .loc 1 6381 8 view .LVU4023 11453 0118 33B1 cbz r3, .L726 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11454 .loc 1 6383 7 is_stmt 1 view .LVU4024 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11455 .loc 1 6383 21 is_stmt 0 view .LVU4025 11456 011a 013B subs r3, r3, #1 11457 011c 2385 strh r3, [r4, #40] @ movhi 6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11458 .loc 1 6384 7 is_stmt 1 view .LVU4026 6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11459 .loc 1 6384 11 is_stmt 0 view .LVU4027 11460 011e 638D ldrh r3, [r4, #42] 11461 0120 9BB2 uxth r3, r3 6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11462 .loc 1 6384 22 view .LVU4028 11463 0122 013B subs r3, r3, #1 11464 0124 9BB2 uxth r3, r3 11465 0126 6385 strh r3, [r4, #42] @ movhi 11466 .L726: 6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11467 .loc 1 6389 3 is_stmt 1 view .LVU4029 6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11468 .loc 1 6389 11 is_stmt 0 view .LVU4030 11469 0128 638D ldrh r3, [r4, #42] 11470 012a 9BB2 uxth r3, r3 6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11471 .loc 1 6389 6 view .LVU4031 11472 012c 1BB1 cbz r3, .L727 6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11473 .loc 1 6392 5 is_stmt 1 view .LVU4032 6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11474 .loc 1 6392 9 is_stmt 0 view .LVU4033 11475 012e 636C ldr r3, [r4, #68] 6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 401 11476 .loc 1 6392 21 view .LVU4034 11477 0130 43F00403 orr r3, r3, #4 11478 0134 6364 str r3, [r4, #68] 11479 .L727: 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11480 .loc 1 6395 3 is_stmt 1 view .LVU4035 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11481 .loc 1 6395 6 is_stmt 0 view .LVU4036 11482 0136 15F0100F tst r5, #16 11483 013a 11D0 beq .L728 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11484 .loc 1 6395 58 discriminator 1 view .LVU4037 11485 013c 16F0100F tst r6, #16 11486 0140 0ED0 beq .L728 6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11487 .loc 1 6402 5 is_stmt 1 view .LVU4038 6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11488 .loc 1 6402 13 is_stmt 0 view .LVU4039 11489 0142 638D ldrh r3, [r4, #42] 11490 0144 9BB2 uxth r3, r3 6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11491 .loc 1 6402 8 view .LVU4040 11492 0146 002B cmp r3, #0 11493 0148 7FD1 bne .L729 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11494 .loc 1 6404 7 is_stmt 1 view .LVU4041 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11495 .loc 1 6404 16 is_stmt 0 view .LVU4042 11496 014a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11497 .loc 1 6404 10 view .LVU4043 11498 014e 282B cmp r3, #40 11499 0150 66D0 beq .L738 11500 .L730: 6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11501 .loc 1 6411 12 is_stmt 1 view .LVU4044 6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11502 .loc 1 6411 21 is_stmt 0 view .LVU4045 11503 0152 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11504 .loc 1 6411 15 view .LVU4046 11505 0156 292B cmp r3, #41 11506 0158 6AD0 beq .L739 11507 .L731: 6426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11508 .loc 1 6426 9 is_stmt 1 view .LVU4047 11509 015a 2368 ldr r3, [r4] 11510 015c 1022 movs r2, #16 11511 015e DA61 str r2, [r3, #28] 11512 .L728: 6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 11513 .loc 1 6446 3 view .LVU4048 6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 11514 .loc 1 6446 14 is_stmt 0 view .LVU4049 11515 0160 0023 movs r3, #0 11516 0162 84F84230 strb r3, [r4, #66] 6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 402 11517 .loc 1 6447 3 is_stmt 1 view .LVU4050 6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11518 .loc 1 6447 17 is_stmt 0 view .LVU4051 11519 0166 6363 str r3, [r4, #52] 6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11520 .loc 1 6449 3 is_stmt 1 view .LVU4052 6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11521 .loc 1 6449 11 is_stmt 0 view .LVU4053 11522 0168 636C ldr r3, [r4, #68] 6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11523 .loc 1 6449 6 view .LVU4054 11524 016a 002B cmp r3, #0 11525 016c 7FD1 bne .L740 6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11526 .loc 1 6461 8 is_stmt 1 view .LVU4055 6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11527 .loc 1 6461 16 is_stmt 0 view .LVU4056 11528 016e E36A ldr r3, [r4, #44] 6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11529 .loc 1 6461 11 view .LVU4057 11530 0170 13F5803F cmn r3, #65536 11531 0174 40F08880 bne .L741 6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11532 .loc 1 6481 8 is_stmt 1 view .LVU4058 6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11533 .loc 1 6481 16 is_stmt 0 view .LVU4059 11534 0178 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11535 .loc 1 6481 11 view .LVU4060 11536 017c 222B cmp r3, #34 11537 017e 00F09380 beq .L742 6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11538 .loc 1 6498 5 is_stmt 1 view .LVU4061 6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11539 .loc 1 6498 17 is_stmt 0 view .LVU4062 11540 0182 2023 movs r3, #32 11541 0184 84F84130 strb r3, [r4, #65] 6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11542 .loc 1 6499 5 is_stmt 1 view .LVU4063 6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11543 .loc 1 6499 25 is_stmt 0 view .LVU4064 11544 0188 0023 movs r3, #0 11545 018a 2363 str r3, [r4, #48] 6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11546 .loc 1 6502 5 is_stmt 1 view .LVU4065 6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11547 .loc 1 6502 5 view .LVU4066 11548 018c 84F84030 strb r3, [r4, #64] 6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11549 .loc 1 6502 5 view .LVU4067 6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11550 .loc 1 6508 5 view .LVU4068 11551 0190 2046 mov r0, r4 11552 0192 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 11553 .LVL831: 6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11554 .loc 1 6511 1 is_stmt 0 view .LVU4069 ARM GAS /tmp/ccN54YTb.s page 403 11555 0196 86E0 b .L712 11556 .LVL832: 11557 .L718: 6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11558 .loc 1 6354 8 is_stmt 1 view .LVU4070 6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11559 .loc 1 6354 11 is_stmt 0 view .LVU4071 11560 0198 16F4004F tst r6, #32768 11561 019c AFD0 beq .L719 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11562 .loc 1 6357 5 is_stmt 1 view .LVU4072 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11563 .loc 1 6357 9 is_stmt 0 view .LVU4073 11564 019e 2268 ldr r2, [r4] 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11565 .loc 1 6357 19 view .LVU4074 11566 01a0 1368 ldr r3, [r2] 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11567 .loc 1 6357 25 view .LVU4075 11568 01a2 23F40043 bic r3, r3, #32768 11569 01a6 1360 str r3, [r2] 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11570 .loc 1 6359 5 is_stmt 1 view .LVU4076 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11571 .loc 1 6359 13 is_stmt 0 view .LVU4077 11572 01a8 E36B ldr r3, [r4, #60] 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11573 .loc 1 6359 8 view .LVU4078 11574 01aa 002B cmp r3, #0 11575 01ac A7D0 beq .L719 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11576 .loc 1 6361 7 is_stmt 1 view .LVU4079 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11577 .loc 1 6361 35 is_stmt 0 view .LVU4080 11578 01ae 1B68 ldr r3, [r3] 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11579 .loc 1 6361 25 view .LVU4081 11580 01b0 4349 ldr r1, .L743 11581 01b2 444A ldr r2, .L743+4 11582 01b4 9342 cmp r3, r2 11583 01b6 18BF it ne 11584 01b8 8B42 cmpne r3, r1 11585 01ba 2DD0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11586 .loc 1 6361 35 discriminator 2 view .LVU4082 11587 01bc 1832 adds r2, r2, #24 11588 01be 9342 cmp r3, r2 11589 01c0 2AD0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11590 .loc 1 6361 35 discriminator 4 view .LVU4083 11591 01c2 1832 adds r2, r2, #24 11592 01c4 9342 cmp r3, r2 11593 01c6 27D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11594 .loc 1 6361 35 discriminator 6 view .LVU4084 11595 01c8 1832 adds r2, r2, #24 11596 01ca 9342 cmp r3, r2 ARM GAS /tmp/ccN54YTb.s page 404 11597 01cc 24D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11598 .loc 1 6361 35 discriminator 8 view .LVU4085 11599 01ce 1832 adds r2, r2, #24 11600 01d0 9342 cmp r3, r2 11601 01d2 21D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11602 .loc 1 6361 35 discriminator 10 view .LVU4086 11603 01d4 1832 adds r2, r2, #24 11604 01d6 9342 cmp r3, r2 11605 01d8 1ED0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11606 .loc 1 6361 35 discriminator 12 view .LVU4087 11607 01da 1832 adds r2, r2, #24 11608 01dc 9342 cmp r3, r2 11609 01de 1BD0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11610 .loc 1 6361 35 discriminator 14 view .LVU4088 11611 01e0 02F55672 add r2, r2, #856 11612 01e4 9342 cmp r3, r2 11613 01e6 17D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11614 .loc 1 6361 35 discriminator 16 view .LVU4089 11615 01e8 1832 adds r2, r2, #24 11616 01ea 9342 cmp r3, r2 11617 01ec 14D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11618 .loc 1 6361 35 discriminator 18 view .LVU4090 11619 01ee 1832 adds r2, r2, #24 11620 01f0 9342 cmp r3, r2 11621 01f2 11D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11622 .loc 1 6361 35 discriminator 20 view .LVU4091 11623 01f4 1832 adds r2, r2, #24 11624 01f6 9342 cmp r3, r2 11625 01f8 0ED0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11626 .loc 1 6361 35 discriminator 22 view .LVU4092 11627 01fa 1832 adds r2, r2, #24 11628 01fc 9342 cmp r3, r2 11629 01fe 0BD0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11630 .loc 1 6361 35 discriminator 24 view .LVU4093 11631 0200 1832 adds r2, r2, #24 11632 0202 9342 cmp r3, r2 11633 0204 08D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11634 .loc 1 6361 35 discriminator 26 view .LVU4094 11635 0206 1832 adds r2, r2, #24 11636 0208 9342 cmp r3, r2 11637 020a 05D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11638 .loc 1 6361 35 discriminator 28 view .LVU4095 11639 020c 1832 adds r2, r2, #24 11640 020e 9342 cmp r3, r2 11641 0210 02D0 beq .L723 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 405 11642 .loc 1 6361 35 discriminator 30 view .LVU4096 11643 0212 5B68 ldr r3, [r3, #4] 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11644 .loc 1 6361 25 discriminator 30 view .LVU4097 11645 0214 9BB2 uxth r3, r3 11646 0216 01E0 b .L725 11647 .L723: 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11648 .loc 1 6361 35 discriminator 29 view .LVU4098 11649 0218 5B68 ldr r3, [r3, #4] 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11650 .loc 1 6361 25 discriminator 29 view .LVU4099 11651 021a 9BB2 uxth r3, r3 11652 .L725: 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11653 .loc 1 6361 23 discriminator 32 view .LVU4100 11654 021c 6385 strh r3, [r4, #42] @ movhi 11655 021e 6EE7 b .L719 11656 .LVL833: 11657 .L738: 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11658 .loc 1 6404 49 discriminator 1 view .LVU4101 11659 0220 B7F1007F cmp r7, #33554432 11660 0224 95D1 bne .L730 6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11661 .loc 1 6409 9 is_stmt 1 view .LVU4102 11662 0226 2946 mov r1, r5 11663 0228 2046 mov r0, r4 11664 022a FFF7FEFF bl I2C_ITListenCplt 11665 .LVL834: 11666 022e 97E7 b .L728 11667 .L739: 6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11668 .loc 1 6411 62 is_stmt 0 discriminator 1 view .LVU4103 11669 0230 17F5803F cmn r7, #65536 11670 0234 91D0 beq .L731 6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11671 .loc 1 6414 9 is_stmt 1 view .LVU4104 11672 0236 2368 ldr r3, [r4] 11673 0238 1022 movs r2, #16 11674 023a DA61 str r2, [r3, #28] 6417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11675 .loc 1 6417 9 view .LVU4105 11676 023c 2046 mov r0, r4 11677 023e FFF7FEFF bl I2C_Flush_TXDR 11678 .LVL835: 6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11679 .loc 1 6421 9 view .LVU4106 11680 0242 2046 mov r0, r4 11681 0244 FFF7FEFF bl I2C_ITSlaveSeqCplt 11682 .LVL836: 11683 0248 8AE7 b .L728 11684 .L729: 6433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11685 .loc 1 6433 7 view .LVU4107 11686 024a 2368 ldr r3, [r4] 11687 024c 1022 movs r2, #16 ARM GAS /tmp/ccN54YTb.s page 406 11688 024e DA61 str r2, [r3, #28] 6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11689 .loc 1 6436 7 view .LVU4108 6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11690 .loc 1 6436 11 is_stmt 0 view .LVU4109 11691 0250 636C ldr r3, [r4, #68] 6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11692 .loc 1 6436 23 view .LVU4110 11693 0252 43F00403 orr r3, r3, #4 11694 0256 6364 str r3, [r4, #68] 6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11695 .loc 1 6438 7 is_stmt 1 view .LVU4111 6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11696 .loc 1 6438 10 is_stmt 0 view .LVU4112 11697 0258 B7F1807F cmp r7, #16777216 11698 025c 18BF it ne 11699 025e 002F cmpne r7, #0 11700 0260 7FF47EAF bne .L728 6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11701 .loc 1 6441 9 is_stmt 1 view .LVU4113 6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11702 .loc 1 6441 31 is_stmt 0 view .LVU4114 11703 0264 616C ldr r1, [r4, #68] 6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11704 .loc 1 6441 9 view .LVU4115 11705 0266 2046 mov r0, r4 11706 0268 FFF7FEFF bl I2C_ITError 11707 .LVL837: 11708 026c 78E7 b .L728 11709 .L740: 6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11710 .loc 1 6452 5 is_stmt 1 view .LVU4116 6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11711 .loc 1 6452 27 is_stmt 0 view .LVU4117 11712 026e 616C ldr r1, [r4, #68] 6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11713 .loc 1 6452 5 view .LVU4118 11714 0270 2046 mov r0, r4 11715 0272 FFF7FEFF bl I2C_ITError 11716 .LVL838: 6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11717 .loc 1 6455 5 is_stmt 1 view .LVU4119 6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11718 .loc 1 6455 13 is_stmt 0 view .LVU4120 11719 0276 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11720 .loc 1 6455 8 view .LVU4121 11721 027a 282B cmp r3, #40 11722 027c 13D1 bne .L712 6458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11723 .loc 1 6458 7 is_stmt 1 view .LVU4122 11724 027e 2946 mov r1, r5 11725 0280 2046 mov r0, r4 11726 0282 FFF7FEFF bl I2C_ITListenCplt 11727 .LVL839: 11728 0286 0EE0 b .L712 11729 .L741: ARM GAS /tmp/ccN54YTb.s page 407 6464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11730 .loc 1 6464 5 view .LVU4123 11731 0288 2046 mov r0, r4 11732 028a FFF7FEFF bl I2C_ITSlaveSeqCplt 11733 .LVL840: 6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11734 .loc 1 6466 5 view .LVU4124 6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11735 .loc 1 6466 23 is_stmt 0 view .LVU4125 11736 028e 0E4B ldr r3, .L743+8 11737 0290 E362 str r3, [r4, #44] 6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11738 .loc 1 6467 5 is_stmt 1 view .LVU4126 6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11739 .loc 1 6467 17 is_stmt 0 view .LVU4127 11740 0292 2023 movs r3, #32 11741 0294 84F84130 strb r3, [r4, #65] 6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11742 .loc 1 6468 5 is_stmt 1 view .LVU4128 6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11743 .loc 1 6468 25 is_stmt 0 view .LVU4129 11744 0298 0023 movs r3, #0 11745 029a 2363 str r3, [r4, #48] 6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11746 .loc 1 6471 5 is_stmt 1 view .LVU4130 6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11747 .loc 1 6471 5 view .LVU4131 11748 029c 84F84030 strb r3, [r4, #64] 6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11749 .loc 1 6471 5 view .LVU4132 6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11750 .loc 1 6477 5 view .LVU4133 11751 02a0 2046 mov r0, r4 11752 02a2 FFF7FEFF bl HAL_I2C_ListenCpltCallback 11753 .LVL841: 11754 .L712: 6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11755 .loc 1 6511 1 is_stmt 0 view .LVU4134 11756 02a6 F8BD pop {r3, r4, r5, r6, r7, pc} 11757 .LVL842: 11758 .L742: 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11759 .loc 1 6483 5 is_stmt 1 view .LVU4135 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11760 .loc 1 6483 17 is_stmt 0 view .LVU4136 11761 02a8 2023 movs r3, #32 11762 02aa 84F84130 strb r3, [r4, #65] 6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11763 .loc 1 6484 5 is_stmt 1 view .LVU4137 6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11764 .loc 1 6484 25 is_stmt 0 view .LVU4138 11765 02ae 0023 movs r3, #0 11766 02b0 2363 str r3, [r4, #48] 6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11767 .loc 1 6487 5 is_stmt 1 view .LVU4139 6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11768 .loc 1 6487 5 view .LVU4140 ARM GAS /tmp/ccN54YTb.s page 408 11769 02b2 84F84030 strb r3, [r4, #64] 6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11770 .loc 1 6487 5 view .LVU4141 6493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11771 .loc 1 6493 5 view .LVU4142 11772 02b6 2046 mov r0, r4 11773 02b8 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11774 .LVL843: 11775 02bc F3E7 b .L712 11776 .L744: 11777 02be 00BF .align 2 11778 .L743: 11779 02c0 10000240 .word 1073872912 11780 02c4 28000240 .word 1073872936 11781 02c8 0000FFFF .word -65536 11782 .cfi_endproc 11783 .LFE396: 11785 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11786 .align 1 11787 .syntax unified 11788 .thumb 11789 .thumb_func 11791 I2C_Slave_ISR_IT: 11792 .LVL844: 11793 .LFB386: 5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11794 .loc 1 5264 1 view -0 11795 .cfi_startproc 11796 @ args = 0, pretend = 0, frame = 0 11797 @ frame_needed = 0, uses_anonymous_args = 0 5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11798 .loc 1 5264 1 is_stmt 0 view .LVU4144 11799 0000 10B5 push {r4, lr} 11800 .cfi_def_cfa_offset 8 11801 .cfi_offset 4, -8 11802 .cfi_offset 14, -4 11803 0002 0446 mov r4, r0 5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11804 .loc 1 5265 3 is_stmt 1 view .LVU4145 5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11805 .loc 1 5265 12 is_stmt 0 view .LVU4146 11806 0004 C06A ldr r0, [r0, #44] 11807 .LVL845: 5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11808 .loc 1 5266 3 is_stmt 1 view .LVU4147 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11809 .loc 1 5269 3 view .LVU4148 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11810 .loc 1 5269 3 view .LVU4149 11811 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 11812 000a 012B cmp r3, #1 11813 000c 00F09980 beq .L757 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11814 .loc 1 5269 3 discriminator 2 view .LVU4150 11815 0010 0123 movs r3, #1 11816 0012 84F84030 strb r3, [r4, #64] 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 409 11817 .loc 1 5269 3 view .LVU4151 5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11818 .loc 1 5272 3 view .LVU4152 5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11819 .loc 1 5272 6 is_stmt 0 view .LVU4153 11820 0016 11F0200F tst r1, #32 11821 001a 02D0 beq .L747 5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11822 .loc 1 5272 61 discriminator 1 view .LVU4154 11823 001c 12F0200F tst r2, #32 11824 0020 14D1 bne .L759 11825 .L747: 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11826 .loc 1 5278 8 is_stmt 1 view .LVU4155 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11827 .loc 1 5278 11 is_stmt 0 view .LVU4156 11828 0022 11F0100F tst r1, #16 11829 0026 3DD0 beq .L749 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11830 .loc 1 5278 63 discriminator 1 view .LVU4157 11831 0028 12F0100F tst r2, #16 11832 002c 3AD0 beq .L749 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11833 .loc 1 5285 5 is_stmt 1 view .LVU4158 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11834 .loc 1 5285 13 is_stmt 0 view .LVU4159 11835 002e 638D ldrh r3, [r4, #42] 11836 0030 9BB2 uxth r3, r3 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11837 .loc 1 5285 8 view .LVU4160 11838 0032 33BB cbnz r3, .L750 5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11839 .loc 1 5287 7 is_stmt 1 view .LVU4161 5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11840 .loc 1 5287 16 is_stmt 0 view .LVU4162 11841 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11842 .loc 1 5287 10 view .LVU4163 11843 0038 282B cmp r3, #40 11844 003a 0ED0 beq .L760 11845 .L751: 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11846 .loc 1 5294 12 is_stmt 1 view .LVU4164 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11847 .loc 1 5294 21 is_stmt 0 view .LVU4165 11848 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11849 .loc 1 5294 15 view .LVU4166 11850 0040 292B cmp r3, #41 11851 0042 11D0 beq .L761 11852 .L752: 5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11853 .loc 1 5309 9 is_stmt 1 view .LVU4167 11854 0044 2368 ldr r3, [r4] 11855 0046 1022 movs r2, #16 11856 .LVL846: 5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 410 11857 .loc 1 5309 9 is_stmt 0 view .LVU4168 11858 0048 DA61 str r2, [r3, #28] 11859 004a 02E0 b .L748 11860 .LVL847: 11861 .L759: 5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11862 .loc 1 5276 5 is_stmt 1 view .LVU4169 11863 004c 2046 mov r0, r4 11864 .LVL848: 5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11865 .loc 1 5276 5 is_stmt 0 view .LVU4170 11866 004e FFF7FEFF bl I2C_ITSlaveCplt 11867 .LVL849: 11868 .L748: 5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11869 .loc 1 5386 3 is_stmt 1 view .LVU4171 5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11870 .loc 1 5389 3 view .LVU4172 5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11871 .loc 1 5389 3 view .LVU4173 11872 0052 0020 movs r0, #0 11873 0054 84F84000 strb r0, [r4, #64] 5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11874 .loc 1 5389 3 view .LVU4174 5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11875 .loc 1 5391 3 view .LVU4175 11876 .L746: 5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11877 .loc 1 5392 1 is_stmt 0 view .LVU4176 11878 0058 10BD pop {r4, pc} 11879 .LVL850: 11880 .L760: 5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11881 .loc 1 5287 49 discriminator 1 view .LVU4177 11882 005a B0F1007F cmp r0, #33554432 11883 005e EDD1 bne .L751 5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11884 .loc 1 5292 9 is_stmt 1 view .LVU4178 11885 0060 2046 mov r0, r4 11886 .LVL851: 5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11887 .loc 1 5292 9 is_stmt 0 view .LVU4179 11888 0062 FFF7FEFF bl I2C_ITListenCplt 11889 .LVL852: 5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11890 .loc 1 5292 9 view .LVU4180 11891 0066 F4E7 b .L748 11892 .LVL853: 11893 .L761: 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11894 .loc 1 5294 62 discriminator 1 view .LVU4181 11895 0068 10F5803F cmn r0, #65536 11896 006c EAD0 beq .L752 5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11897 .loc 1 5297 9 is_stmt 1 view .LVU4182 11898 006e 2368 ldr r3, [r4] 11899 0070 1022 movs r2, #16 ARM GAS /tmp/ccN54YTb.s page 411 11900 .LVL854: 5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11901 .loc 1 5297 9 is_stmt 0 view .LVU4183 11902 0072 DA61 str r2, [r3, #28] 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11903 .loc 1 5300 9 is_stmt 1 view .LVU4184 11904 0074 2046 mov r0, r4 11905 .LVL855: 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11906 .loc 1 5300 9 is_stmt 0 view .LVU4185 11907 0076 FFF7FEFF bl I2C_Flush_TXDR 11908 .LVL856: 5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11909 .loc 1 5304 9 is_stmt 1 view .LVU4186 11910 007a 2046 mov r0, r4 11911 007c FFF7FEFF bl I2C_ITSlaveSeqCplt 11912 .LVL857: 11913 0080 E7E7 b .L748 11914 .LVL858: 11915 .L750: 5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11916 .loc 1 5316 7 view .LVU4187 11917 0082 2368 ldr r3, [r4] 11918 0084 1022 movs r2, #16 11919 .LVL859: 5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11920 .loc 1 5316 7 is_stmt 0 view .LVU4188 11921 0086 DA61 str r2, [r3, #28] 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11922 .loc 1 5319 7 is_stmt 1 view .LVU4189 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11923 .loc 1 5319 11 is_stmt 0 view .LVU4190 11924 0088 636C ldr r3, [r4, #68] 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11925 .loc 1 5319 23 view .LVU4191 11926 008a 43F00403 orr r3, r3, #4 11927 008e 6364 str r3, [r4, #68] 5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11928 .loc 1 5321 7 is_stmt 1 view .LVU4192 5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11929 .loc 1 5321 10 is_stmt 0 view .LVU4193 11930 0090 B0F1807F cmp r0, #16777216 11931 0094 18BF it ne 11932 0096 0028 cmpne r0, #0 11933 0098 DBD1 bne .L748 5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11934 .loc 1 5324 9 is_stmt 1 view .LVU4194 5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11935 .loc 1 5324 31 is_stmt 0 view .LVU4195 11936 009a 616C ldr r1, [r4, #68] 11937 .LVL860: 5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11938 .loc 1 5324 9 view .LVU4196 11939 009c 2046 mov r0, r4 11940 .LVL861: 5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11941 .loc 1 5324 9 view .LVU4197 ARM GAS /tmp/ccN54YTb.s page 412 11942 009e FFF7FEFF bl I2C_ITError 11943 .LVL862: 11944 00a2 D6E7 b .L748 11945 .LVL863: 11946 .L749: 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11947 .loc 1 5328 8 is_stmt 1 view .LVU4198 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11948 .loc 1 5328 11 is_stmt 0 view .LVU4199 11949 00a4 11F0040F tst r1, #4 11950 00a8 1FD0 beq .L753 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11951 .loc 1 5328 65 discriminator 1 view .LVU4200 11952 00aa 12F0040F tst r2, #4 11953 00ae 1CD0 beq .L753 5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11954 .loc 1 5331 5 is_stmt 1 view .LVU4201 5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11955 .loc 1 5331 13 is_stmt 0 view .LVU4202 11956 00b0 638D ldrh r3, [r4, #42] 11957 00b2 9BB2 uxth r3, r3 5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11958 .loc 1 5331 8 view .LVU4203 11959 00b4 73B1 cbz r3, .L754 5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11960 .loc 1 5334 7 is_stmt 1 view .LVU4204 5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11961 .loc 1 5334 38 is_stmt 0 view .LVU4205 11962 00b6 2368 ldr r3, [r4] 5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11963 .loc 1 5334 48 view .LVU4206 11964 00b8 5A6A ldr r2, [r3, #36] 11965 .LVL864: 5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11966 .loc 1 5334 12 view .LVU4207 11967 00ba 636A ldr r3, [r4, #36] 5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11968 .loc 1 5334 23 view .LVU4208 11969 00bc 1A70 strb r2, [r3] 5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11970 .loc 1 5337 7 is_stmt 1 view .LVU4209 5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11971 .loc 1 5337 11 is_stmt 0 view .LVU4210 11972 00be 636A ldr r3, [r4, #36] 5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11973 .loc 1 5337 21 view .LVU4211 11974 00c0 0133 adds r3, r3, #1 11975 00c2 6362 str r3, [r4, #36] 5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11976 .loc 1 5339 7 is_stmt 1 view .LVU4212 5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11977 .loc 1 5339 11 is_stmt 0 view .LVU4213 11978 00c4 238D ldrh r3, [r4, #40] 5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11979 .loc 1 5339 21 view .LVU4214 11980 00c6 013B subs r3, r3, #1 11981 00c8 2385 strh r3, [r4, #40] @ movhi ARM GAS /tmp/ccN54YTb.s page 413 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11982 .loc 1 5340 7 is_stmt 1 view .LVU4215 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11983 .loc 1 5340 11 is_stmt 0 view .LVU4216 11984 00ca 638D ldrh r3, [r4, #42] 11985 00cc 9BB2 uxth r3, r3 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11986 .loc 1 5340 22 view .LVU4217 11987 00ce 013B subs r3, r3, #1 11988 00d0 9BB2 uxth r3, r3 11989 00d2 6385 strh r3, [r4, #42] @ movhi 11990 .L754: 5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11991 .loc 1 5343 5 is_stmt 1 view .LVU4218 5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11992 .loc 1 5343 14 is_stmt 0 view .LVU4219 11993 00d4 638D ldrh r3, [r4, #42] 11994 00d6 9BB2 uxth r3, r3 5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11995 .loc 1 5343 8 view .LVU4220 11996 00d8 002B cmp r3, #0 11997 00da BAD1 bne .L748 5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11998 .loc 1 5343 33 discriminator 1 view .LVU4221 11999 00dc 10F5803F cmn r0, #65536 12000 00e0 B7D0 beq .L748 5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12001 .loc 1 5347 7 is_stmt 1 view .LVU4222 12002 00e2 2046 mov r0, r4 12003 .LVL865: 5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12004 .loc 1 5347 7 is_stmt 0 view .LVU4223 12005 00e4 FFF7FEFF bl I2C_ITSlaveSeqCplt 12006 .LVL866: 5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12007 .loc 1 5347 7 view .LVU4224 12008 00e8 B3E7 b .L748 12009 .LVL867: 12010 .L753: 5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12011 .loc 1 5350 8 is_stmt 1 view .LVU4225 5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12012 .loc 1 5350 11 is_stmt 0 view .LVU4226 12013 00ea 11F0080F tst r1, #8 12014 00ee 02D0 beq .L755 5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12015 .loc 1 5350 65 discriminator 1 view .LVU4227 12016 00f0 12F0080F tst r2, #8 12017 00f4 18D1 bne .L762 12018 .L755: 5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12019 .loc 1 5355 8 is_stmt 1 view .LVU4228 5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12020 .loc 1 5355 11 is_stmt 0 view .LVU4229 12021 00f6 11F0020F tst r1, #2 12022 00fa AAD0 beq .L748 5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) ARM GAS /tmp/ccN54YTb.s page 414 12023 .loc 1 5355 65 discriminator 1 view .LVU4230 12024 00fc 12F0020F tst r2, #2 12025 0100 A7D0 beq .L748 5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12026 .loc 1 5362 5 is_stmt 1 view .LVU4231 5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12027 .loc 1 5362 13 is_stmt 0 view .LVU4232 12028 0102 638D ldrh r3, [r4, #42] 12029 0104 9BB2 uxth r3, r3 5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12030 .loc 1 5362 8 view .LVU4233 12031 0106 9BB1 cbz r3, .L756 5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12032 .loc 1 5365 7 is_stmt 1 view .LVU4234 5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12033 .loc 1 5365 35 is_stmt 0 view .LVU4235 12034 0108 626A ldr r2, [r4, #36] 12035 .LVL868: 5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12036 .loc 1 5365 11 view .LVU4236 12037 010a 2368 ldr r3, [r4] 5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12038 .loc 1 5365 30 view .LVU4237 12039 010c 1278 ldrb r2, [r2] @ zero_extendqisi2 5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12040 .loc 1 5365 28 view .LVU4238 12041 010e 9A62 str r2, [r3, #40] 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12042 .loc 1 5368 7 is_stmt 1 view .LVU4239 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12043 .loc 1 5368 11 is_stmt 0 view .LVU4240 12044 0110 636A ldr r3, [r4, #36] 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12045 .loc 1 5368 21 view .LVU4241 12046 0112 0133 adds r3, r3, #1 12047 0114 6362 str r3, [r4, #36] 5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 12048 .loc 1 5370 7 is_stmt 1 view .LVU4242 5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 12049 .loc 1 5370 11 is_stmt 0 view .LVU4243 12050 0116 638D ldrh r3, [r4, #42] 12051 0118 9BB2 uxth r3, r3 5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 12052 .loc 1 5370 22 view .LVU4244 12053 011a 013B subs r3, r3, #1 12054 011c 9BB2 uxth r3, r3 12055 011e 6385 strh r3, [r4, #42] @ movhi 5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12056 .loc 1 5371 7 is_stmt 1 view .LVU4245 5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12057 .loc 1 5371 11 is_stmt 0 view .LVU4246 12058 0120 238D ldrh r3, [r4, #40] 5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12059 .loc 1 5371 21 view .LVU4247 12060 0122 013B subs r3, r3, #1 12061 0124 2385 strh r3, [r4, #40] @ movhi 12062 0126 94E7 b .L748 ARM GAS /tmp/ccN54YTb.s page 415 12063 .LVL869: 12064 .L762: 5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12065 .loc 1 5353 5 is_stmt 1 view .LVU4248 12066 0128 2046 mov r0, r4 12067 .LVL870: 5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12068 .loc 1 5353 5 is_stmt 0 view .LVU4249 12069 012a FFF7FEFF bl I2C_ITAddrCplt 12070 .LVL871: 5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12071 .loc 1 5353 5 view .LVU4250 12072 012e 90E7 b .L748 12073 .LVL872: 12074 .L756: 5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12075 .loc 1 5375 7 is_stmt 1 view .LVU4251 5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12076 .loc 1 5375 10 is_stmt 0 view .LVU4252 12077 0130 0028 cmp r0, #0 12078 0132 18BF it ne 12079 0134 B0F1807F cmpne r0, #16777216 12080 0138 8BD1 bne .L748 5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12081 .loc 1 5379 9 is_stmt 1 view .LVU4253 12082 013a 2046 mov r0, r4 12083 .LVL873: 5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12084 .loc 1 5379 9 is_stmt 0 view .LVU4254 12085 013c FFF7FEFF bl I2C_ITSlaveSeqCplt 12086 .LVL874: 5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12087 .loc 1 5379 9 view .LVU4255 12088 0140 87E7 b .L748 12089 .LVL875: 12090 .L757: 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12091 .loc 1 5269 3 discriminator 1 view .LVU4256 12092 0142 0220 movs r0, #2 12093 .LVL876: 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12094 .loc 1 5269 3 discriminator 1 view .LVU4257 12095 0144 88E7 b .L746 12096 .cfi_endproc 12097 .LFE386: 12099 .section .text.I2C_ITMasterCplt,"ax",%progbits 12100 .align 1 12101 .syntax unified 12102 .thumb 12103 .thumb_func 12105 I2C_ITMasterCplt: 12106 .LVL877: 12107 .LFB395: 6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 12108 .loc 1 6161 1 is_stmt 1 view -0 12109 .cfi_startproc 12110 @ args = 0, pretend = 0, frame = 8 ARM GAS /tmp/ccN54YTb.s page 416 12111 @ frame_needed = 0, uses_anonymous_args = 0 6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 12112 .loc 1 6161 1 is_stmt 0 view .LVU4259 12113 0000 30B5 push {r4, r5, lr} 12114 .cfi_def_cfa_offset 12 12115 .cfi_offset 4, -12 12116 .cfi_offset 5, -8 12117 .cfi_offset 14, -4 12118 0002 83B0 sub sp, sp, #12 12119 .cfi_def_cfa_offset 24 12120 0004 0446 mov r4, r0 12121 0006 0D46 mov r5, r1 6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12122 .loc 1 6162 3 is_stmt 1 view .LVU4260 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg; 12123 .loc 1 6163 3 view .LVU4261 12124 .LVL878: 6164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12125 .loc 1 6164 3 view .LVU4262 6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12126 .loc 1 6167 3 view .LVU4263 12127 0008 0368 ldr r3, [r0] 12128 000a 2022 movs r2, #32 12129 000c DA61 str r2, [r3, #28] 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12130 .loc 1 6170 3 view .LVU4264 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12131 .loc 1 6170 11 is_stmt 0 view .LVU4265 12132 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12133 .loc 1 6170 6 view .LVU4266 12134 0012 212B cmp r3, #33 12135 0014 30D0 beq .L775 6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12136 .loc 1 6175 8 is_stmt 1 view .LVU4267 6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12137 .loc 1 6175 16 is_stmt 0 view .LVU4268 12138 0016 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12139 .loc 1 6175 11 view .LVU4269 12140 001a 222B cmp r3, #34 12141 001c 32D0 beq .L776 12142 .LVL879: 12143 .L765: 6183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12144 .loc 1 6183 3 is_stmt 1 view .LVU4270 6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12145 .loc 1 6186 3 view .LVU4271 12146 001e 2268 ldr r2, [r4] 12147 0020 5368 ldr r3, [r2, #4] 12148 0022 23F0FF73 bic r3, r3, #33423360 12149 0026 23F48B33 bic r3, r3, #71168 12150 002a 23F4FF73 bic r3, r3, #510 12151 002e 23F00103 bic r3, r3, #1 12152 0032 5360 str r3, [r2, #4] 6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12153 .loc 1 6189 3 view .LVU4272 ARM GAS /tmp/ccN54YTb.s page 417 6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12154 .loc 1 6189 23 is_stmt 0 view .LVU4273 12155 0034 0023 movs r3, #0 12156 0036 6363 str r3, [r4, #52] 6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12157 .loc 1 6190 3 is_stmt 1 view .LVU4274 6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12158 .loc 1 6190 23 is_stmt 0 view .LVU4275 12159 0038 A3F58033 sub r3, r3, #65536 12160 003c E362 str r3, [r4, #44] 6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12161 .loc 1 6192 3 is_stmt 1 view .LVU4276 6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12162 .loc 1 6192 6 is_stmt 0 view .LVU4277 12163 003e 15F0100F tst r5, #16 12164 0042 06D0 beq .L766 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12165 .loc 1 6195 5 is_stmt 1 view .LVU4278 12166 0044 2368 ldr r3, [r4] 12167 0046 1022 movs r2, #16 12168 0048 DA61 str r2, [r3, #28] 6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12169 .loc 1 6198 5 view .LVU4279 6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12170 .loc 1 6198 9 is_stmt 0 view .LVU4280 12171 004a 636C ldr r3, [r4, #68] 6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12172 .loc 1 6198 21 view .LVU4281 12173 004c 43F00403 orr r3, r3, #4 12174 0050 6364 str r3, [r4, #68] 12175 .L766: 6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12176 .loc 1 6202 3 is_stmt 1 view .LVU4282 6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12177 .loc 1 6202 12 is_stmt 0 view .LVU4283 12178 0052 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12179 .loc 1 6202 6 view .LVU4284 12180 0056 602B cmp r3, #96 12181 0058 1AD0 beq .L777 12182 .L767: 6210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12183 .loc 1 6210 3 is_stmt 1 view .LVU4285 12184 005a 2046 mov r0, r4 12185 005c FFF7FEFF bl I2C_Flush_TXDR 12186 .LVL880: 6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12187 .loc 1 6213 3 view .LVU4286 6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12188 .loc 1 6213 12 is_stmt 0 view .LVU4287 12189 0060 626C ldr r2, [r4, #68] 12190 .LVL881: 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12191 .loc 1 6216 3 is_stmt 1 view .LVU4288 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12192 .loc 1 6216 12 is_stmt 0 view .LVU4289 12193 0062 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 ARM GAS /tmp/ccN54YTb.s page 418 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12194 .loc 1 6216 6 view .LVU4290 12195 0066 602B cmp r3, #96 12196 0068 00D0 beq .L768 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12197 .loc 1 6216 44 discriminator 1 view .LVU4291 12198 006a D2B1 cbz r2, .L769 12199 .L768: 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12200 .loc 1 6219 5 is_stmt 1 view .LVU4292 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12201 .loc 1 6219 27 is_stmt 0 view .LVU4293 12202 006c 616C ldr r1, [r4, #68] 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12203 .loc 1 6219 5 view .LVU4294 12204 006e 2046 mov r0, r4 12205 0070 FFF7FEFF bl I2C_ITError 12206 .LVL882: 12207 .L763: 6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12208 .loc 1 6295 1 view .LVU4295 12209 0074 03B0 add sp, sp, #12 12210 .cfi_remember_state 12211 .cfi_def_cfa_offset 12 12212 @ sp needed 12213 0076 30BD pop {r4, r5, pc} 12214 .LVL883: 12215 .L775: 12216 .cfi_restore_state 6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12217 .loc 1 6172 5 is_stmt 1 view .LVU4296 12218 0078 0121 movs r1, #1 12219 .LVL884: 6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12220 .loc 1 6172 5 is_stmt 0 view .LVU4297 12221 007a FFF7FEFF bl I2C_Disable_IRQ 12222 .LVL885: 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12223 .loc 1 6173 5 is_stmt 1 view .LVU4298 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12224 .loc 1 6173 25 is_stmt 0 view .LVU4299 12225 007e 1123 movs r3, #17 12226 0080 2363 str r3, [r4, #48] 12227 0082 CCE7 b .L765 12228 .LVL886: 12229 .L776: 6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12230 .loc 1 6177 5 is_stmt 1 view .LVU4300 12231 0084 0221 movs r1, #2 12232 .LVL887: 6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12233 .loc 1 6177 5 is_stmt 0 view .LVU4301 12234 0086 FFF7FEFF bl I2C_Disable_IRQ 12235 .LVL888: 6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12236 .loc 1 6178 5 is_stmt 1 view .LVU4302 6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 419 12237 .loc 1 6178 25 is_stmt 0 view .LVU4303 12238 008a 1223 movs r3, #18 12239 008c 2363 str r3, [r4, #48] 12240 008e C6E7 b .L765 12241 .L777: 6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12242 .loc 1 6202 44 discriminator 1 view .LVU4304 12243 0090 15F0040F tst r5, #4 12244 0094 E1D0 beq .L767 6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 12245 .loc 1 6205 5 is_stmt 1 view .LVU4305 6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 12246 .loc 1 6205 27 is_stmt 0 view .LVU4306 12247 0096 2368 ldr r3, [r4] 6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 12248 .loc 1 6205 37 view .LVU4307 12249 0098 5B6A ldr r3, [r3, #36] 12250 009a DBB2 uxtb r3, r3 6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 12251 .loc 1 6205 12 view .LVU4308 12252 009c 0193 str r3, [sp, #4] 6206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12253 .loc 1 6206 5 is_stmt 1 view .LVU4309 12254 009e 019B ldr r3, [sp, #4] 12255 00a0 DBE7 b .L767 12256 .LVL889: 12257 .L769: 6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12258 .loc 1 6222 8 view .LVU4310 6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12259 .loc 1 6222 16 is_stmt 0 view .LVU4311 12260 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12261 .loc 1 6222 11 view .LVU4312 12262 00a6 212B cmp r3, #33 12263 00a8 15D0 beq .L778 6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12264 .loc 1 6257 8 is_stmt 1 view .LVU4313 6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12265 .loc 1 6257 16 is_stmt 0 view .LVU4314 12266 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12267 .loc 1 6257 11 view .LVU4315 12268 00ae 222B cmp r3, #34 12269 00b0 E0D1 bne .L763 6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12270 .loc 1 6259 5 is_stmt 1 view .LVU4316 6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12271 .loc 1 6259 17 is_stmt 0 view .LVU4317 12272 00b2 2023 movs r3, #32 12273 00b4 84F84130 strb r3, [r4, #65] 6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12274 .loc 1 6260 5 is_stmt 1 view .LVU4318 6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12275 .loc 1 6260 25 is_stmt 0 view .LVU4319 12276 00b8 0023 movs r3, #0 12277 00ba 2363 str r3, [r4, #48] ARM GAS /tmp/ccN54YTb.s page 420 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12278 .loc 1 6262 5 is_stmt 1 view .LVU4320 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12279 .loc 1 6262 13 is_stmt 0 view .LVU4321 12280 00bc 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12281 .loc 1 6262 8 view .LVU4322 12282 00c0 402B cmp r3, #64 12283 00c2 23D0 beq .L779 6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12284 .loc 1 6278 7 is_stmt 1 view .LVU4323 6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12285 .loc 1 6278 18 is_stmt 0 view .LVU4324 12286 00c4 0023 movs r3, #0 12287 00c6 84F84230 strb r3, [r4, #66] 6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12288 .loc 1 6281 7 is_stmt 1 view .LVU4325 6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12289 .loc 1 6281 7 view .LVU4326 12290 00ca 84F84030 strb r3, [r4, #64] 6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12291 .loc 1 6281 7 view .LVU4327 6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12292 .loc 1 6287 7 view .LVU4328 12293 00ce 2046 mov r0, r4 12294 00d0 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12295 .LVL890: 6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12296 .loc 1 6294 3 view .LVU4329 6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12297 .loc 1 6295 1 is_stmt 0 view .LVU4330 12298 00d4 CEE7 b .L763 12299 .LVL891: 12300 .L778: 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12301 .loc 1 6224 5 is_stmt 1 view .LVU4331 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12302 .loc 1 6224 17 is_stmt 0 view .LVU4332 12303 00d6 2023 movs r3, #32 12304 00d8 84F84130 strb r3, [r4, #65] 6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12305 .loc 1 6225 5 is_stmt 1 view .LVU4333 6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12306 .loc 1 6225 25 is_stmt 0 view .LVU4334 12307 00dc 0023 movs r3, #0 12308 00de 2363 str r3, [r4, #48] 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12309 .loc 1 6227 5 is_stmt 1 view .LVU4335 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12310 .loc 1 6227 13 is_stmt 0 view .LVU4336 12311 00e0 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12312 .loc 1 6227 8 view .LVU4337 12313 00e4 402B cmp r3, #64 12314 00e6 08D0 beq .L780 6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12315 .loc 1 6243 7 is_stmt 1 view .LVU4338 ARM GAS /tmp/ccN54YTb.s page 421 6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12316 .loc 1 6243 18 is_stmt 0 view .LVU4339 12317 00e8 0023 movs r3, #0 12318 00ea 84F84230 strb r3, [r4, #66] 6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12319 .loc 1 6246 7 is_stmt 1 view .LVU4340 6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12320 .loc 1 6246 7 view .LVU4341 12321 00ee 84F84030 strb r3, [r4, #64] 6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12322 .loc 1 6246 7 view .LVU4342 6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12323 .loc 1 6252 7 view .LVU4343 12324 00f2 2046 mov r0, r4 12325 00f4 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12326 .LVL892: 6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12327 .loc 1 6252 7 is_stmt 0 view .LVU4344 12328 00f8 BCE7 b .L763 12329 .LVL893: 12330 .L780: 6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12331 .loc 1 6229 7 is_stmt 1 view .LVU4345 6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12332 .loc 1 6229 18 is_stmt 0 view .LVU4346 12333 00fa 0023 movs r3, #0 12334 00fc 84F84230 strb r3, [r4, #66] 6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12335 .loc 1 6232 7 is_stmt 1 view .LVU4347 6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12336 .loc 1 6232 7 view .LVU4348 12337 0100 84F84030 strb r3, [r4, #64] 6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12338 .loc 1 6232 7 view .LVU4349 6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12339 .loc 1 6238 7 view .LVU4350 12340 0104 2046 mov r0, r4 12341 0106 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12342 .LVL894: 6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12343 .loc 1 6238 7 is_stmt 0 view .LVU4351 12344 010a B3E7 b .L763 12345 .LVL895: 12346 .L779: 6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12347 .loc 1 6264 7 is_stmt 1 view .LVU4352 6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12348 .loc 1 6264 18 is_stmt 0 view .LVU4353 12349 010c 0023 movs r3, #0 12350 010e 84F84230 strb r3, [r4, #66] 6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12351 .loc 1 6267 7 is_stmt 1 view .LVU4354 6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12352 .loc 1 6267 7 view .LVU4355 12353 0112 84F84030 strb r3, [r4, #64] 6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12354 .loc 1 6267 7 view .LVU4356 ARM GAS /tmp/ccN54YTb.s page 422 6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12355 .loc 1 6273 7 view .LVU4357 12356 0116 2046 mov r0, r4 12357 0118 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12358 .LVL896: 6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12359 .loc 1 6273 7 is_stmt 0 view .LVU4358 12360 011c AAE7 b .L763 12361 .cfi_endproc 12362 .LFE395: 12364 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12365 .align 1 12366 .syntax unified 12367 .thumb 12368 .thumb_func 12370 I2C_Master_ISR_IT: 12371 .LVL897: 12372 .LFB384: 4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 12373 .loc 1 4970 1 is_stmt 1 view -0 12374 .cfi_startproc 12375 @ args = 0, pretend = 0, frame = 0 12376 @ frame_needed = 0, uses_anonymous_args = 0 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12377 .loc 1 4971 3 view .LVU4360 4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12378 .loc 1 4972 3 view .LVU4361 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12379 .loc 1 4975 3 view .LVU4362 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12380 .loc 1 4975 3 view .LVU4363 12381 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12382 0004 012B cmp r3, #1 12383 0006 00F0C280 beq .L795 4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 12384 .loc 1 4970 1 is_stmt 0 view .LVU4364 12385 000a 70B5 push {r4, r5, r6, lr} 12386 .cfi_def_cfa_offset 16 12387 .cfi_offset 4, -16 12388 .cfi_offset 5, -12 12389 .cfi_offset 6, -8 12390 .cfi_offset 14, -4 12391 000c 82B0 sub sp, sp, #8 12392 .cfi_def_cfa_offset 24 12393 000e 0446 mov r4, r0 12394 0010 0D46 mov r5, r1 12395 0012 1646 mov r6, r2 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12396 .loc 1 4975 3 is_stmt 1 discriminator 2 view .LVU4365 12397 0014 0123 movs r3, #1 12398 0016 80F84030 strb r3, [r0, #64] 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12399 .loc 1 4975 3 view .LVU4366 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12400 .loc 1 4977 3 view .LVU4367 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12401 .loc 1 4977 6 is_stmt 0 view .LVU4368 ARM GAS /tmp/ccN54YTb.s page 423 12402 001a 11F0100F tst r1, #16 12403 001e 02D0 beq .L783 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12404 .loc 1 4977 58 discriminator 1 view .LVU4369 12405 0020 12F0100F tst r2, #16 12406 0024 22D1 bne .L800 12407 .L783: 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12408 .loc 1 4991 8 is_stmt 1 view .LVU4370 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12409 .loc 1 4991 11 is_stmt 0 view .LVU4371 12410 0026 15F0040F tst r5, #4 12411 002a 29D0 beq .L785 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12412 .loc 1 4991 65 discriminator 1 view .LVU4372 12413 002c 16F0040F tst r6, #4 12414 0030 26D0 beq .L785 4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12415 .loc 1 4995 5 is_stmt 1 view .LVU4373 4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12416 .loc 1 4995 16 is_stmt 0 view .LVU4374 12417 0032 25F00405 bic r5, r5, #4 12418 .LVL898: 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12419 .loc 1 4998 5 is_stmt 1 view .LVU4375 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12420 .loc 1 4998 36 is_stmt 0 view .LVU4376 12421 0036 2368 ldr r3, [r4] 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12422 .loc 1 4998 46 view .LVU4377 12423 0038 5A6A ldr r2, [r3, #36] 12424 .LVL899: 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12425 .loc 1 4998 10 view .LVU4378 12426 003a 636A ldr r3, [r4, #36] 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12427 .loc 1 4998 21 view .LVU4379 12428 003c 1A70 strb r2, [r3] 5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12429 .loc 1 5001 5 is_stmt 1 view .LVU4380 5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12430 .loc 1 5001 9 is_stmt 0 view .LVU4381 12431 003e 636A ldr r3, [r4, #36] 5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12432 .loc 1 5001 19 view .LVU4382 12433 0040 0133 adds r3, r3, #1 12434 0042 6362 str r3, [r4, #36] 5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12435 .loc 1 5003 5 is_stmt 1 view .LVU4383 5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12436 .loc 1 5003 9 is_stmt 0 view .LVU4384 12437 0044 238D ldrh r3, [r4, #40] 5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12438 .loc 1 5003 19 view .LVU4385 12439 0046 013B subs r3, r3, #1 12440 0048 2385 strh r3, [r4, #40] @ movhi 5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 424 12441 .loc 1 5004 5 is_stmt 1 view .LVU4386 5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12442 .loc 1 5004 9 is_stmt 0 view .LVU4387 12443 004a 638D ldrh r3, [r4, #42] 12444 004c 9BB2 uxth r3, r3 5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12445 .loc 1 5004 20 view .LVU4388 12446 004e 013B subs r3, r3, #1 12447 0050 9BB2 uxth r3, r3 12448 0052 6385 strh r3, [r4, #42] @ movhi 12449 .LVL900: 12450 .L784: 5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12451 .loc 1 5096 3 is_stmt 1 view .LVU4389 5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12452 .loc 1 5098 3 view .LVU4390 5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12453 .loc 1 5098 6 is_stmt 0 view .LVU4391 12454 0054 15F0200F tst r5, #32 12455 0058 03D0 beq .L794 5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12456 .loc 1 5098 61 discriminator 1 view .LVU4392 12457 005a 16F0200F tst r6, #32 12458 005e 40F09180 bne .L801 12459 .L794: 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12460 .loc 1 5106 3 is_stmt 1 view .LVU4393 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12461 .loc 1 5106 3 view .LVU4394 12462 0062 0020 movs r0, #0 12463 0064 84F84000 strb r0, [r4, #64] 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12464 .loc 1 5106 3 view .LVU4395 5108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12465 .loc 1 5108 3 view .LVU4396 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12466 .loc 1 5109 1 is_stmt 0 view .LVU4397 12467 0068 02B0 add sp, sp, #8 12468 .cfi_remember_state 12469 .cfi_def_cfa_offset 16 12470 @ sp needed 12471 006a 70BD pop {r4, r5, r6, pc} 12472 .LVL901: 12473 .L800: 12474 .cfi_restore_state 4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12475 .loc 1 4981 5 is_stmt 1 view .LVU4398 12476 006c 0368 ldr r3, [r0] 12477 006e 1022 movs r2, #16 12478 .LVL902: 4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12479 .loc 1 4981 5 is_stmt 0 view .LVU4399 12480 0070 DA61 str r2, [r3, #28] 4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12481 .loc 1 4986 5 is_stmt 1 view .LVU4400 4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12482 .loc 1 4986 9 is_stmt 0 view .LVU4401 ARM GAS /tmp/ccN54YTb.s page 425 12483 0072 436C ldr r3, [r0, #68] 4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12484 .loc 1 4986 21 view .LVU4402 12485 0074 43F00403 orr r3, r3, #4 12486 0078 4364 str r3, [r0, #68] 4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12487 .loc 1 4989 5 is_stmt 1 view .LVU4403 12488 007a FFF7FEFF bl I2C_Flush_TXDR 12489 .LVL903: 4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12490 .loc 1 4989 5 is_stmt 0 view .LVU4404 12491 007e E9E7 b .L784 12492 .LVL904: 12493 .L785: 5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12494 .loc 1 5006 8 is_stmt 1 view .LVU4405 12495 0080 C5F38013 ubfx r3, r5, #6, #1 5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12496 .loc 1 5006 11 is_stmt 0 view .LVU4406 12497 0084 15F0400F tst r5, #64 12498 0088 19D1 bne .L786 5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12499 .loc 1 5006 63 discriminator 1 view .LVU4407 12500 008a 15F0020F tst r5, #2 12501 008e 16D0 beq .L786 5007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 12502 .loc 1 5007 66 view .LVU4408 12503 0090 16F0020F tst r6, #2 12504 0094 13D0 beq .L786 5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12505 .loc 1 5011 5 is_stmt 1 view .LVU4409 5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12506 .loc 1 5011 13 is_stmt 0 view .LVU4410 12507 0096 638D ldrh r3, [r4, #42] 12508 0098 9BB2 uxth r3, r3 5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12509 .loc 1 5011 8 view .LVU4411 12510 009a 002B cmp r3, #0 12511 009c DAD0 beq .L784 5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12512 .loc 1 5014 7 is_stmt 1 view .LVU4412 5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12513 .loc 1 5014 35 is_stmt 0 view .LVU4413 12514 009e 626A ldr r2, [r4, #36] 12515 .LVL905: 5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12516 .loc 1 5014 11 view .LVU4414 12517 00a0 2368 ldr r3, [r4] 5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12518 .loc 1 5014 30 view .LVU4415 12519 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2 5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12520 .loc 1 5014 28 view .LVU4416 12521 00a4 9A62 str r2, [r3, #40] 5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12522 .loc 1 5017 7 is_stmt 1 view .LVU4417 5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 426 12523 .loc 1 5017 11 is_stmt 0 view .LVU4418 12524 00a6 636A ldr r3, [r4, #36] 5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12525 .loc 1 5017 21 view .LVU4419 12526 00a8 0133 adds r3, r3, #1 12527 00aa 6362 str r3, [r4, #36] 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12528 .loc 1 5019 7 is_stmt 1 view .LVU4420 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12529 .loc 1 5019 11 is_stmt 0 view .LVU4421 12530 00ac 238D ldrh r3, [r4, #40] 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12531 .loc 1 5019 21 view .LVU4422 12532 00ae 013B subs r3, r3, #1 12533 00b0 2385 strh r3, [r4, #40] @ movhi 5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12534 .loc 1 5020 7 is_stmt 1 view .LVU4423 5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12535 .loc 1 5020 11 is_stmt 0 view .LVU4424 12536 00b2 638D ldrh r3, [r4, #42] 12537 00b4 9BB2 uxth r3, r3 5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12538 .loc 1 5020 22 view .LVU4425 12539 00b6 013B subs r3, r3, #1 12540 00b8 9BB2 uxth r3, r3 12541 00ba 6385 strh r3, [r4, #42] @ movhi 12542 00bc CAE7 b .L784 12543 .LVL906: 12544 .L786: 5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12545 .loc 1 5023 8 is_stmt 1 view .LVU4426 5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12546 .loc 1 5023 11 is_stmt 0 view .LVU4427 12547 00be 15F0800F tst r5, #128 12548 00c2 3FD0 beq .L787 5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12549 .loc 1 5023 64 discriminator 1 view .LVU4428 12550 00c4 16F0400F tst r6, #64 12551 00c8 3CD0 beq .L787 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12552 .loc 1 5026 5 is_stmt 1 view .LVU4429 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12553 .loc 1 5026 14 is_stmt 0 view .LVU4430 12554 00ca 638D ldrh r3, [r4, #42] 12555 00cc 9BB2 uxth r3, r3 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12556 .loc 1 5026 8 view .LVU4431 12557 00ce 5BB3 cbz r3, .L788 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12558 .loc 1 5026 41 discriminator 1 view .LVU4432 12559 00d0 238D ldrh r3, [r4, #40] 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12560 .loc 1 5026 33 discriminator 1 view .LVU4433 12561 00d2 4BBB cbnz r3, .L788 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12562 .loc 1 5028 7 is_stmt 1 view .LVU4434 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 427 12563 .loc 1 5028 35 is_stmt 0 view .LVU4435 12564 00d4 2368 ldr r3, [r4] 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12565 .loc 1 5028 45 view .LVU4436 12566 00d6 5968 ldr r1, [r3, #4] 12567 .LVL907: 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12568 .loc 1 5028 18 view .LVU4437 12569 00d8 C1F30901 ubfx r1, r1, #0, #10 12570 .LVL908: 5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12571 .loc 1 5030 7 is_stmt 1 view .LVU4438 5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12572 .loc 1 5030 15 is_stmt 0 view .LVU4439 12573 00dc 638D ldrh r3, [r4, #42] 12574 00de 9BB2 uxth r3, r3 5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12575 .loc 1 5030 10 view .LVU4440 12576 00e0 FF2B cmp r3, #255 12577 00e2 0ED8 bhi .L802 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12578 .loc 1 5037 9 is_stmt 1 view .LVU4441 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12579 .loc 1 5037 30 is_stmt 0 view .LVU4442 12580 00e4 628D ldrh r2, [r4, #42] 12581 .LVL909: 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12582 .loc 1 5037 30 view .LVU4443 12583 00e6 92B2 uxth r2, r2 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12584 .loc 1 5037 24 view .LVU4444 12585 00e8 2285 strh r2, [r4, #40] @ movhi 5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12586 .loc 1 5038 9 is_stmt 1 view .LVU4445 5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12587 .loc 1 5038 17 is_stmt 0 view .LVU4446 12588 00ea E36A ldr r3, [r4, #44] 5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12589 .loc 1 5038 12 view .LVU4447 12590 00ec 13F5803F cmn r3, #65536 12591 00f0 11D0 beq .L790 5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12592 .loc 1 5040 11 is_stmt 1 view .LVU4448 5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12593 .loc 1 5041 34 is_stmt 0 view .LVU4449 12594 00f2 E36A ldr r3, [r4, #44] 5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12595 .loc 1 5040 11 view .LVU4450 12596 00f4 0020 movs r0, #0 12597 .LVL910: 5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12598 .loc 1 5040 11 view .LVU4451 12599 00f6 0090 str r0, [sp] 12600 00f8 D2B2 uxtb r2, r2 12601 00fa 2046 mov r0, r4 12602 00fc FFF7FEFF bl I2C_TransferConfig 12603 .LVL911: ARM GAS /tmp/ccN54YTb.s page 428 5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12604 .loc 1 5040 11 view .LVU4452 12605 0100 A8E7 b .L784 12606 .LVL912: 12607 .L802: 5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12608 .loc 1 5032 9 is_stmt 1 view .LVU4453 5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12609 .loc 1 5032 24 is_stmt 0 view .LVU4454 12610 0102 FF22 movs r2, #255 12611 .LVL913: 5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12612 .loc 1 5032 24 view .LVU4455 12613 0104 2285 strh r2, [r4, #40] @ movhi 5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12614 .loc 1 5033 9 is_stmt 1 view .LVU4456 12615 0106 0023 movs r3, #0 12616 0108 0093 str r3, [sp] 12617 010a 4FF08073 mov r3, #16777216 12618 010e 2046 mov r0, r4 12619 .LVL914: 5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12620 .loc 1 5033 9 is_stmt 0 view .LVU4457 12621 0110 FFF7FEFF bl I2C_TransferConfig 12622 .LVL915: 5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12623 .loc 1 5033 9 view .LVU4458 12624 0114 9EE7 b .L784 12625 .LVL916: 12626 .L790: 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12627 .loc 1 5045 11 is_stmt 1 view .LVU4459 12628 0116 0023 movs r3, #0 12629 0118 0093 str r3, [sp] 12630 011a 4FF00073 mov r3, #33554432 12631 011e D2B2 uxtb r2, r2 12632 0120 2046 mov r0, r4 12633 .LVL917: 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12634 .loc 1 5045 11 is_stmt 0 view .LVU4460 12635 0122 FFF7FEFF bl I2C_TransferConfig 12636 .LVL918: 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12637 .loc 1 5045 11 view .LVU4461 12638 0126 95E7 b .L784 12639 .LVL919: 12640 .L788: 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12641 .loc 1 5053 7 is_stmt 1 view .LVU4462 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12642 .loc 1 5053 11 is_stmt 0 view .LVU4463 12643 0128 2368 ldr r3, [r4] 12644 012a 5B68 ldr r3, [r3, #4] 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12645 .loc 1 5053 10 view .LVU4464 12646 012c 13F0007F tst r3, #33554432 12647 0130 03D1 bne .L791 ARM GAS /tmp/ccN54YTb.s page 429 5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12648 .loc 1 5056 9 is_stmt 1 view .LVU4465 12649 0132 2046 mov r0, r4 12650 .LVL920: 5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12651 .loc 1 5056 9 is_stmt 0 view .LVU4466 12652 0134 FFF7FEFF bl I2C_ITMasterSeqCplt 12653 .LVL921: 5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12654 .loc 1 5056 9 view .LVU4467 12655 0138 8CE7 b .L784 12656 .LVL922: 12657 .L791: 5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12658 .loc 1 5062 9 is_stmt 1 view .LVU4468 12659 013a 4021 movs r1, #64 12660 .LVL923: 5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12661 .loc 1 5062 9 is_stmt 0 view .LVU4469 12662 013c 2046 mov r0, r4 12663 .LVL924: 5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12664 .loc 1 5062 9 view .LVU4470 12665 013e FFF7FEFF bl I2C_ITError 12666 .LVL925: 5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12667 .loc 1 5062 9 view .LVU4471 12668 0142 87E7 b .L784 12669 .LVL926: 12670 .L787: 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12671 .loc 1 5066 8 is_stmt 1 view .LVU4472 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12672 .loc 1 5066 11 is_stmt 0 view .LVU4473 12673 0144 002B cmp r3, #0 12674 0146 85D0 beq .L784 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12675 .loc 1 5066 63 discriminator 1 view .LVU4474 12676 0148 16F0400F tst r6, #64 12677 014c 82D0 beq .L784 5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12678 .loc 1 5069 5 is_stmt 1 view .LVU4475 5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12679 .loc 1 5069 13 is_stmt 0 view .LVU4476 12680 014e 638D ldrh r3, [r4, #42] 12681 0150 9BB2 uxth r3, r3 5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12682 .loc 1 5069 8 view .LVU4477 12683 0152 93B9 cbnz r3, .L792 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12684 .loc 1 5071 7 is_stmt 1 view .LVU4478 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12685 .loc 1 5071 11 is_stmt 0 view .LVU4479 12686 0154 2368 ldr r3, [r4] 12687 0156 5A68 ldr r2, [r3, #4] 12688 .LVL927: 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 430 12689 .loc 1 5071 10 view .LVU4480 12690 0158 12F0007F tst r2, #33554432 12691 015c 7FF47AAF bne .L784 5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12692 .loc 1 5074 9 is_stmt 1 view .LVU4481 5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12693 .loc 1 5074 17 is_stmt 0 view .LVU4482 12694 0160 E26A ldr r2, [r4, #44] 5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12695 .loc 1 5074 12 view .LVU4483 12696 0162 12F5803F cmn r2, #65536 12697 0166 04D1 bne .L793 5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12698 .loc 1 5077 11 is_stmt 1 view .LVU4484 5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12699 .loc 1 5077 25 is_stmt 0 view .LVU4485 12700 0168 5A68 ldr r2, [r3, #4] 5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12701 .loc 1 5077 31 view .LVU4486 12702 016a 42F48042 orr r2, r2, #16384 12703 016e 5A60 str r2, [r3, #4] 12704 0170 70E7 b .L784 12705 .L793: 5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12706 .loc 1 5082 11 is_stmt 1 view .LVU4487 12707 0172 2046 mov r0, r4 12708 .LVL928: 5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12709 .loc 1 5082 11 is_stmt 0 view .LVU4488 12710 0174 FFF7FEFF bl I2C_ITMasterSeqCplt 12711 .LVL929: 5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12712 .loc 1 5082 11 view .LVU4489 12713 0178 6CE7 b .L784 12714 .LVL930: 12715 .L792: 5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12716 .loc 1 5090 7 is_stmt 1 view .LVU4490 12717 017a 4021 movs r1, #64 12718 .LVL931: 5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12719 .loc 1 5090 7 is_stmt 0 view .LVU4491 12720 017c 2046 mov r0, r4 12721 .LVL932: 5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12722 .loc 1 5090 7 view .LVU4492 12723 017e FFF7FEFF bl I2C_ITError 12724 .LVL933: 5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12725 .loc 1 5090 7 view .LVU4493 12726 0182 67E7 b .L784 12727 .LVL934: 12728 .L801: 5102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12729 .loc 1 5102 5 is_stmt 1 view .LVU4494 12730 0184 2946 mov r1, r5 12731 0186 2046 mov r0, r4 ARM GAS /tmp/ccN54YTb.s page 431 12732 0188 FFF7FEFF bl I2C_ITMasterCplt 12733 .LVL935: 12734 018c 69E7 b .L794 12735 .LVL936: 12736 .L795: 12737 .cfi_def_cfa_offset 0 12738 .cfi_restore 4 12739 .cfi_restore 5 12740 .cfi_restore 6 12741 .cfi_restore 14 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12742 .loc 1 4975 3 is_stmt 0 discriminator 1 view .LVU4495 12743 018e 0220 movs r0, #2 12744 .LVL937: 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12745 .loc 1 5109 1 view .LVU4496 12746 0190 7047 bx lr 12747 .cfi_endproc 12748 .LFE384: 12750 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits 12751 .align 1 12752 .syntax unified 12753 .thumb 12754 .thumb_func 12756 I2C_Mem_ISR_DMA: 12757 .LVL938: 12758 .LFB388: 5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12759 .loc 1 5544 1 is_stmt 1 view -0 12760 .cfi_startproc 12761 @ args = 0, pretend = 0, frame = 0 12762 @ frame_needed = 0, uses_anonymous_args = 0 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12763 .loc 1 5545 3 view .LVU4498 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12764 .loc 1 5548 3 view .LVU4499 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12765 .loc 1 5548 3 view .LVU4500 12766 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12767 0004 012B cmp r3, #1 12768 0006 00F0C580 beq .L818 5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12769 .loc 1 5544 1 is_stmt 0 view .LVU4501 12770 000a 10B5 push {r4, lr} 12771 .cfi_def_cfa_offset 8 12772 .cfi_offset 4, -8 12773 .cfi_offset 14, -4 12774 000c 82B0 sub sp, sp, #8 12775 .cfi_def_cfa_offset 16 12776 000e 0446 mov r4, r0 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12777 .loc 1 5548 3 is_stmt 1 discriminator 2 view .LVU4502 12778 0010 0123 movs r3, #1 12779 0012 80F84030 strb r3, [r0, #64] 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12780 .loc 1 5548 3 view .LVU4503 5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) ARM GAS /tmp/ccN54YTb.s page 432 12781 .loc 1 5550 3 view .LVU4504 5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12782 .loc 1 5550 6 is_stmt 0 view .LVU4505 12783 0016 11F0100F tst r1, #16 12784 001a 02D0 beq .L805 5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12785 .loc 1 5550 55 discriminator 1 view .LVU4506 12786 001c 12F0100F tst r2, #16 12787 0020 10D1 bne .L824 12788 .L805: 5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12789 .loc 1 5567 8 is_stmt 1 view .LVU4507 5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12790 .loc 1 5567 11 is_stmt 0 view .LVU4508 12791 0022 11F0020F tst r1, #2 12792 0026 1BD0 beq .L807 5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12793 .loc 1 5567 62 discriminator 1 view .LVU4509 12794 0028 12F0020F tst r2, #2 12795 002c 18D0 beq .L807 5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12796 .loc 1 5571 5 is_stmt 1 view .LVU4510 5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12797 .loc 1 5571 9 is_stmt 0 view .LVU4511 12798 002e 2368 ldr r3, [r4] 5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12799 .loc 1 5571 32 view .LVU4512 12800 0030 226D ldr r2, [r4, #80] 12801 .LVL939: 5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12802 .loc 1 5571 26 view .LVU4513 12803 0032 9A62 str r2, [r3, #40] 5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12804 .loc 1 5574 5 is_stmt 1 view .LVU4514 5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12805 .loc 1 5574 22 is_stmt 0 view .LVU4515 12806 0034 4FF0FF33 mov r3, #-1 12807 0038 2365 str r3, [r4, #80] 12808 .LVL940: 12809 .L806: 5674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12810 .loc 1 5674 3 is_stmt 1 view .LVU4516 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12811 .loc 1 5677 3 view .LVU4517 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12812 .loc 1 5677 3 view .LVU4518 12813 003a 0020 movs r0, #0 12814 003c 84F84000 strb r0, [r4, #64] 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12815 .loc 1 5677 3 view .LVU4519 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12816 .loc 1 5679 3 view .LVU4520 5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12817 .loc 1 5680 1 is_stmt 0 view .LVU4521 12818 0040 02B0 add sp, sp, #8 12819 .cfi_remember_state 12820 .cfi_def_cfa_offset 8 ARM GAS /tmp/ccN54YTb.s page 433 12821 @ sp needed 12822 0042 10BD pop {r4, pc} 12823 .LVL941: 12824 .L824: 12825 .cfi_restore_state 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12826 .loc 1 5554 5 is_stmt 1 view .LVU4522 12827 0044 0368 ldr r3, [r0] 12828 0046 1022 movs r2, #16 12829 .LVL942: 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12830 .loc 1 5554 5 is_stmt 0 view .LVU4523 12831 0048 DA61 str r2, [r3, #28] 5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12832 .loc 1 5557 5 is_stmt 1 view .LVU4524 5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12833 .loc 1 5557 9 is_stmt 0 view .LVU4525 12834 004a 436C ldr r3, [r0, #68] 5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12835 .loc 1 5557 21 view .LVU4526 12836 004c 43F00403 orr r3, r3, #4 12837 0050 4364 str r3, [r0, #68] 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12838 .loc 1 5562 5 is_stmt 1 view .LVU4527 12839 0052 2021 movs r1, #32 12840 .LVL943: 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12841 .loc 1 5562 5 is_stmt 0 view .LVU4528 12842 0054 FFF7FEFF bl I2C_Enable_IRQ 12843 .LVL944: 5565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12844 .loc 1 5565 5 is_stmt 1 view .LVU4529 12845 0058 2046 mov r0, r4 12846 005a FFF7FEFF bl I2C_Flush_TXDR 12847 .LVL945: 12848 005e ECE7 b .L806 12849 .LVL946: 12850 .L807: 5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12851 .loc 1 5576 8 view .LVU4530 5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12852 .loc 1 5576 11 is_stmt 0 view .LVU4531 12853 0060 11F0800F tst r1, #128 12854 0064 02D0 beq .L808 5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12855 .loc 1 5576 61 discriminator 1 view .LVU4532 12856 0066 12F0400F tst r2, #64 12857 006a 0FD1 bne .L825 12858 .L808: 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12859 .loc 1 5621 8 is_stmt 1 view .LVU4533 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12860 .loc 1 5621 11 is_stmt 0 view .LVU4534 12861 006c 11F0400F tst r1, #64 12862 0070 02D0 beq .L813 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12863 .loc 1 5621 60 discriminator 1 view .LVU4535 ARM GAS /tmp/ccN54YTb.s page 434 12864 0072 12F0400F tst r2, #64 12865 0076 4DD1 bne .L826 12866 .L813: 5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12867 .loc 1 5665 8 is_stmt 1 view .LVU4536 5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12868 .loc 1 5665 11 is_stmt 0 view .LVU4537 12869 0078 11F0200F tst r1, #32 12870 007c DDD0 beq .L806 5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12871 .loc 1 5665 63 discriminator 1 view .LVU4538 12872 007e 12F0200F tst r2, #32 12873 0082 DAD0 beq .L806 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12874 .loc 1 5669 5 is_stmt 1 view .LVU4539 12875 0084 2046 mov r0, r4 12876 .LVL947: 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12877 .loc 1 5669 5 is_stmt 0 view .LVU4540 12878 0086 FFF7FEFF bl I2C_ITMasterCplt 12879 .LVL948: 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12880 .loc 1 5669 5 view .LVU4541 12881 008a D6E7 b .L806 12882 .LVL949: 12883 .L825: 5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12884 .loc 1 5580 5 is_stmt 1 view .LVU4542 12885 008c 0121 movs r1, #1 12886 .LVL950: 5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12887 .loc 1 5580 5 is_stmt 0 view .LVU4543 12888 008e 2046 mov r0, r4 12889 .LVL951: 5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12890 .loc 1 5580 5 view .LVU4544 12891 0090 FFF7FEFF bl I2C_Disable_IRQ 12892 .LVL952: 5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12893 .loc 1 5583 5 is_stmt 1 view .LVU4545 12894 0094 1021 movs r1, #16 12895 0096 2046 mov r0, r4 12896 0098 FFF7FEFF bl I2C_Enable_IRQ 12897 .LVL953: 5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12898 .loc 1 5585 5 view .LVU4546 5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12899 .loc 1 5585 13 is_stmt 0 view .LVU4547 12900 009c 638D ldrh r3, [r4, #42] 12901 009e 9BB2 uxth r3, r3 5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12902 .loc 1 5585 8 view .LVU4548 12903 00a0 002B cmp r3, #0 12904 00a2 32D0 beq .L809 5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12905 .loc 1 5588 7 is_stmt 1 view .LVU4549 5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 435 12906 .loc 1 5588 15 is_stmt 0 view .LVU4550 12907 00a4 638D ldrh r3, [r4, #42] 12908 00a6 9BB2 uxth r3, r3 5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12909 .loc 1 5588 10 view .LVU4551 12910 00a8 FF2B cmp r3, #255 12911 00aa 1AD9 bls .L810 5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12912 .loc 1 5590 9 is_stmt 1 view .LVU4552 5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12913 .loc 1 5590 24 is_stmt 0 view .LVU4553 12914 00ac FF22 movs r2, #255 12915 00ae 2285 strh r2, [r4, #40] @ movhi 5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12916 .loc 1 5591 9 is_stmt 1 view .LVU4554 5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12917 .loc 1 5591 48 is_stmt 0 view .LVU4555 12918 00b0 E16C ldr r1, [r4, #76] 5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12919 .loc 1 5591 9 view .LVU4556 12920 00b2 0023 movs r3, #0 12921 00b4 0093 str r3, [sp] 12922 00b6 4FF08073 mov r3, #16777216 12923 00ba 89B2 uxth r1, r1 12924 00bc 2046 mov r0, r4 12925 00be FFF7FEFF bl I2C_TransferConfig 12926 .LVL954: 12927 .L811: 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12928 .loc 1 5602 7 is_stmt 1 view .LVU4557 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12929 .loc 1 5602 11 is_stmt 0 view .LVU4558 12930 00c2 638D ldrh r3, [r4, #42] 12931 00c4 9BB2 uxth r3, r3 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12932 .loc 1 5602 30 view .LVU4559 12933 00c6 228D ldrh r2, [r4, #40] 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12934 .loc 1 5602 23 view .LVU4560 12935 00c8 9B1A subs r3, r3, r2 12936 00ca 9BB2 uxth r3, r3 12937 00cc 6385 strh r3, [r4, #42] @ movhi 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12938 .loc 1 5605 7 is_stmt 1 view .LVU4561 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12939 .loc 1 5605 15 is_stmt 0 view .LVU4562 12940 00ce 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12941 .loc 1 5605 10 view .LVU4563 12942 00d2 222B cmp r3, #34 12943 00d4 13D0 beq .L827 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12944 .loc 1 5611 9 is_stmt 1 view .LVU4564 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12945 .loc 1 5611 13 is_stmt 0 view .LVU4565 12946 00d6 2268 ldr r2, [r4] 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 436 12947 .loc 1 5611 23 view .LVU4566 12948 00d8 1368 ldr r3, [r2] 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12949 .loc 1 5611 29 view .LVU4567 12950 00da 43F48043 orr r3, r3, #16384 12951 00de 1360 str r3, [r2] 12952 00e0 ABE7 b .L806 12953 .L810: 5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12954 .loc 1 5596 9 is_stmt 1 view .LVU4568 5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12955 .loc 1 5596 30 is_stmt 0 view .LVU4569 12956 00e2 628D ldrh r2, [r4, #42] 12957 00e4 92B2 uxth r2, r2 5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12958 .loc 1 5596 24 view .LVU4570 12959 00e6 2285 strh r2, [r4, #40] @ movhi 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12960 .loc 1 5597 9 is_stmt 1 view .LVU4571 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12961 .loc 1 5597 48 is_stmt 0 view .LVU4572 12962 00e8 E16C ldr r1, [r4, #76] 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12963 .loc 1 5597 9 view .LVU4573 12964 00ea 0023 movs r3, #0 12965 00ec 0093 str r3, [sp] 12966 00ee 4FF00073 mov r3, #33554432 12967 00f2 D2B2 uxtb r2, r2 12968 00f4 89B2 uxth r1, r1 12969 00f6 2046 mov r0, r4 12970 00f8 FFF7FEFF bl I2C_TransferConfig 12971 .LVL955: 12972 00fc E1E7 b .L811 12973 .L827: 5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12974 .loc 1 5607 9 is_stmt 1 view .LVU4574 5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12975 .loc 1 5607 13 is_stmt 0 view .LVU4575 12976 00fe 2268 ldr r2, [r4] 5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12977 .loc 1 5607 23 view .LVU4576 12978 0100 1368 ldr r3, [r2] 5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12979 .loc 1 5607 29 view .LVU4577 12980 0102 43F40043 orr r3, r3, #32768 12981 0106 1360 str r3, [r2] 12982 0108 97E7 b .L806 12983 .L809: 5618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12984 .loc 1 5618 7 is_stmt 1 view .LVU4578 12985 010a 4021 movs r1, #64 12986 010c 2046 mov r0, r4 12987 010e FFF7FEFF bl I2C_ITError 12988 .LVL956: 12989 0112 92E7 b .L806 12990 .LVL957: 12991 .L826: ARM GAS /tmp/ccN54YTb.s page 437 5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12992 .loc 1 5625 5 view .LVU4579 12993 0114 0121 movs r1, #1 12994 .LVL958: 5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12995 .loc 1 5625 5 is_stmt 0 view .LVU4580 12996 0116 2046 mov r0, r4 12997 .LVL959: 5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12998 .loc 1 5625 5 view .LVU4581 12999 0118 FFF7FEFF bl I2C_Disable_IRQ 13000 .LVL960: 5628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13001 .loc 1 5628 5 is_stmt 1 view .LVU4582 13002 011c 1021 movs r1, #16 13003 011e 2046 mov r0, r4 13004 0120 FFF7FEFF bl I2C_Enable_IRQ 13005 .LVL961: 5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13006 .loc 1 5630 5 view .LVU4583 5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13007 .loc 1 5630 13 is_stmt 0 view .LVU4584 13008 0124 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13009 .loc 1 5630 8 view .LVU4585 13010 0128 222B cmp r3, #34 13011 012a 1ED0 beq .L819 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13012 .loc 1 5545 12 view .LVU4586 13013 012c 1A48 ldr r0, .L829 13014 .L814: 13015 .LVL962: 5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13016 .loc 1 5635 5 is_stmt 1 view .LVU4587 5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13017 .loc 1 5635 13 is_stmt 0 view .LVU4588 13018 012e 638D ldrh r3, [r4, #42] 13019 0130 9BB2 uxth r3, r3 5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13020 .loc 1 5635 8 view .LVU4589 13021 0132 FF2B cmp r3, #255 13022 0134 1BD9 bls .L815 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13023 .loc 1 5637 7 is_stmt 1 view .LVU4590 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13024 .loc 1 5637 22 is_stmt 0 view .LVU4591 13025 0136 FF22 movs r2, #255 13026 0138 2285 strh r2, [r4, #40] @ movhi 5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13027 .loc 1 5640 7 is_stmt 1 view .LVU4592 5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13028 .loc 1 5640 46 is_stmt 0 view .LVU4593 13029 013a E16C ldr r1, [r4, #76] 5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13030 .loc 1 5640 7 view .LVU4594 13031 013c 0090 str r0, [sp] 13032 013e 4FF08073 mov r3, #16777216 ARM GAS /tmp/ccN54YTb.s page 438 13033 0142 89B2 uxth r1, r1 13034 0144 2046 mov r0, r4 13035 .LVL963: 5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13036 .loc 1 5640 7 view .LVU4595 13037 0146 FFF7FEFF bl I2C_TransferConfig 13038 .LVL964: 13039 .L816: 5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13040 .loc 1 5653 5 is_stmt 1 view .LVU4596 5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13041 .loc 1 5653 9 is_stmt 0 view .LVU4597 13042 014a 638D ldrh r3, [r4, #42] 13043 014c 9BB2 uxth r3, r3 5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13044 .loc 1 5653 28 view .LVU4598 13045 014e 228D ldrh r2, [r4, #40] 5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13046 .loc 1 5653 21 view .LVU4599 13047 0150 9B1A subs r3, r3, r2 13048 0152 9BB2 uxth r3, r3 13049 0154 6385 strh r3, [r4, #42] @ movhi 5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13050 .loc 1 5656 5 is_stmt 1 view .LVU4600 5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13051 .loc 1 5656 13 is_stmt 0 view .LVU4601 13052 0156 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13053 .loc 1 5656 8 view .LVU4602 13054 015a 222B cmp r3, #34 13055 015c 14D0 beq .L828 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13056 .loc 1 5662 7 is_stmt 1 view .LVU4603 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13057 .loc 1 5662 11 is_stmt 0 view .LVU4604 13058 015e 2268 ldr r2, [r4] 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13059 .loc 1 5662 21 view .LVU4605 13060 0160 1368 ldr r3, [r2] 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13061 .loc 1 5662 27 view .LVU4606 13062 0162 43F48043 orr r3, r3, #16384 13063 0166 1360 str r3, [r2] 13064 0168 67E7 b .L806 13065 .LVL965: 13066 .L819: 5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13067 .loc 1 5632 17 view .LVU4607 13068 016a 0C48 ldr r0, .L829+4 13069 016c DFE7 b .L814 13070 .LVL966: 13071 .L815: 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13072 .loc 1 5645 7 is_stmt 1 view .LVU4608 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13073 .loc 1 5645 28 is_stmt 0 view .LVU4609 13074 016e 628D ldrh r2, [r4, #42] ARM GAS /tmp/ccN54YTb.s page 439 13075 0170 92B2 uxth r2, r2 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13076 .loc 1 5645 22 view .LVU4610 13077 0172 2285 strh r2, [r4, #40] @ movhi 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13078 .loc 1 5648 7 is_stmt 1 view .LVU4611 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13079 .loc 1 5648 46 is_stmt 0 view .LVU4612 13080 0174 E16C ldr r1, [r4, #76] 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13081 .loc 1 5648 7 view .LVU4613 13082 0176 0090 str r0, [sp] 13083 0178 4FF00073 mov r3, #33554432 13084 017c D2B2 uxtb r2, r2 13085 017e 89B2 uxth r1, r1 13086 0180 2046 mov r0, r4 13087 .LVL967: 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13088 .loc 1 5648 7 view .LVU4614 13089 0182 FFF7FEFF bl I2C_TransferConfig 13090 .LVL968: 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13091 .loc 1 5648 7 view .LVU4615 13092 0186 E0E7 b .L816 13093 .L828: 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13094 .loc 1 5658 7 is_stmt 1 view .LVU4616 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13095 .loc 1 5658 11 is_stmt 0 view .LVU4617 13096 0188 2268 ldr r2, [r4] 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13097 .loc 1 5658 21 view .LVU4618 13098 018a 1368 ldr r3, [r2] 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13099 .loc 1 5658 27 view .LVU4619 13100 018c 43F40043 orr r3, r3, #32768 13101 0190 1360 str r3, [r2] 13102 0192 52E7 b .L806 13103 .LVL969: 13104 .L818: 13105 .cfi_def_cfa_offset 0 13106 .cfi_restore 4 13107 .cfi_restore 14 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13108 .loc 1 5548 3 discriminator 1 view .LVU4620 13109 0194 0220 movs r0, #2 13110 .LVL970: 5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13111 .loc 1 5680 1 view .LVU4621 13112 0196 7047 bx lr 13113 .L830: 13114 .align 2 13115 .L829: 13116 0198 00200080 .word -2147475456 13117 019c 00240080 .word -2147474432 13118 .cfi_endproc 13119 .LFE388: ARM GAS /tmp/ccN54YTb.s page 440 13121 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 13122 .align 1 13123 .syntax unified 13124 .thumb 13125 .thumb_func 13127 I2C_Slave_ISR_DMA: 13128 .LVL971: 13129 .LFB389: 5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13130 .loc 1 5692 1 is_stmt 1 view -0 13131 .cfi_startproc 13132 @ args = 0, pretend = 0, frame = 0 13133 @ frame_needed = 0, uses_anonymous_args = 0 5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13134 .loc 1 5692 1 is_stmt 0 view .LVU4623 13135 0000 70B5 push {r4, r5, r6, lr} 13136 .cfi_def_cfa_offset 16 13137 .cfi_offset 4, -16 13138 .cfi_offset 5, -12 13139 .cfi_offset 6, -8 13140 .cfi_offset 14, -4 13141 0002 0446 mov r4, r0 5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13142 .loc 1 5693 3 is_stmt 1 view .LVU4624 5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13143 .loc 1 5693 12 is_stmt 0 view .LVU4625 13144 0004 C06A ldr r0, [r0, #44] 13145 .LVL972: 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13146 .loc 1 5694 3 is_stmt 1 view .LVU4626 5695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13147 .loc 1 5695 3 view .LVU4627 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13148 .loc 1 5698 3 view .LVU4628 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13149 .loc 1 5698 3 view .LVU4629 13150 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 13151 000a 012B cmp r3, #1 13152 000c 00F0FF80 beq .L854 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13153 .loc 1 5698 3 discriminator 2 view .LVU4630 13154 0010 0123 movs r3, #1 13155 0012 84F84030 strb r3, [r4, #64] 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13156 .loc 1 5698 3 view .LVU4631 5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13157 .loc 1 5701 3 view .LVU4632 5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13158 .loc 1 5701 6 is_stmt 0 view .LVU4633 13159 0016 11F0200F tst r1, #32 13160 001a 02D0 beq .L833 5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13161 .loc 1 5701 58 discriminator 1 view .LVU4634 13162 001c 12F0200F tst r2, #32 13163 0020 4FD1 bne .L859 13164 .L833: 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) ARM GAS /tmp/ccN54YTb.s page 441 13165 .loc 1 5707 8 is_stmt 1 view .LVU4635 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13166 .loc 1 5707 11 is_stmt 0 view .LVU4636 13167 0022 11F0100F tst r1, #16 13168 0026 00F0E480 beq .L835 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13169 .loc 1 5707 60 discriminator 1 view .LVU4637 13170 002a 12F0100F tst r2, #16 13171 002e 00F0E080 beq .L835 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13172 .loc 1 5714 5 is_stmt 1 view .LVU4638 13173 0032 C2F38036 ubfx r6, r2, #14, #1 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13174 .loc 1 5714 8 is_stmt 0 view .LVU4639 13175 0036 12F4804F tst r2, #16384 13176 003a 03D1 bne .L836 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13177 .loc 1 5714 68 discriminator 1 view .LVU4640 13178 003c 12F4004F tst r2, #32768 13179 0040 00F0D380 beq .L837 13180 .L836: 5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13181 .loc 1 5718 7 is_stmt 1 view .LVU4641 5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13182 .loc 1 5718 15 is_stmt 0 view .LVU4642 13183 0044 E36B ldr r3, [r4, #60] 5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13184 .loc 1 5718 10 view .LVU4643 13185 0046 002B cmp r3, #0 13186 0048 47D0 beq .L855 5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13187 .loc 1 5720 9 is_stmt 1 view .LVU4644 13188 004a C2F3C035 ubfx r5, r2, #15, #1 5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13189 .loc 1 5720 12 is_stmt 0 view .LVU4645 13190 004e 12F4004F tst r2, #32768 13191 0052 43D0 beq .L838 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13192 .loc 1 5722 11 is_stmt 1 view .LVU4646 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13193 .loc 1 5722 15 is_stmt 0 view .LVU4647 13194 0054 1B68 ldr r3, [r3] 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13195 .loc 1 5722 53 view .LVU4648 13196 0056 6F4D ldr r5, .L863 13197 0058 6F4A ldr r2, .L863+4 13198 .LVL973: 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13199 .loc 1 5722 53 view .LVU4649 13200 005a 9342 cmp r3, r2 13201 005c 18BF it ne 13202 005e AB42 cmpne r3, r5 13203 0060 33D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13204 .loc 1 5722 15 discriminator 2 view .LVU4650 13205 0062 1832 adds r2, r2, #24 13206 0064 9342 cmp r3, r2 ARM GAS /tmp/ccN54YTb.s page 442 13207 0066 30D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13208 .loc 1 5722 15 discriminator 4 view .LVU4651 13209 0068 1832 adds r2, r2, #24 13210 006a 9342 cmp r3, r2 13211 006c 2DD0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13212 .loc 1 5722 15 discriminator 6 view .LVU4652 13213 006e 1832 adds r2, r2, #24 13214 0070 9342 cmp r3, r2 13215 0072 2AD0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13216 .loc 1 5722 15 discriminator 8 view .LVU4653 13217 0074 1832 adds r2, r2, #24 13218 0076 9342 cmp r3, r2 13219 0078 27D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13220 .loc 1 5722 15 discriminator 10 view .LVU4654 13221 007a 1832 adds r2, r2, #24 13222 007c 9342 cmp r3, r2 13223 007e 24D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13224 .loc 1 5722 15 discriminator 12 view .LVU4655 13225 0080 1832 adds r2, r2, #24 13226 0082 9342 cmp r3, r2 13227 0084 21D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13228 .loc 1 5722 15 discriminator 14 view .LVU4656 13229 0086 02F55672 add r2, r2, #856 13230 008a 9342 cmp r3, r2 13231 008c 1DD0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13232 .loc 1 5722 15 discriminator 16 view .LVU4657 13233 008e 1832 adds r2, r2, #24 13234 0090 9342 cmp r3, r2 13235 0092 1AD0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13236 .loc 1 5722 15 discriminator 18 view .LVU4658 13237 0094 1832 adds r2, r2, #24 13238 0096 9342 cmp r3, r2 13239 0098 17D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13240 .loc 1 5722 15 discriminator 20 view .LVU4659 13241 009a 1832 adds r2, r2, #24 13242 009c 9342 cmp r3, r2 13243 009e 14D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13244 .loc 1 5722 15 discriminator 22 view .LVU4660 13245 00a0 1832 adds r2, r2, #24 13246 00a2 9342 cmp r3, r2 13247 00a4 11D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13248 .loc 1 5722 15 discriminator 24 view .LVU4661 13249 00a6 1832 adds r2, r2, #24 13250 00a8 9342 cmp r3, r2 13251 00aa 0ED0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 443 13252 .loc 1 5722 15 discriminator 26 view .LVU4662 13253 00ac 1832 adds r2, r2, #24 13254 00ae 9342 cmp r3, r2 13255 00b0 0BD0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13256 .loc 1 5722 15 discriminator 28 view .LVU4663 13257 00b2 1832 adds r2, r2, #24 13258 00b4 9342 cmp r3, r2 13259 00b6 08D0 beq .L839 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13260 .loc 1 5722 15 discriminator 30 view .LVU4664 13261 00b8 5B68 ldr r3, [r3, #4] 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13262 .loc 1 5722 53 discriminator 30 view .LVU4665 13263 00ba B3FA83F3 clz r3, r3 13264 00be 5B09 lsrs r3, r3, #5 13265 00c0 07E0 b .L841 13266 .LVL974: 13267 .L859: 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13268 .loc 1 5705 5 is_stmt 1 view .LVU4666 13269 00c2 2046 mov r0, r4 13270 .LVL975: 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13271 .loc 1 5705 5 is_stmt 0 view .LVU4667 13272 00c4 FFF7FEFF bl I2C_ITSlaveCplt 13273 .LVL976: 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13274 .loc 1 5705 5 view .LVU4668 13275 00c8 99E0 b .L834 13276 .LVL977: 13277 .L839: 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13278 .loc 1 5722 15 discriminator 29 view .LVU4669 13279 00ca 5B68 ldr r3, [r3, #4] 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13280 .loc 1 5722 53 discriminator 29 view .LVU4670 13281 00cc B3FA83F3 clz r3, r3 13282 00d0 5B09 lsrs r3, r3, #5 13283 .L841: 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13284 .loc 1 5722 14 discriminator 32 view .LVU4671 13285 00d2 002B cmp r3, #0 13286 00d4 3ED1 bne .L856 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13287 .loc 1 5694 12 view .LVU4672 13288 00d6 0025 movs r5, #0 13289 00d8 00E0 b .L838 13290 .LVL978: 13291 .L855: 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13292 .loc 1 5694 12 view .LVU4673 13293 00da 0025 movs r5, #0 13294 .LVL979: 13295 .L838: 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13296 .loc 1 5730 7 is_stmt 1 view .LVU4674 ARM GAS /tmp/ccN54YTb.s page 444 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13297 .loc 1 5730 15 is_stmt 0 view .LVU4675 13298 00dc A36B ldr r3, [r4, #56] 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13299 .loc 1 5730 10 view .LVU4676 13300 00de 002B cmp r3, #0 13301 00e0 3FD0 beq .L842 5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13302 .loc 1 5732 9 is_stmt 1 view .LVU4677 5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13303 .loc 1 5732 12 is_stmt 0 view .LVU4678 13304 00e2 002E cmp r6, #0 13305 00e4 3DD0 beq .L842 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13306 .loc 1 5734 11 is_stmt 1 view .LVU4679 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13307 .loc 1 5734 15 is_stmt 0 view .LVU4680 13308 00e6 1B68 ldr r3, [r3] 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13309 .loc 1 5734 53 view .LVU4681 13310 00e8 4A4E ldr r6, .L863 13311 00ea 4B4A ldr r2, .L863+4 13312 00ec 9342 cmp r3, r2 13313 00ee 18BF it ne 13314 00f0 B342 cmpne r3, r6 13315 00f2 31D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13316 .loc 1 5734 15 discriminator 2 view .LVU4682 13317 00f4 1832 adds r2, r2, #24 13318 00f6 9342 cmp r3, r2 13319 00f8 2ED0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13320 .loc 1 5734 15 discriminator 4 view .LVU4683 13321 00fa 1832 adds r2, r2, #24 13322 00fc 9342 cmp r3, r2 13323 00fe 2BD0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13324 .loc 1 5734 15 discriminator 6 view .LVU4684 13325 0100 1832 adds r2, r2, #24 13326 0102 9342 cmp r3, r2 13327 0104 28D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13328 .loc 1 5734 15 discriminator 8 view .LVU4685 13329 0106 1832 adds r2, r2, #24 13330 0108 9342 cmp r3, r2 13331 010a 25D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13332 .loc 1 5734 15 discriminator 10 view .LVU4686 13333 010c 1832 adds r2, r2, #24 13334 010e 9342 cmp r3, r2 13335 0110 22D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13336 .loc 1 5734 15 discriminator 12 view .LVU4687 13337 0112 1832 adds r2, r2, #24 13338 0114 9342 cmp r3, r2 13339 0116 1FD0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 445 13340 .loc 1 5734 15 discriminator 14 view .LVU4688 13341 0118 02F55672 add r2, r2, #856 13342 011c 9342 cmp r3, r2 13343 011e 1BD0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13344 .loc 1 5734 15 discriminator 16 view .LVU4689 13345 0120 1832 adds r2, r2, #24 13346 0122 9342 cmp r3, r2 13347 0124 18D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13348 .loc 1 5734 15 discriminator 18 view .LVU4690 13349 0126 1832 adds r2, r2, #24 13350 0128 9342 cmp r3, r2 13351 012a 15D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13352 .loc 1 5734 15 discriminator 20 view .LVU4691 13353 012c 1832 adds r2, r2, #24 13354 012e 9342 cmp r3, r2 13355 0130 12D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13356 .loc 1 5734 15 discriminator 22 view .LVU4692 13357 0132 1832 adds r2, r2, #24 13358 0134 9342 cmp r3, r2 13359 0136 0FD0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13360 .loc 1 5734 15 discriminator 24 view .LVU4693 13361 0138 1832 adds r2, r2, #24 13362 013a 9342 cmp r3, r2 13363 013c 0CD0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13364 .loc 1 5734 15 discriminator 26 view .LVU4694 13365 013e 1832 adds r2, r2, #24 13366 0140 9342 cmp r3, r2 13367 0142 09D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13368 .loc 1 5734 15 discriminator 28 view .LVU4695 13369 0144 1832 adds r2, r2, #24 13370 0146 9342 cmp r3, r2 13371 0148 06D0 beq .L843 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13372 .loc 1 5734 15 discriminator 30 view .LVU4696 13373 014a 5B68 ldr r3, [r3, #4] 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13374 .loc 1 5734 53 discriminator 30 view .LVU4697 13375 014c B3FA83F3 clz r3, r3 13376 0150 5B09 lsrs r3, r3, #5 13377 0152 05E0 b .L845 13378 .LVL980: 13379 .L856: 5724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13380 .loc 1 5724 26 view .LVU4698 13381 0154 0125 movs r5, #1 13382 0156 C1E7 b .L838 13383 .LVL981: 13384 .L843: 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13385 .loc 1 5734 15 discriminator 29 view .LVU4699 ARM GAS /tmp/ccN54YTb.s page 446 13386 0158 5B68 ldr r3, [r3, #4] 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13387 .loc 1 5734 53 discriminator 29 view .LVU4700 13388 015a B3FA83F3 clz r3, r3 13389 015e 5B09 lsrs r3, r3, #5 13390 .L845: 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13391 .loc 1 5734 14 discriminator 32 view .LVU4701 13392 0160 CBB9 cbnz r3, .L846 13393 .L842: 5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13394 .loc 1 5741 7 is_stmt 1 view .LVU4702 5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13395 .loc 1 5741 10 is_stmt 0 view .LVU4703 13396 0162 C5B9 cbnz r5, .L846 5772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13397 .loc 1 5772 9 is_stmt 1 view .LVU4704 13398 0164 2368 ldr r3, [r4] 13399 0166 1022 movs r2, #16 13400 0168 DA61 str r2, [r3, #28] 5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13401 .loc 1 5775 9 view .LVU4705 5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13402 .loc 1 5775 13 is_stmt 0 view .LVU4706 13403 016a 636C ldr r3, [r4, #68] 5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13404 .loc 1 5775 25 view .LVU4707 13405 016c 43F00403 orr r3, r3, #4 13406 0170 6364 str r3, [r4, #68] 5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13407 .loc 1 5778 9 is_stmt 1 view .LVU4708 5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13408 .loc 1 5778 18 is_stmt 0 view .LVU4709 13409 0172 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13410 0176 DBB2 uxtb r3, r3 13411 .LVL982: 5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13412 .loc 1 5780 9 is_stmt 1 view .LVU4710 5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13413 .loc 1 5780 12 is_stmt 0 view .LVU4711 13414 0178 B0F1807F cmp r0, #16777216 13415 017c 18BF it ne 13416 017e 0028 cmpne r0, #0 13417 0180 3DD1 bne .L834 5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13418 .loc 1 5782 11 is_stmt 1 view .LVU4712 13419 0182 213B subs r3, r3, #33 13420 .LVL983: 5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13421 .loc 1 5782 11 is_stmt 0 view .LVU4713 13422 0184 092B cmp r3, #9 13423 0186 28D8 bhi .L850 13424 0188 DFE803F0 tbb [pc, r3] 13425 .L852: 13426 018c 25 .byte (.L853-.L852)/2 13427 018d 2C .byte (.L851-.L852)/2 13428 018e 27 .byte (.L850-.L852)/2 ARM GAS /tmp/ccN54YTb.s page 447 13429 018f 27 .byte (.L850-.L852)/2 13430 0190 27 .byte (.L850-.L852)/2 13431 0191 27 .byte (.L850-.L852)/2 13432 0192 27 .byte (.L850-.L852)/2 13433 0193 27 .byte (.L850-.L852)/2 13434 0194 25 .byte (.L853-.L852)/2 13435 0195 2C .byte (.L851-.L852)/2 13436 .LVL984: 13437 .p2align 1 13438 .L846: 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13439 .loc 1 5743 9 is_stmt 1 view .LVU4714 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13440 .loc 1 5743 18 is_stmt 0 view .LVU4715 13441 0196 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13442 .loc 1 5743 12 view .LVU4716 13443 019a 282B cmp r3, #40 13444 019c 07D0 beq .L860 13445 .L848: 5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13446 .loc 1 5750 14 is_stmt 1 view .LVU4717 5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13447 .loc 1 5750 23 is_stmt 0 view .LVU4718 13448 019e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13449 .loc 1 5750 17 view .LVU4719 13450 01a2 292B cmp r3, #41 13451 01a4 0AD0 beq .L861 13452 .L849: 5765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13453 .loc 1 5765 11 is_stmt 1 view .LVU4720 13454 01a6 2368 ldr r3, [r4] 13455 01a8 1022 movs r2, #16 13456 01aa DA61 str r2, [r3, #28] 13457 01ac 27E0 b .L834 13458 .L860: 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13459 .loc 1 5743 51 is_stmt 0 discriminator 1 view .LVU4721 13460 01ae B0F1007F cmp r0, #33554432 13461 01b2 F4D1 bne .L848 5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13462 .loc 1 5748 11 is_stmt 1 view .LVU4722 13463 01b4 2046 mov r0, r4 13464 .LVL985: 5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13465 .loc 1 5748 11 is_stmt 0 view .LVU4723 13466 01b6 FFF7FEFF bl I2C_ITListenCplt 13467 .LVL986: 5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13468 .loc 1 5748 11 view .LVU4724 13469 01ba 20E0 b .L834 13470 .LVL987: 13471 .L861: 5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13472 .loc 1 5750 64 discriminator 1 view .LVU4725 13473 01bc 10F5803F cmn r0, #65536 ARM GAS /tmp/ccN54YTb.s page 448 13474 01c0 F1D0 beq .L849 5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13475 .loc 1 5753 11 is_stmt 1 view .LVU4726 13476 01c2 2368 ldr r3, [r4] 13477 01c4 1022 movs r2, #16 13478 01c6 DA61 str r2, [r3, #28] 5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13479 .loc 1 5756 11 view .LVU4727 13480 01c8 2046 mov r0, r4 13481 .LVL988: 5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13482 .loc 1 5756 11 is_stmt 0 view .LVU4728 13483 01ca FFF7FEFF bl I2C_Flush_TXDR 13484 .LVL989: 5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13485 .loc 1 5760 11 is_stmt 1 view .LVU4729 13486 01ce 2046 mov r0, r4 13487 01d0 FFF7FEFF bl I2C_ITSlaveSeqCplt 13488 .LVL990: 13489 01d4 13E0 b .L834 13490 .LVL991: 13491 .L853: 5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13492 .loc 1 5784 13 view .LVU4730 5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13493 .loc 1 5784 33 is_stmt 0 view .LVU4731 13494 01d6 2123 movs r3, #33 13495 .LVL992: 5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13496 .loc 1 5784 33 view .LVU4732 13497 01d8 2363 str r3, [r4, #48] 13498 .L850: 5793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13499 .loc 1 5793 11 is_stmt 1 view .LVU4733 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13500 .loc 1 5796 11 view .LVU4734 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13501 .loc 1 5796 33 is_stmt 0 view .LVU4735 13502 01da 616C ldr r1, [r4, #68] 13503 .LVL993: 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13504 .loc 1 5796 11 view .LVU4736 13505 01dc 2046 mov r0, r4 13506 .LVL994: 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13507 .loc 1 5796 11 view .LVU4737 13508 01de FFF7FEFF bl I2C_ITError 13509 .LVL995: 13510 01e2 0CE0 b .L834 13511 .LVL996: 13512 .L851: 5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13513 .loc 1 5788 13 is_stmt 1 view .LVU4738 5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13514 .loc 1 5788 33 is_stmt 0 view .LVU4739 13515 01e4 2223 movs r3, #34 13516 .LVL997: ARM GAS /tmp/ccN54YTb.s page 449 5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13517 .loc 1 5788 33 view .LVU4740 13518 01e6 2363 str r3, [r4, #48] 13519 01e8 F7E7 b .L850 13520 .LVL998: 13521 .L837: 5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13522 .loc 1 5803 7 is_stmt 1 view .LVU4741 13523 01ea 2368 ldr r3, [r4] 13524 01ec 1022 movs r2, #16 13525 .LVL999: 5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13526 .loc 1 5803 7 is_stmt 0 view .LVU4742 13527 01ee DA61 str r2, [r3, #28] 13528 01f0 05E0 b .L834 13529 .LVL1000: 13530 .L835: 5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13531 .loc 1 5806 8 is_stmt 1 view .LVU4743 5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13532 .loc 1 5806 11 is_stmt 0 view .LVU4744 13533 01f2 11F0080F tst r1, #8 13534 01f6 02D0 beq .L834 5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13535 .loc 1 5806 62 discriminator 1 view .LVU4745 13536 01f8 12F0080F tst r2, #8 13537 01fc 03D1 bne .L862 13538 .LVL1001: 13539 .L834: 5814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13540 .loc 1 5814 3 is_stmt 1 view .LVU4746 5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13541 .loc 1 5817 3 view .LVU4747 5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13542 .loc 1 5817 3 view .LVU4748 13543 01fe 0020 movs r0, #0 13544 0200 84F84000 strb r0, [r4, #64] 5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13545 .loc 1 5817 3 view .LVU4749 5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13546 .loc 1 5819 3 view .LVU4750 13547 .L832: 5820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13548 .loc 1 5820 1 is_stmt 0 view .LVU4751 13549 0204 70BD pop {r4, r5, r6, pc} 13550 .LVL1002: 13551 .L862: 5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13552 .loc 1 5809 5 is_stmt 1 view .LVU4752 13553 0206 2046 mov r0, r4 13554 .LVL1003: 5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13555 .loc 1 5809 5 is_stmt 0 view .LVU4753 13556 0208 FFF7FEFF bl I2C_ITAddrCplt 13557 .LVL1004: 5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13558 .loc 1 5809 5 view .LVU4754 ARM GAS /tmp/ccN54YTb.s page 450 13559 020c F7E7 b .L834 13560 .LVL1005: 13561 .L854: 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13562 .loc 1 5698 3 discriminator 1 view .LVU4755 13563 020e 0220 movs r0, #2 13564 .LVL1006: 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13565 .loc 1 5698 3 discriminator 1 view .LVU4756 13566 0210 F8E7 b .L832 13567 .L864: 13568 0212 00BF .align 2 13569 .L863: 13570 0214 10000240 .word 1073872912 13571 0218 28000240 .word 1073872936 13572 .cfi_endproc 13573 .LFE389: 13575 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 13576 .align 1 13577 .syntax unified 13578 .thumb 13579 .thumb_func 13581 I2C_Master_ISR_DMA: 13582 .LVL1007: 13583 .LFB387: 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 13584 .loc 1 5404 1 is_stmt 1 view -0 13585 .cfi_startproc 13586 @ args = 0, pretend = 0, frame = 0 13587 @ frame_needed = 0, uses_anonymous_args = 0 5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 13588 .loc 1 5405 3 view .LVU4758 5406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13589 .loc 1 5406 3 view .LVU4759 5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13590 .loc 1 5409 3 view .LVU4760 5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13591 .loc 1 5409 3 view .LVU4761 13592 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13593 0004 012B cmp r3, #1 13594 0006 00F09980 beq .L878 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 13595 .loc 1 5404 1 is_stmt 0 view .LVU4762 13596 000a 10B5 push {r4, lr} 13597 .cfi_def_cfa_offset 8 13598 .cfi_offset 4, -8 13599 .cfi_offset 14, -4 13600 000c 82B0 sub sp, sp, #8 13601 .cfi_def_cfa_offset 16 13602 000e 0446 mov r4, r0 5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13603 .loc 1 5409 3 is_stmt 1 discriminator 2 view .LVU4763 13604 0010 0123 movs r3, #1 13605 0012 80F84030 strb r3, [r0, #64] 5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13606 .loc 1 5409 3 view .LVU4764 5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) ARM GAS /tmp/ccN54YTb.s page 451 13607 .loc 1 5411 3 view .LVU4765 5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13608 .loc 1 5411 6 is_stmt 0 view .LVU4766 13609 0016 11F0100F tst r1, #16 13610 001a 02D0 beq .L867 5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13611 .loc 1 5411 55 discriminator 1 view .LVU4767 13612 001c 12F0100F tst r2, #16 13613 0020 31D1 bne .L884 13614 .L867: 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13615 .loc 1 5428 8 is_stmt 1 view .LVU4768 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13616 .loc 1 5428 11 is_stmt 0 view .LVU4769 13617 0022 11F0800F tst r1, #128 13618 0026 5FD0 beq .L869 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13619 .loc 1 5428 61 discriminator 1 view .LVU4770 13620 0028 12F0400F tst r2, #64 13621 002c 5CD0 beq .L869 5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13622 .loc 1 5432 5 is_stmt 1 view .LVU4771 13623 002e 2268 ldr r2, [r4] 13624 .LVL1008: 5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13625 .loc 1 5432 5 is_stmt 0 view .LVU4772 13626 0030 1368 ldr r3, [r2] 13627 0032 23F04003 bic r3, r3, #64 13628 0036 1360 str r3, [r2] 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13629 .loc 1 5434 5 is_stmt 1 view .LVU4773 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13630 .loc 1 5434 13 is_stmt 0 view .LVU4774 13631 0038 638D ldrh r3, [r4, #42] 13632 003a 9BB2 uxth r3, r3 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13633 .loc 1 5434 8 view .LVU4775 13634 003c 002B cmp r3, #0 13635 003e 45D0 beq .L870 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13636 .loc 1 5437 7 is_stmt 1 view .LVU4776 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13637 .loc 1 5437 35 is_stmt 0 view .LVU4777 13638 0040 2368 ldr r3, [r4] 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13639 .loc 1 5437 45 view .LVU4778 13640 0042 5968 ldr r1, [r3, #4] 13641 .LVL1009: 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13642 .loc 1 5437 18 view .LVU4779 13643 0044 C1F30901 ubfx r1, r1, #0, #10 13644 .LVL1010: 5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13645 .loc 1 5440 7 is_stmt 1 view .LVU4780 5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13646 .loc 1 5440 15 is_stmt 0 view .LVU4781 13647 0048 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccN54YTb.s page 452 13648 004a 9BB2 uxth r3, r3 5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13649 .loc 1 5440 10 view .LVU4782 13650 004c FF2B cmp r3, #255 13651 004e 2CD9 bls .L871 5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 13652 .loc 1 5442 9 is_stmt 1 view .LVU4783 5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 13653 .loc 1 5442 24 is_stmt 0 view .LVU4784 13654 0050 FF23 movs r3, #255 13655 0052 2385 strh r3, [r4, #40] @ movhi 5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13656 .loc 1 5443 9 is_stmt 1 view .LVU4785 13657 .LVL1011: 5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13658 .loc 1 5443 18 is_stmt 0 view .LVU4786 13659 0054 4FF08073 mov r3, #16777216 13660 .LVL1012: 13661 .L872: 5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13662 .loc 1 5459 7 is_stmt 1 view .LVU4787 13663 0058 0022 movs r2, #0 13664 005a 0092 str r2, [sp] 13665 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 13666 0060 2046 mov r0, r4 13667 .LVL1013: 5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13668 .loc 1 5459 7 is_stmt 0 view .LVU4788 13669 0062 FFF7FEFF bl I2C_TransferConfig 13670 .LVL1014: 5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13671 .loc 1 5462 7 is_stmt 1 view .LVU4789 5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13672 .loc 1 5462 11 is_stmt 0 view .LVU4790 13673 0066 638D ldrh r3, [r4, #42] 13674 0068 9BB2 uxth r3, r3 5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13675 .loc 1 5462 30 view .LVU4791 13676 006a 228D ldrh r2, [r4, #40] 5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13677 .loc 1 5462 23 view .LVU4792 13678 006c 9B1A subs r3, r3, r2 13679 006e 9BB2 uxth r3, r3 13680 0070 6385 strh r3, [r4, #42] @ movhi 5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13681 .loc 1 5465 7 is_stmt 1 view .LVU4793 5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13682 .loc 1 5465 15 is_stmt 0 view .LVU4794 13683 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13684 .loc 1 5465 10 view .LVU4795 13685 0076 222B cmp r3, #34 13686 0078 22D0 beq .L885 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13687 .loc 1 5471 9 is_stmt 1 view .LVU4796 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13688 .loc 1 5471 13 is_stmt 0 view .LVU4797 ARM GAS /tmp/ccN54YTb.s page 453 13689 007a 2268 ldr r2, [r4] 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13690 .loc 1 5471 23 view .LVU4798 13691 007c 1368 ldr r3, [r2] 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13692 .loc 1 5471 29 view .LVU4799 13693 007e 43F48043 orr r3, r3, #16384 13694 0082 1360 str r3, [r2] 13695 0084 0CE0 b .L868 13696 .LVL1015: 13697 .L884: 5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13698 .loc 1 5415 5 is_stmt 1 view .LVU4800 13699 0086 0368 ldr r3, [r0] 13700 0088 1022 movs r2, #16 13701 .LVL1016: 5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13702 .loc 1 5415 5 is_stmt 0 view .LVU4801 13703 008a DA61 str r2, [r3, #28] 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13704 .loc 1 5418 5 is_stmt 1 view .LVU4802 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13705 .loc 1 5418 9 is_stmt 0 view .LVU4803 13706 008c 436C ldr r3, [r0, #68] 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13707 .loc 1 5418 21 view .LVU4804 13708 008e 43F00403 orr r3, r3, #4 13709 0092 4364 str r3, [r0, #68] 5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13710 .loc 1 5423 5 is_stmt 1 view .LVU4805 13711 0094 2021 movs r1, #32 13712 .LVL1017: 5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13713 .loc 1 5423 5 is_stmt 0 view .LVU4806 13714 0096 FFF7FEFF bl I2C_Enable_IRQ 13715 .LVL1018: 5426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13716 .loc 1 5426 5 is_stmt 1 view .LVU4807 13717 009a 2046 mov r0, r4 13718 009c FFF7FEFF bl I2C_Flush_TXDR 13719 .LVL1019: 13720 .L868: 5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13721 .loc 1 5526 3 view .LVU4808 5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13722 .loc 1 5529 3 view .LVU4809 5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13723 .loc 1 5529 3 view .LVU4810 13724 00a0 0020 movs r0, #0 13725 00a2 84F84000 strb r0, [r4, #64] 5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13726 .loc 1 5529 3 view .LVU4811 5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13727 .loc 1 5531 3 view .LVU4812 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13728 .loc 1 5532 1 is_stmt 0 view .LVU4813 13729 00a6 02B0 add sp, sp, #8 ARM GAS /tmp/ccN54YTb.s page 454 13730 .cfi_remember_state 13731 .cfi_def_cfa_offset 8 13732 @ sp needed 13733 00a8 10BD pop {r4, pc} 13734 .LVL1020: 13735 .L871: 13736 .cfi_restore_state 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13737 .loc 1 5447 9 is_stmt 1 view .LVU4814 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13738 .loc 1 5447 30 is_stmt 0 view .LVU4815 13739 00aa 638D ldrh r3, [r4, #42] 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13740 .loc 1 5447 24 view .LVU4816 13741 00ac 2385 strh r3, [r4, #40] @ movhi 5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13742 .loc 1 5448 9 is_stmt 1 view .LVU4817 5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13743 .loc 1 5448 17 is_stmt 0 view .LVU4818 13744 00ae E36A ldr r3, [r4, #44] 5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13745 .loc 1 5448 12 view .LVU4819 13746 00b0 13F5803F cmn r3, #65536 13747 00b4 01D0 beq .L879 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13748 .loc 1 5450 11 is_stmt 1 view .LVU4820 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13749 .loc 1 5450 20 is_stmt 0 view .LVU4821 13750 00b6 E36A ldr r3, [r4, #44] 13751 .LVL1021: 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13752 .loc 1 5450 20 view .LVU4822 13753 00b8 CEE7 b .L872 13754 .LVL1022: 13755 .L879: 5454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13756 .loc 1 5454 20 view .LVU4823 13757 00ba 4FF00073 mov r3, #33554432 13758 00be CBE7 b .L872 13759 .LVL1023: 13760 .L885: 5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13761 .loc 1 5467 9 is_stmt 1 view .LVU4824 5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13762 .loc 1 5467 13 is_stmt 0 view .LVU4825 13763 00c0 2268 ldr r2, [r4] 5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13764 .loc 1 5467 23 view .LVU4826 13765 00c2 1368 ldr r3, [r2] 5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13766 .loc 1 5467 29 view .LVU4827 13767 00c4 43F40043 orr r3, r3, #32768 13768 00c8 1360 str r3, [r2] 13769 00ca E9E7 b .L868 13770 .LVL1024: 13771 .L870: 5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 455 13772 .loc 1 5477 7 is_stmt 1 view .LVU4828 5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13773 .loc 1 5477 11 is_stmt 0 view .LVU4829 13774 00cc 2368 ldr r3, [r4] 13775 00ce 5B68 ldr r3, [r3, #4] 5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13776 .loc 1 5477 10 view .LVU4830 13777 00d0 13F0007F tst r3, #33554432 13778 00d4 03D1 bne .L874 5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13779 .loc 1 5480 9 is_stmt 1 view .LVU4831 13780 00d6 2046 mov r0, r4 13781 .LVL1025: 5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13782 .loc 1 5480 9 is_stmt 0 view .LVU4832 13783 00d8 FFF7FEFF bl I2C_ITMasterSeqCplt 13784 .LVL1026: 5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13785 .loc 1 5480 9 view .LVU4833 13786 00dc E0E7 b .L868 13787 .LVL1027: 13788 .L874: 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13789 .loc 1 5486 9 is_stmt 1 view .LVU4834 13790 00de 4021 movs r1, #64 13791 .LVL1028: 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13792 .loc 1 5486 9 is_stmt 0 view .LVU4835 13793 00e0 2046 mov r0, r4 13794 .LVL1029: 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13795 .loc 1 5486 9 view .LVU4836 13796 00e2 FFF7FEFF bl I2C_ITError 13797 .LVL1030: 13798 00e6 DBE7 b .L868 13799 .LVL1031: 13800 .L869: 5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13801 .loc 1 5490 8 is_stmt 1 view .LVU4837 5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13802 .loc 1 5490 11 is_stmt 0 view .LVU4838 13803 00e8 11F0400F tst r1, #64 13804 00ec 1CD0 beq .L875 5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13805 .loc 1 5490 60 discriminator 1 view .LVU4839 13806 00ee 12F0400F tst r2, #64 13807 00f2 19D0 beq .L875 5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13808 .loc 1 5493 5 is_stmt 1 view .LVU4840 5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13809 .loc 1 5493 13 is_stmt 0 view .LVU4841 13810 00f4 638D ldrh r3, [r4, #42] 13811 00f6 9BB2 uxth r3, r3 5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13812 .loc 1 5493 8 view .LVU4842 13813 00f8 8BB9 cbnz r3, .L876 5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccN54YTb.s page 456 13814 .loc 1 5495 7 is_stmt 1 view .LVU4843 5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13815 .loc 1 5495 11 is_stmt 0 view .LVU4844 13816 00fa 2368 ldr r3, [r4] 13817 00fc 5A68 ldr r2, [r3, #4] 13818 .LVL1032: 5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13819 .loc 1 5495 10 view .LVU4845 13820 00fe 12F0007F tst r2, #33554432 13821 0102 CDD1 bne .L868 5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13822 .loc 1 5498 9 is_stmt 1 view .LVU4846 5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13823 .loc 1 5498 17 is_stmt 0 view .LVU4847 13824 0104 E26A ldr r2, [r4, #44] 5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13825 .loc 1 5498 12 view .LVU4848 13826 0106 12F5803F cmn r2, #65536 13827 010a 04D1 bne .L877 5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13828 .loc 1 5501 11 is_stmt 1 view .LVU4849 5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13829 .loc 1 5501 25 is_stmt 0 view .LVU4850 13830 010c 5A68 ldr r2, [r3, #4] 5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13831 .loc 1 5501 31 view .LVU4851 13832 010e 42F48042 orr r2, r2, #16384 13833 0112 5A60 str r2, [r3, #4] 13834 0114 C4E7 b .L868 13835 .L877: 5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13836 .loc 1 5506 11 is_stmt 1 view .LVU4852 13837 0116 2046 mov r0, r4 13838 .LVL1033: 5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13839 .loc 1 5506 11 is_stmt 0 view .LVU4853 13840 0118 FFF7FEFF bl I2C_ITMasterSeqCplt 13841 .LVL1034: 5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13842 .loc 1 5506 11 view .LVU4854 13843 011c C0E7 b .L868 13844 .LVL1035: 13845 .L876: 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13846 .loc 1 5514 7 is_stmt 1 view .LVU4855 13847 011e 4021 movs r1, #64 13848 .LVL1036: 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13849 .loc 1 5514 7 is_stmt 0 view .LVU4856 13850 0120 2046 mov r0, r4 13851 .LVL1037: 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13852 .loc 1 5514 7 view .LVU4857 13853 0122 FFF7FEFF bl I2C_ITError 13854 .LVL1038: 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13855 .loc 1 5514 7 view .LVU4858 ARM GAS /tmp/ccN54YTb.s page 457 13856 0126 BBE7 b .L868 13857 .LVL1039: 13858 .L875: 5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13859 .loc 1 5517 8 is_stmt 1 view .LVU4859 5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13860 .loc 1 5517 11 is_stmt 0 view .LVU4860 13861 0128 11F0200F tst r1, #32 13862 012c B8D0 beq .L868 5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13863 .loc 1 5517 63 discriminator 1 view .LVU4861 13864 012e 12F0200F tst r2, #32 13865 0132 B5D0 beq .L868 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13866 .loc 1 5521 5 is_stmt 1 view .LVU4862 13867 0134 2046 mov r0, r4 13868 .LVL1040: 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13869 .loc 1 5521 5 is_stmt 0 view .LVU4863 13870 0136 FFF7FEFF bl I2C_ITMasterCplt 13871 .LVL1041: 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13872 .loc 1 5521 5 view .LVU4864 13873 013a B1E7 b .L868 13874 .LVL1042: 13875 .L878: 13876 .cfi_def_cfa_offset 0 13877 .cfi_restore 4 13878 .cfi_restore 14 5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13879 .loc 1 5409 3 discriminator 1 view .LVU4865 13880 013c 0220 movs r0, #2 13881 .LVL1043: 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13882 .loc 1 5532 1 view .LVU4866 13883 013e 7047 bx lr 13884 .cfi_endproc 13885 .LFE387: 13887 .section .text.I2C_DMAError,"ax",%progbits 13888 .align 1 13889 .syntax unified 13890 .thumb 13891 .thumb_func 13893 I2C_DMAError: 13894 .LVL1044: 13895 .LFB405: 6921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 13896 .loc 1 6921 1 is_stmt 1 view -0 13897 .cfi_startproc 13898 @ args = 0, pretend = 0, frame = 0 13899 @ frame_needed = 0, uses_anonymous_args = 0 6921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 13900 .loc 1 6921 1 is_stmt 0 view .LVU4868 13901 0000 38B5 push {r3, r4, r5, lr} 13902 .cfi_def_cfa_offset 16 13903 .cfi_offset 3, -16 13904 .cfi_offset 4, -12 ARM GAS /tmp/ccN54YTb.s page 458 13905 .cfi_offset 5, -8 13906 .cfi_offset 14, -4 6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13907 .loc 1 6922 3 is_stmt 1 view .LVU4869 13908 .LVL1045: 6924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13909 .loc 1 6924 3 view .LVU4870 6924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13910 .loc 1 6924 22 is_stmt 0 view .LVU4871 13911 0002 846B ldr r4, [r0, #56] 13912 .LVL1046: 6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13913 .loc 1 6926 3 is_stmt 1 view .LVU4872 6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13914 .loc 1 6926 11 is_stmt 0 view .LVU4873 13915 0004 A36B ldr r3, [r4, #56] 6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13916 .loc 1 6926 6 view .LVU4874 13917 0006 002B cmp r3, #0 13918 0008 77D0 beq .L896 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13919 .loc 1 6928 5 is_stmt 1 view .LVU4875 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13920 .loc 1 6928 9 is_stmt 0 view .LVU4876 13921 000a 1B68 ldr r3, [r3] 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13922 .loc 1 6928 47 view .LVU4877 13923 000c 4849 ldr r1, .L901 13924 000e 494A ldr r2, .L901+4 13925 0010 9342 cmp r3, r2 13926 0012 18BF it ne 13927 0014 8B42 cmpne r3, r1 13928 0016 2FD0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13929 .loc 1 6928 9 discriminator 2 view .LVU4878 13930 0018 1832 adds r2, r2, #24 13931 001a 9342 cmp r3, r2 13932 001c 2CD0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13933 .loc 1 6928 9 discriminator 4 view .LVU4879 13934 001e 1832 adds r2, r2, #24 13935 0020 9342 cmp r3, r2 13936 0022 29D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13937 .loc 1 6928 9 discriminator 6 view .LVU4880 13938 0024 1832 adds r2, r2, #24 13939 0026 9342 cmp r3, r2 13940 0028 26D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13941 .loc 1 6928 9 discriminator 8 view .LVU4881 13942 002a 1832 adds r2, r2, #24 13943 002c 9342 cmp r3, r2 13944 002e 23D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13945 .loc 1 6928 9 discriminator 10 view .LVU4882 13946 0030 1832 adds r2, r2, #24 13947 0032 9342 cmp r3, r2 ARM GAS /tmp/ccN54YTb.s page 459 13948 0034 20D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13949 .loc 1 6928 9 discriminator 12 view .LVU4883 13950 0036 1832 adds r2, r2, #24 13951 0038 9342 cmp r3, r2 13952 003a 1DD0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13953 .loc 1 6928 9 discriminator 14 view .LVU4884 13954 003c 02F55672 add r2, r2, #856 13955 0040 9342 cmp r3, r2 13956 0042 19D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13957 .loc 1 6928 9 discriminator 16 view .LVU4885 13958 0044 1832 adds r2, r2, #24 13959 0046 9342 cmp r3, r2 13960 0048 16D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13961 .loc 1 6928 9 discriminator 18 view .LVU4886 13962 004a 1832 adds r2, r2, #24 13963 004c 9342 cmp r3, r2 13964 004e 13D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13965 .loc 1 6928 9 discriminator 20 view .LVU4887 13966 0050 1832 adds r2, r2, #24 13967 0052 9342 cmp r3, r2 13968 0054 10D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13969 .loc 1 6928 9 discriminator 22 view .LVU4888 13970 0056 1832 adds r2, r2, #24 13971 0058 9342 cmp r3, r2 13972 005a 0DD0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13973 .loc 1 6928 9 discriminator 24 view .LVU4889 13974 005c 1832 adds r2, r2, #24 13975 005e 9342 cmp r3, r2 13976 0060 0AD0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13977 .loc 1 6928 9 discriminator 26 view .LVU4890 13978 0062 1832 adds r2, r2, #24 13979 0064 9342 cmp r3, r2 13980 0066 07D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13981 .loc 1 6928 9 discriminator 28 view .LVU4891 13982 0068 1832 adds r2, r2, #24 13983 006a 9342 cmp r3, r2 13984 006c 04D0 beq .L888 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13985 .loc 1 6928 9 discriminator 30 view .LVU4892 13986 006e 5B68 ldr r3, [r3, #4] 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13987 .loc 1 6928 47 discriminator 30 view .LVU4893 13988 0070 B3FA83F3 clz r3, r3 13989 0074 5B09 lsrs r3, r3, #5 13990 0076 03E0 b .L890 13991 .L888: 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13992 .loc 1 6928 9 discriminator 29 view .LVU4894 ARM GAS /tmp/ccN54YTb.s page 460 13993 0078 5B68 ldr r3, [r3, #4] 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13994 .loc 1 6928 47 discriminator 29 view .LVU4895 13995 007a B3FA83F3 clz r3, r3 13996 007e 5B09 lsrs r3, r3, #5 13997 .L890: 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13998 .loc 1 6928 8 discriminator 32 view .LVU4896 13999 0080 002B cmp r3, #0 14000 0082 3CD1 bne .L897 6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14001 .loc 1 6922 12 view .LVU4897 14002 0084 0025 movs r5, #0 14003 .L887: 14004 .LVL1047: 6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14005 .loc 1 6934 3 is_stmt 1 view .LVU4898 6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14006 .loc 1 6934 11 is_stmt 0 view .LVU4899 14007 0086 E36B ldr r3, [r4, #60] 6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14008 .loc 1 6934 6 view .LVU4900 14009 0088 002B cmp r3, #0 14010 008a 40D0 beq .L891 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14011 .loc 1 6936 5 is_stmt 1 view .LVU4901 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14012 .loc 1 6936 9 is_stmt 0 view .LVU4902 14013 008c 1B68 ldr r3, [r3] 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14014 .loc 1 6936 47 view .LVU4903 14015 008e 2849 ldr r1, .L901 14016 0090 284A ldr r2, .L901+4 14017 0092 9342 cmp r3, r2 14018 0094 18BF it ne 14019 0096 8B42 cmpne r3, r1 14020 0098 33D0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14021 .loc 1 6936 9 discriminator 2 view .LVU4904 14022 009a 1832 adds r2, r2, #24 14023 009c 9342 cmp r3, r2 14024 009e 30D0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14025 .loc 1 6936 9 discriminator 4 view .LVU4905 14026 00a0 1832 adds r2, r2, #24 14027 00a2 9342 cmp r3, r2 14028 00a4 2DD0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14029 .loc 1 6936 9 discriminator 6 view .LVU4906 14030 00a6 1832 adds r2, r2, #24 14031 00a8 9342 cmp r3, r2 14032 00aa 2AD0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14033 .loc 1 6936 9 discriminator 8 view .LVU4907 14034 00ac 1832 adds r2, r2, #24 14035 00ae 9342 cmp r3, r2 14036 00b0 27D0 beq .L892 ARM GAS /tmp/ccN54YTb.s page 461 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14037 .loc 1 6936 9 discriminator 10 view .LVU4908 14038 00b2 1832 adds r2, r2, #24 14039 00b4 9342 cmp r3, r2 14040 00b6 24D0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14041 .loc 1 6936 9 discriminator 12 view .LVU4909 14042 00b8 1832 adds r2, r2, #24 14043 00ba 9342 cmp r3, r2 14044 00bc 21D0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14045 .loc 1 6936 9 discriminator 14 view .LVU4910 14046 00be 02F55672 add r2, r2, #856 14047 00c2 9342 cmp r3, r2 14048 00c4 1DD0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14049 .loc 1 6936 9 discriminator 16 view .LVU4911 14050 00c6 1832 adds r2, r2, #24 14051 00c8 9342 cmp r3, r2 14052 00ca 1AD0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14053 .loc 1 6936 9 discriminator 18 view .LVU4912 14054 00cc 1832 adds r2, r2, #24 14055 00ce 9342 cmp r3, r2 14056 00d0 17D0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14057 .loc 1 6936 9 discriminator 20 view .LVU4913 14058 00d2 1832 adds r2, r2, #24 14059 00d4 9342 cmp r3, r2 14060 00d6 14D0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14061 .loc 1 6936 9 discriminator 22 view .LVU4914 14062 00d8 1832 adds r2, r2, #24 14063 00da 9342 cmp r3, r2 14064 00dc 11D0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14065 .loc 1 6936 9 discriminator 24 view .LVU4915 14066 00de 1832 adds r2, r2, #24 14067 00e0 9342 cmp r3, r2 14068 00e2 0ED0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14069 .loc 1 6936 9 discriminator 26 view .LVU4916 14070 00e4 1832 adds r2, r2, #24 14071 00e6 9342 cmp r3, r2 14072 00e8 0BD0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14073 .loc 1 6936 9 discriminator 28 view .LVU4917 14074 00ea 1832 adds r2, r2, #24 14075 00ec 9342 cmp r3, r2 14076 00ee 08D0 beq .L892 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14077 .loc 1 6936 9 discriminator 30 view .LVU4918 14078 00f0 5B68 ldr r3, [r3, #4] 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14079 .loc 1 6936 47 discriminator 30 view .LVU4919 14080 00f2 B3FA83F3 clz r3, r3 14081 00f6 5B09 lsrs r3, r3, #5 ARM GAS /tmp/ccN54YTb.s page 462 14082 00f8 07E0 b .L894 14083 .LVL1048: 14084 .L896: 6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14085 .loc 1 6922 12 view .LVU4920 14086 00fa 0025 movs r5, #0 14087 00fc C3E7 b .L887 14088 .L897: 6930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14089 .loc 1 6930 21 view .LVU4921 14090 00fe 0125 movs r5, #1 14091 0100 C1E7 b .L887 14092 .LVL1049: 14093 .L892: 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14094 .loc 1 6936 9 discriminator 29 view .LVU4922 14095 0102 5B68 ldr r3, [r3, #4] 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14096 .loc 1 6936 47 discriminator 29 view .LVU4923 14097 0104 B3FA83F3 clz r3, r3 14098 0108 5B09 lsrs r3, r3, #5 14099 .L894: 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14100 .loc 1 6936 8 discriminator 32 view .LVU4924 14101 010a 03B1 cbz r3, .L891 6938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14102 .loc 1 6938 21 view .LVU4925 14103 010c 0125 movs r5, #1 14104 .LVL1050: 14105 .L891: 6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14106 .loc 1 6943 3 is_stmt 1 view .LVU4926 6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14107 .loc 1 6943 10 is_stmt 0 view .LVU4927 14108 010e FFF7FEFF bl HAL_DMA_GetError 14109 .LVL1051: 6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14110 .loc 1 6943 6 discriminator 1 view .LVU4928 14111 0112 0228 cmp r0, #2 14112 0114 00D0 beq .L886 6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14113 .loc 1 6943 55 discriminator 1 view .LVU4929 14114 0116 05B9 cbnz r5, .L900 14115 .L886: 6951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14116 .loc 1 6951 1 view .LVU4930 14117 0118 38BD pop {r3, r4, r5, pc} 14118 .LVL1052: 14119 .L900: 6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14120 .loc 1 6946 5 is_stmt 1 view .LVU4931 6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14121 .loc 1 6946 9 is_stmt 0 view .LVU4932 14122 011a 2268 ldr r2, [r4] 6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14123 .loc 1 6946 19 view .LVU4933 14124 011c 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccN54YTb.s page 463 6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14125 .loc 1 6946 25 view .LVU4934 14126 011e 43F40043 orr r3, r3, #32768 14127 0122 5360 str r3, [r2, #4] 6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14128 .loc 1 6949 5 is_stmt 1 view .LVU4935 14129 0124 1021 movs r1, #16 14130 0126 2046 mov r0, r4 14131 0128 FFF7FEFF bl I2C_ITError 14132 .LVL1053: 6951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14133 .loc 1 6951 1 is_stmt 0 view .LVU4936 14134 012c F4E7 b .L886 14135 .L902: 14136 012e 00BF .align 2 14137 .L901: 14138 0130 10000240 .word 1073872912 14139 0134 28000240 .word 1073872936 14140 .cfi_endproc 14141 .LFE405: 14143 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 14144 .align 1 14145 .syntax unified 14146 .thumb 14147 .thumb_func 14149 I2C_DMAMasterTransmitCplt: 14150 .LVL1054: 14151 .LFB401: 6761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14152 .loc 1 6761 1 is_stmt 1 view -0 14153 .cfi_startproc 14154 @ args = 0, pretend = 0, frame = 0 14155 @ frame_needed = 0, uses_anonymous_args = 0 6761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14156 .loc 1 6761 1 is_stmt 0 view .LVU4938 14157 0000 10B5 push {r4, lr} 14158 .cfi_def_cfa_offset 8 14159 .cfi_offset 4, -8 14160 .cfi_offset 14, -4 6763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14161 .loc 1 6763 3 is_stmt 1 view .LVU4939 6763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14162 .loc 1 6763 22 is_stmt 0 view .LVU4940 14163 0002 846B ldr r4, [r0, #56] 14164 .LVL1055: 6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14165 .loc 1 6766 3 is_stmt 1 view .LVU4941 6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14166 .loc 1 6766 7 is_stmt 0 view .LVU4942 14167 0004 2268 ldr r2, [r4] 6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14168 .loc 1 6766 17 view .LVU4943 14169 0006 1368 ldr r3, [r2] 6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14170 .loc 1 6766 23 view .LVU4944 14171 0008 23F48043 bic r3, r3, #16384 14172 000c 1360 str r3, [r2] ARM GAS /tmp/ccN54YTb.s page 464 6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14173 .loc 1 6769 3 is_stmt 1 view .LVU4945 6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14174 .loc 1 6769 11 is_stmt 0 view .LVU4946 14175 000e 638D ldrh r3, [r4, #42] 14176 0010 9BB2 uxth r3, r3 6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14177 .loc 1 6769 6 view .LVU4947 14178 0012 ABB1 cbz r3, .L910 6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14179 .loc 1 6778 5 is_stmt 1 view .LVU4948 6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14180 .loc 1 6778 9 is_stmt 0 view .LVU4949 14181 0014 616A ldr r1, [r4, #36] 6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14182 .loc 1 6778 27 view .LVU4950 14183 0016 238D ldrh r3, [r4, #40] 6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14184 .loc 1 6778 20 view .LVU4951 14185 0018 1944 add r1, r1, r3 14186 001a 6162 str r1, [r4, #36] 6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14187 .loc 1 6781 5 is_stmt 1 view .LVU4952 6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14188 .loc 1 6781 13 is_stmt 0 view .LVU4953 14189 001c 638D ldrh r3, [r4, #42] 14190 001e 9BB2 uxth r3, r3 6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14191 .loc 1 6781 8 view .LVU4954 14192 0020 FF2B cmp r3, #255 14193 0022 12D9 bls .L906 6783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14194 .loc 1 6783 7 is_stmt 1 view .LVU4955 6783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14195 .loc 1 6783 22 is_stmt 0 view .LVU4956 14196 0024 FF23 movs r3, #255 14197 0026 2385 strh r3, [r4, #40] @ movhi 14198 .L907: 6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14199 .loc 1 6791 5 is_stmt 1 view .LVU4957 6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14200 .loc 1 6791 81 is_stmt 0 view .LVU4958 14201 0028 2268 ldr r2, [r4] 6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14202 .loc 1 6791 9 view .LVU4959 14203 002a 238D ldrh r3, [r4, #40] 14204 002c 2832 adds r2, r2, #40 14205 002e A06B ldr r0, [r4, #56] 14206 .LVL1056: 6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14207 .loc 1 6791 9 view .LVU4960 14208 0030 FFF7FEFF bl HAL_DMA_Start_IT 14209 .LVL1057: 6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14210 .loc 1 6791 8 discriminator 1 view .LVU4961 14211 0034 60B1 cbz r0, .L908 6795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 465 14212 .loc 1 6795 7 is_stmt 1 view .LVU4962 14213 0036 1021 movs r1, #16 14214 0038 2046 mov r0, r4 14215 003a FFF7FEFF bl I2C_ITError 14216 .LVL1058: 14217 .L903: 6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14218 .loc 1 6803 1 is_stmt 0 view .LVU4963 14219 003e 10BD pop {r4, pc} 14220 .LVL1059: 14221 .L910: 6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14222 .loc 1 6772 5 is_stmt 1 view .LVU4964 14223 0040 2021 movs r1, #32 14224 0042 2046 mov r0, r4 14225 .LVL1060: 6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14226 .loc 1 6772 5 is_stmt 0 view .LVU4965 14227 0044 FFF7FEFF bl I2C_Enable_IRQ 14228 .LVL1061: 14229 0048 F9E7 b .L903 14230 .LVL1062: 14231 .L906: 6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14232 .loc 1 6787 7 is_stmt 1 view .LVU4966 6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14233 .loc 1 6787 28 is_stmt 0 view .LVU4967 14234 004a 638D ldrh r3, [r4, #42] 6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14235 .loc 1 6787 22 view .LVU4968 14236 004c 2385 strh r3, [r4, #40] @ movhi 14237 004e EBE7 b .L907 14238 .LVL1063: 14239 .L908: 6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14240 .loc 1 6800 7 is_stmt 1 view .LVU4969 14241 0050 4021 movs r1, #64 14242 0052 2046 mov r0, r4 14243 0054 FFF7FEFF bl I2C_Enable_IRQ 14244 .LVL1064: 6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14245 .loc 1 6803 1 is_stmt 0 view .LVU4970 14246 0058 F1E7 b .L903 14247 .cfi_endproc 14248 .LFE401: 14250 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 14251 .align 1 14252 .syntax unified 14253 .thumb 14254 .thumb_func 14256 I2C_DMAMasterReceiveCplt: 14257 .LVL1065: 14258 .LFB403: 6841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14259 .loc 1 6841 1 is_stmt 1 view -0 14260 .cfi_startproc 14261 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccN54YTb.s page 466 14262 @ frame_needed = 0, uses_anonymous_args = 0 6841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14263 .loc 1 6841 1 is_stmt 0 view .LVU4972 14264 0000 10B5 push {r4, lr} 14265 .cfi_def_cfa_offset 8 14266 .cfi_offset 4, -8 14267 .cfi_offset 14, -4 6843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14268 .loc 1 6843 3 is_stmt 1 view .LVU4973 6843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14269 .loc 1 6843 22 is_stmt 0 view .LVU4974 14270 0002 846B ldr r4, [r0, #56] 14271 .LVL1066: 6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14272 .loc 1 6846 3 is_stmt 1 view .LVU4975 6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14273 .loc 1 6846 7 is_stmt 0 view .LVU4976 14274 0004 2268 ldr r2, [r4] 6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14275 .loc 1 6846 17 view .LVU4977 14276 0006 1368 ldr r3, [r2] 6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14277 .loc 1 6846 23 view .LVU4978 14278 0008 23F40043 bic r3, r3, #32768 14279 000c 1360 str r3, [r2] 6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14280 .loc 1 6849 3 is_stmt 1 view .LVU4979 6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14281 .loc 1 6849 11 is_stmt 0 view .LVU4980 14282 000e 638D ldrh r3, [r4, #42] 14283 0010 9BB2 uxth r3, r3 6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14284 .loc 1 6849 6 view .LVU4981 14285 0012 ABB1 cbz r3, .L918 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14286 .loc 1 6858 5 is_stmt 1 view .LVU4982 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14287 .loc 1 6858 9 is_stmt 0 view .LVU4983 14288 0014 626A ldr r2, [r4, #36] 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14289 .loc 1 6858 27 view .LVU4984 14290 0016 238D ldrh r3, [r4, #40] 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14291 .loc 1 6858 20 view .LVU4985 14292 0018 1A44 add r2, r2, r3 14293 001a 6262 str r2, [r4, #36] 6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14294 .loc 1 6861 5 is_stmt 1 view .LVU4986 6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14295 .loc 1 6861 13 is_stmt 0 view .LVU4987 14296 001c 638D ldrh r3, [r4, #42] 14297 001e 9BB2 uxth r3, r3 6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14298 .loc 1 6861 8 view .LVU4988 14299 0020 FF2B cmp r3, #255 14300 0022 12D9 bls .L914 6863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccN54YTb.s page 467 14301 .loc 1 6863 7 is_stmt 1 view .LVU4989 6863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14302 .loc 1 6863 22 is_stmt 0 view .LVU4990 14303 0024 FF23 movs r3, #255 14304 0026 2385 strh r3, [r4, #40] @ movhi 14305 .L915: 6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14306 .loc 1 6871 5 is_stmt 1 view .LVU4991 6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14307 .loc 1 6871 55 is_stmt 0 view .LVU4992 14308 0028 2168 ldr r1, [r4] 6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14309 .loc 1 6871 9 view .LVU4993 14310 002a 238D ldrh r3, [r4, #40] 14311 002c 2431 adds r1, r1, #36 14312 002e E06B ldr r0, [r4, #60] 14313 .LVL1067: 6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14314 .loc 1 6871 9 view .LVU4994 14315 0030 FFF7FEFF bl HAL_DMA_Start_IT 14316 .LVL1068: 6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14317 .loc 1 6871 8 discriminator 1 view .LVU4995 14318 0034 60B1 cbz r0, .L916 6875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14319 .loc 1 6875 7 is_stmt 1 view .LVU4996 14320 0036 1021 movs r1, #16 14321 0038 2046 mov r0, r4 14322 003a FFF7FEFF bl I2C_ITError 14323 .LVL1069: 14324 .L911: 6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14325 .loc 1 6883 1 is_stmt 0 view .LVU4997 14326 003e 10BD pop {r4, pc} 14327 .LVL1070: 14328 .L918: 6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14329 .loc 1 6852 5 is_stmt 1 view .LVU4998 14330 0040 2021 movs r1, #32 14331 0042 2046 mov r0, r4 14332 .LVL1071: 6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14333 .loc 1 6852 5 is_stmt 0 view .LVU4999 14334 0044 FFF7FEFF bl I2C_Enable_IRQ 14335 .LVL1072: 14336 0048 F9E7 b .L911 14337 .LVL1073: 14338 .L914: 6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14339 .loc 1 6867 7 is_stmt 1 view .LVU5000 6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14340 .loc 1 6867 28 is_stmt 0 view .LVU5001 14341 004a 638D ldrh r3, [r4, #42] 6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14342 .loc 1 6867 22 view .LVU5002 14343 004c 2385 strh r3, [r4, #40] @ movhi 14344 004e EBE7 b .L915 ARM GAS /tmp/ccN54YTb.s page 468 14345 .LVL1074: 14346 .L916: 6880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14347 .loc 1 6880 7 is_stmt 1 view .LVU5003 14348 0050 4021 movs r1, #64 14349 0052 2046 mov r0, r4 14350 0054 FFF7FEFF bl I2C_Enable_IRQ 14351 .LVL1075: 6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14352 .loc 1 6883 1 is_stmt 0 view .LVU5004 14353 0058 F1E7 b .L911 14354 .cfi_endproc 14355 .LFE403: 14357 .section .text.I2C_Mem_ISR_IT,"ax",%progbits 14358 .align 1 14359 .syntax unified 14360 .thumb 14361 .thumb_func 14363 I2C_Mem_ISR_IT: 14364 .LVL1076: 14365 .LFB385: 5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14366 .loc 1 5121 1 is_stmt 1 view -0 14367 .cfi_startproc 14368 @ args = 0, pretend = 0, frame = 0 14369 @ frame_needed = 0, uses_anonymous_args = 0 5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14370 .loc 1 5122 3 view .LVU5006 5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14371 .loc 1 5123 3 view .LVU5007 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14372 .loc 1 5126 3 view .LVU5008 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14373 .loc 1 5126 3 view .LVU5009 14374 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 14375 0004 012B cmp r3, #1 14376 0006 00F0C080 beq .L932 5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14377 .loc 1 5121 1 is_stmt 0 view .LVU5010 14378 000a 70B5 push {r4, r5, r6, lr} 14379 .cfi_def_cfa_offset 16 14380 .cfi_offset 4, -16 14381 .cfi_offset 5, -12 14382 .cfi_offset 6, -8 14383 .cfi_offset 14, -4 14384 000c 82B0 sub sp, sp, #8 14385 .cfi_def_cfa_offset 24 14386 000e 0446 mov r4, r0 14387 0010 0D46 mov r5, r1 14388 0012 1646 mov r6, r2 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14389 .loc 1 5126 3 is_stmt 1 discriminator 2 view .LVU5011 14390 0014 0123 movs r3, #1 14391 0016 80F84030 strb r3, [r0, #64] 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14392 .loc 1 5126 3 view .LVU5012 5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) ARM GAS /tmp/ccN54YTb.s page 469 14393 .loc 1 5128 3 view .LVU5013 5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14394 .loc 1 5128 6 is_stmt 0 view .LVU5014 14395 001a 11F0100F tst r1, #16 14396 001e 02D0 beq .L921 5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14397 .loc 1 5128 58 discriminator 1 view .LVU5015 14398 0020 12F0100F tst r2, #16 14399 0024 22D1 bne .L938 14400 .L921: 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14401 .loc 1 5142 8 is_stmt 1 view .LVU5016 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14402 .loc 1 5142 11 is_stmt 0 view .LVU5017 14403 0026 15F0040F tst r5, #4 14404 002a 29D0 beq .L923 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14405 .loc 1 5142 65 discriminator 1 view .LVU5018 14406 002c 16F0040F tst r6, #4 14407 0030 26D0 beq .L923 5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14408 .loc 1 5146 5 is_stmt 1 view .LVU5019 5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14409 .loc 1 5146 16 is_stmt 0 view .LVU5020 14410 0032 25F00405 bic r5, r5, #4 14411 .LVL1077: 5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14412 .loc 1 5149 5 is_stmt 1 view .LVU5021 5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14413 .loc 1 5149 36 is_stmt 0 view .LVU5022 14414 0036 2368 ldr r3, [r4] 5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14415 .loc 1 5149 46 view .LVU5023 14416 0038 5A6A ldr r2, [r3, #36] 14417 .LVL1078: 5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14418 .loc 1 5149 10 view .LVU5024 14419 003a 636A ldr r3, [r4, #36] 5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14420 .loc 1 5149 21 view .LVU5025 14421 003c 1A70 strb r2, [r3] 5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14422 .loc 1 5152 5 is_stmt 1 view .LVU5026 5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14423 .loc 1 5152 9 is_stmt 0 view .LVU5027 14424 003e 636A ldr r3, [r4, #36] 5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14425 .loc 1 5152 19 view .LVU5028 14426 0040 0133 adds r3, r3, #1 14427 0042 6362 str r3, [r4, #36] 5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14428 .loc 1 5154 5 is_stmt 1 view .LVU5029 5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14429 .loc 1 5154 9 is_stmt 0 view .LVU5030 14430 0044 238D ldrh r3, [r4, #40] 5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14431 .loc 1 5154 19 view .LVU5031 ARM GAS /tmp/ccN54YTb.s page 470 14432 0046 013B subs r3, r3, #1 14433 0048 2385 strh r3, [r4, #40] @ movhi 5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14434 .loc 1 5155 5 is_stmt 1 view .LVU5032 5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14435 .loc 1 5155 9 is_stmt 0 view .LVU5033 14436 004a 638D ldrh r3, [r4, #42] 14437 004c 9BB2 uxth r3, r3 5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14438 .loc 1 5155 20 view .LVU5034 14439 004e 013B subs r3, r3, #1 14440 0050 9BB2 uxth r3, r3 14441 0052 6385 strh r3, [r4, #42] @ movhi 14442 .LVL1079: 14443 .L922: 5239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14444 .loc 1 5239 3 is_stmt 1 view .LVU5035 5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14445 .loc 1 5241 3 view .LVU5036 5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14446 .loc 1 5241 6 is_stmt 0 view .LVU5037 14447 0054 15F0200F tst r5, #32 14448 0058 03D0 beq .L931 5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14449 .loc 1 5241 61 discriminator 1 view .LVU5038 14450 005a 16F0200F tst r6, #32 14451 005e 40F08F80 bne .L939 14452 .L931: 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14453 .loc 1 5249 3 is_stmt 1 view .LVU5039 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14454 .loc 1 5249 3 view .LVU5040 14455 0062 0020 movs r0, #0 14456 0064 84F84000 strb r0, [r4, #64] 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14457 .loc 1 5249 3 view .LVU5041 5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14458 .loc 1 5251 3 view .LVU5042 5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14459 .loc 1 5252 1 is_stmt 0 view .LVU5043 14460 0068 02B0 add sp, sp, #8 14461 .cfi_remember_state 14462 .cfi_def_cfa_offset 16 14463 @ sp needed 14464 006a 70BD pop {r4, r5, r6, pc} 14465 .LVL1080: 14466 .L938: 14467 .cfi_restore_state 5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14468 .loc 1 5132 5 is_stmt 1 view .LVU5044 14469 006c 0368 ldr r3, [r0] 14470 006e 1022 movs r2, #16 14471 .LVL1081: 5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14472 .loc 1 5132 5 is_stmt 0 view .LVU5045 14473 0070 DA61 str r2, [r3, #28] 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccN54YTb.s page 471 14474 .loc 1 5137 5 is_stmt 1 view .LVU5046 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14475 .loc 1 5137 9 is_stmt 0 view .LVU5047 14476 0072 436C ldr r3, [r0, #68] 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14477 .loc 1 5137 21 view .LVU5048 14478 0074 43F00403 orr r3, r3, #4 14479 0078 4364 str r3, [r0, #68] 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14480 .loc 1 5140 5 is_stmt 1 view .LVU5049 14481 007a FFF7FEFF bl I2C_Flush_TXDR 14482 .LVL1082: 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14483 .loc 1 5140 5 is_stmt 0 view .LVU5050 14484 007e E9E7 b .L922 14485 .LVL1083: 14486 .L923: 5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14487 .loc 1 5157 8 is_stmt 1 view .LVU5051 5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14488 .loc 1 5157 11 is_stmt 0 view .LVU5052 14489 0080 15F0020F tst r5, #2 14490 0084 1DD0 beq .L924 5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14491 .loc 1 5157 65 discriminator 1 view .LVU5053 14492 0086 16F0020F tst r6, #2 14493 008a 1AD0 beq .L924 5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14494 .loc 1 5160 5 is_stmt 1 view .LVU5054 5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14495 .loc 1 5160 13 is_stmt 0 view .LVU5055 14496 008c 236D ldr r3, [r4, #80] 5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14497 .loc 1 5160 8 view .LVU5056 14498 008e B3F1FF3F cmp r3, #-1 14499 0092 06D0 beq .L940 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14500 .loc 1 5174 7 is_stmt 1 view .LVU5057 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14501 .loc 1 5174 11 is_stmt 0 view .LVU5058 14502 0094 2368 ldr r3, [r4] 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14503 .loc 1 5174 34 view .LVU5059 14504 0096 226D ldr r2, [r4, #80] 14505 .LVL1084: 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14506 .loc 1 5174 28 view .LVU5060 14507 0098 9A62 str r2, [r3, #40] 5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14508 .loc 1 5177 7 is_stmt 1 view .LVU5061 5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14509 .loc 1 5177 24 is_stmt 0 view .LVU5062 14510 009a 4FF0FF33 mov r3, #-1 14511 009e 2365 str r3, [r4, #80] 14512 00a0 D8E7 b .L922 14513 .LVL1085: 14514 .L940: ARM GAS /tmp/ccN54YTb.s page 472 5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14515 .loc 1 5163 7 is_stmt 1 view .LVU5063 5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14516 .loc 1 5163 35 is_stmt 0 view .LVU5064 14517 00a2 626A ldr r2, [r4, #36] 14518 .LVL1086: 5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14519 .loc 1 5163 11 view .LVU5065 14520 00a4 2368 ldr r3, [r4] 5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14521 .loc 1 5163 30 view .LVU5066 14522 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2 5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14523 .loc 1 5163 28 view .LVU5067 14524 00a8 9A62 str r2, [r3, #40] 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14525 .loc 1 5166 7 is_stmt 1 view .LVU5068 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14526 .loc 1 5166 11 is_stmt 0 view .LVU5069 14527 00aa 636A ldr r3, [r4, #36] 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14528 .loc 1 5166 21 view .LVU5070 14529 00ac 0133 adds r3, r3, #1 14530 00ae 6362 str r3, [r4, #36] 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14531 .loc 1 5168 7 is_stmt 1 view .LVU5071 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14532 .loc 1 5168 11 is_stmt 0 view .LVU5072 14533 00b0 238D ldrh r3, [r4, #40] 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14534 .loc 1 5168 21 view .LVU5073 14535 00b2 013B subs r3, r3, #1 14536 00b4 2385 strh r3, [r4, #40] @ movhi 5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14537 .loc 1 5169 7 is_stmt 1 view .LVU5074 5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14538 .loc 1 5169 11 is_stmt 0 view .LVU5075 14539 00b6 638D ldrh r3, [r4, #42] 14540 00b8 9BB2 uxth r3, r3 5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14541 .loc 1 5169 22 view .LVU5076 14542 00ba 013B subs r3, r3, #1 14543 00bc 9BB2 uxth r3, r3 14544 00be 6385 strh r3, [r4, #42] @ movhi 14545 00c0 C8E7 b .L922 14546 .LVL1087: 14547 .L924: 5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14548 .loc 1 5180 8 is_stmt 1 view .LVU5077 5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14549 .loc 1 5180 11 is_stmt 0 view .LVU5078 14550 00c2 15F0800F tst r5, #128 14551 00c6 2AD0 beq .L926 5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14552 .loc 1 5180 64 discriminator 1 view .LVU5079 14553 00c8 16F0400F tst r6, #64 14554 00cc 27D0 beq .L926 ARM GAS /tmp/ccN54YTb.s page 473 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14555 .loc 1 5183 5 is_stmt 1 view .LVU5080 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14556 .loc 1 5183 14 is_stmt 0 view .LVU5081 14557 00ce 638D ldrh r3, [r4, #42] 14558 00d0 9BB2 uxth r3, r3 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14559 .loc 1 5183 8 view .LVU5082 14560 00d2 FBB1 cbz r3, .L927 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14561 .loc 1 5183 41 discriminator 1 view .LVU5083 14562 00d4 238D ldrh r3, [r4, #40] 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14563 .loc 1 5183 33 discriminator 1 view .LVU5084 14564 00d6 EBB9 cbnz r3, .L927 5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14565 .loc 1 5185 7 is_stmt 1 view .LVU5085 5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14566 .loc 1 5185 15 is_stmt 0 view .LVU5086 14567 00d8 638D ldrh r3, [r4, #42] 14568 00da 9BB2 uxth r3, r3 5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14569 .loc 1 5185 10 view .LVU5087 14570 00dc FF2B cmp r3, #255 14571 00de 0BD9 bls .L928 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14572 .loc 1 5187 9 is_stmt 1 view .LVU5088 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14573 .loc 1 5187 24 is_stmt 0 view .LVU5089 14574 00e0 FF22 movs r2, #255 14575 .LVL1088: 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14576 .loc 1 5187 24 view .LVU5090 14577 00e2 2285 strh r2, [r4, #40] @ movhi 5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14578 .loc 1 5188 9 is_stmt 1 view .LVU5091 5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14579 .loc 1 5188 48 is_stmt 0 view .LVU5092 14580 00e4 E16C ldr r1, [r4, #76] 14581 .LVL1089: 5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14582 .loc 1 5188 9 view .LVU5093 14583 00e6 0023 movs r3, #0 14584 00e8 0093 str r3, [sp] 14585 00ea 4FF08073 mov r3, #16777216 14586 00ee 89B2 uxth r1, r1 14587 00f0 2046 mov r0, r4 14588 .LVL1090: 5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14589 .loc 1 5188 9 view .LVU5094 14590 00f2 FFF7FEFF bl I2C_TransferConfig 14591 .LVL1091: 14592 00f6 ADE7 b .L922 14593 .LVL1092: 14594 .L928: 5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14595 .loc 1 5193 9 is_stmt 1 view .LVU5095 ARM GAS /tmp/ccN54YTb.s page 474 5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14596 .loc 1 5193 30 is_stmt 0 view .LVU5096 14597 00f8 628D ldrh r2, [r4, #42] 14598 .LVL1093: 5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14599 .loc 1 5193 30 view .LVU5097 14600 00fa 92B2 uxth r2, r2 5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14601 .loc 1 5193 24 view .LVU5098 14602 00fc 2285 strh r2, [r4, #40] @ movhi 5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14603 .loc 1 5194 9 is_stmt 1 view .LVU5099 5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14604 .loc 1 5194 48 is_stmt 0 view .LVU5100 14605 00fe E16C ldr r1, [r4, #76] 14606 .LVL1094: 5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14607 .loc 1 5194 9 view .LVU5101 14608 0100 0023 movs r3, #0 14609 0102 0093 str r3, [sp] 14610 0104 4FF00073 mov r3, #33554432 14611 0108 D2B2 uxtb r2, r2 14612 010a 89B2 uxth r1, r1 14613 010c 2046 mov r0, r4 14614 .LVL1095: 5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14615 .loc 1 5194 9 view .LVU5102 14616 010e FFF7FEFF bl I2C_TransferConfig 14617 .LVL1096: 14618 0112 9FE7 b .L922 14619 .LVL1097: 14620 .L927: 5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14621 .loc 1 5202 7 is_stmt 1 view .LVU5103 14622 0114 4021 movs r1, #64 14623 .LVL1098: 5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14624 .loc 1 5202 7 is_stmt 0 view .LVU5104 14625 0116 2046 mov r0, r4 14626 .LVL1099: 5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14627 .loc 1 5202 7 view .LVU5105 14628 0118 FFF7FEFF bl I2C_ITError 14629 .LVL1100: 5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14630 .loc 1 5202 7 view .LVU5106 14631 011c 9AE7 b .L922 14632 .LVL1101: 14633 .L926: 5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14634 .loc 1 5205 8 is_stmt 1 view .LVU5107 5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14635 .loc 1 5205 11 is_stmt 0 view .LVU5108 14636 011e 15F0400F tst r5, #64 14637 0122 97D0 beq .L922 5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14638 .loc 1 5205 63 discriminator 1 view .LVU5109 ARM GAS /tmp/ccN54YTb.s page 475 14639 0124 16F0400F tst r6, #64 14640 0128 94D0 beq .L922 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14641 .loc 1 5209 5 is_stmt 1 view .LVU5110 14642 012a 0121 movs r1, #1 14643 .LVL1102: 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14644 .loc 1 5209 5 is_stmt 0 view .LVU5111 14645 012c 2046 mov r0, r4 14646 .LVL1103: 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14647 .loc 1 5209 5 view .LVU5112 14648 012e FFF7FEFF bl I2C_Disable_IRQ 14649 .LVL1104: 5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14650 .loc 1 5212 5 is_stmt 1 view .LVU5113 14651 0132 0221 movs r1, #2 14652 0134 2046 mov r0, r4 14653 0136 FFF7FEFF bl I2C_Enable_IRQ 14654 .LVL1105: 5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14655 .loc 1 5214 5 view .LVU5114 5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14656 .loc 1 5214 13 is_stmt 0 view .LVU5115 14657 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14658 .loc 1 5214 8 view .LVU5116 14659 013e 222B cmp r3, #34 14660 0140 0FD0 beq .L933 5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14661 .loc 1 5122 12 view .LVU5117 14662 0142 1348 ldr r0, .L941 14663 .L929: 14664 .LVL1106: 5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14665 .loc 1 5219 5 is_stmt 1 view .LVU5118 5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14666 .loc 1 5219 13 is_stmt 0 view .LVU5119 14667 0144 638D ldrh r3, [r4, #42] 14668 0146 9BB2 uxth r3, r3 5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14669 .loc 1 5219 8 view .LVU5120 14670 0148 FF2B cmp r3, #255 14671 014a 0CD9 bls .L930 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14672 .loc 1 5221 7 is_stmt 1 view .LVU5121 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14673 .loc 1 5221 22 is_stmt 0 view .LVU5122 14674 014c FF22 movs r2, #255 14675 014e 2285 strh r2, [r4, #40] @ movhi 5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14676 .loc 1 5224 7 is_stmt 1 view .LVU5123 5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14677 .loc 1 5224 46 is_stmt 0 view .LVU5124 14678 0150 E16C ldr r1, [r4, #76] 5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14679 .loc 1 5224 7 view .LVU5125 ARM GAS /tmp/ccN54YTb.s page 476 14680 0152 0090 str r0, [sp] 14681 0154 4FF08073 mov r3, #16777216 14682 0158 89B2 uxth r1, r1 14683 015a 2046 mov r0, r4 14684 .LVL1107: 5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14685 .loc 1 5224 7 view .LVU5126 14686 015c FFF7FEFF bl I2C_TransferConfig 14687 .LVL1108: 5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14688 .loc 1 5224 7 view .LVU5127 14689 0160 78E7 b .L922 14690 .LVL1109: 14691 .L933: 5216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14692 .loc 1 5216 17 view .LVU5128 14693 0162 0C48 ldr r0, .L941+4 14694 0164 EEE7 b .L929 14695 .LVL1110: 14696 .L930: 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14697 .loc 1 5229 7 is_stmt 1 view .LVU5129 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14698 .loc 1 5229 28 is_stmt 0 view .LVU5130 14699 0166 628D ldrh r2, [r4, #42] 14700 0168 92B2 uxth r2, r2 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14701 .loc 1 5229 22 view .LVU5131 14702 016a 2285 strh r2, [r4, #40] @ movhi 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14703 .loc 1 5232 7 is_stmt 1 view .LVU5132 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14704 .loc 1 5232 46 is_stmt 0 view .LVU5133 14705 016c E16C ldr r1, [r4, #76] 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14706 .loc 1 5232 7 view .LVU5134 14707 016e 0090 str r0, [sp] 14708 0170 4FF00073 mov r3, #33554432 14709 0174 D2B2 uxtb r2, r2 14710 0176 89B2 uxth r1, r1 14711 0178 2046 mov r0, r4 14712 .LVL1111: 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14713 .loc 1 5232 7 view .LVU5135 14714 017a FFF7FEFF bl I2C_TransferConfig 14715 .LVL1112: 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14716 .loc 1 5232 7 view .LVU5136 14717 017e 69E7 b .L922 14718 .LVL1113: 14719 .L939: 5245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14720 .loc 1 5245 5 is_stmt 1 view .LVU5137 14721 0180 2946 mov r1, r5 14722 0182 2046 mov r0, r4 14723 0184 FFF7FEFF bl I2C_ITMasterCplt 14724 .LVL1114: ARM GAS /tmp/ccN54YTb.s page 477 14725 0188 6BE7 b .L931 14726 .LVL1115: 14727 .L932: 14728 .cfi_def_cfa_offset 0 14729 .cfi_restore 4 14730 .cfi_restore 5 14731 .cfi_restore 6 14732 .cfi_restore 14 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14733 .loc 1 5126 3 is_stmt 0 discriminator 1 view .LVU5138 14734 018a 0220 movs r0, #2 14735 .LVL1116: 5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14736 .loc 1 5252 1 view .LVU5139 14737 018c 7047 bx lr 14738 .L942: 14739 018e 00BF .align 2 14740 .L941: 14741 0190 00200080 .word -2147475456 14742 0194 00240080 .word -2147474432 14743 .cfi_endproc 14744 .LFE385: 14746 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 14747 .align 1 14748 .global HAL_I2C_ER_IRQHandler 14749 .syntax unified 14750 .thumb 14751 .thumb_func 14753 HAL_I2C_ER_IRQHandler: 14754 .LVL1117: 14755 .LFB370: 4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14756 .loc 1 4687 1 is_stmt 1 view -0 14757 .cfi_startproc 14758 @ args = 0, pretend = 0, frame = 0 14759 @ frame_needed = 0, uses_anonymous_args = 0 4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14760 .loc 1 4687 1 is_stmt 0 view .LVU5141 14761 0000 10B5 push {r4, lr} 14762 .cfi_def_cfa_offset 8 14763 .cfi_offset 4, -8 14764 .cfi_offset 14, -4 4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14765 .loc 1 4688 3 is_stmt 1 view .LVU5142 4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14766 .loc 1 4688 24 is_stmt 0 view .LVU5143 14767 0002 0268 ldr r2, [r0] 4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14768 .loc 1 4688 12 view .LVU5144 14769 0004 9369 ldr r3, [r2, #24] 14770 .LVL1118: 4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 14771 .loc 1 4689 3 is_stmt 1 view .LVU5145 4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 14772 .loc 1 4689 12 is_stmt 0 view .LVU5146 14773 0006 1168 ldr r1, [r2] 14774 .LVL1119: ARM GAS /tmp/ccN54YTb.s page 478 4690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14775 .loc 1 4690 3 is_stmt 1 view .LVU5147 4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14776 .loc 1 4693 3 view .LVU5148 4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14777 .loc 1 4693 6 is_stmt 0 view .LVU5149 14778 0008 13F4807F tst r3, #256 14779 000c 09D0 beq .L944 4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14780 .loc 1 4693 57 discriminator 1 view .LVU5150 14781 000e 11F0800F tst r1, #128 14782 0012 06D0 beq .L944 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14783 .loc 1 4696 5 is_stmt 1 view .LVU5151 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14784 .loc 1 4696 9 is_stmt 0 view .LVU5152 14785 0014 446C ldr r4, [r0, #68] 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14786 .loc 1 4696 21 view .LVU5153 14787 0016 44F00104 orr r4, r4, #1 14788 001a 4464 str r4, [r0, #68] 4699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14789 .loc 1 4699 5 is_stmt 1 view .LVU5154 14790 001c 4FF48074 mov r4, #256 14791 0020 D461 str r4, [r2, #28] 14792 .L944: 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14793 .loc 1 4703 3 view .LVU5155 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14794 .loc 1 4703 6 is_stmt 0 view .LVU5156 14795 0022 13F4806F tst r3, #1024 14796 0026 0AD0 beq .L945 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14797 .loc 1 4703 56 discriminator 1 view .LVU5157 14798 0028 11F0800F tst r1, #128 14799 002c 07D0 beq .L945 4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14800 .loc 1 4706 5 is_stmt 1 view .LVU5158 4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14801 .loc 1 4706 9 is_stmt 0 view .LVU5159 14802 002e 426C ldr r2, [r0, #68] 4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14803 .loc 1 4706 21 view .LVU5160 14804 0030 42F00802 orr r2, r2, #8 14805 0034 4264 str r2, [r0, #68] 4709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14806 .loc 1 4709 5 is_stmt 1 view .LVU5161 14807 0036 0268 ldr r2, [r0] 14808 0038 4FF48064 mov r4, #1024 14809 003c D461 str r4, [r2, #28] 14810 .L945: 4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14811 .loc 1 4713 3 view .LVU5162 4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14812 .loc 1 4713 6 is_stmt 0 view .LVU5163 14813 003e 13F4007F tst r3, #512 14814 0042 0AD0 beq .L946 ARM GAS /tmp/ccN54YTb.s page 479 4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14815 .loc 1 4713 57 discriminator 1 view .LVU5164 14816 0044 11F0800F tst r1, #128 14817 0048 07D0 beq .L946 4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14818 .loc 1 4716 5 is_stmt 1 view .LVU5165 4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14819 .loc 1 4716 9 is_stmt 0 view .LVU5166 14820 004a 436C ldr r3, [r0, #68] 14821 .LVL1120: 4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14822 .loc 1 4716 21 view .LVU5167 14823 004c 43F00203 orr r3, r3, #2 14824 0050 4364 str r3, [r0, #68] 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14825 .loc 1 4719 5 is_stmt 1 view .LVU5168 14826 0052 0368 ldr r3, [r0] 14827 0054 4FF40072 mov r2, #512 14828 0058 DA61 str r2, [r3, #28] 14829 .L946: 4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14830 .loc 1 4723 3 view .LVU5169 4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14831 .loc 1 4723 12 is_stmt 0 view .LVU5170 14832 005a 416C ldr r1, [r0, #68] 14833 .LVL1121: 4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14834 .loc 1 4726 3 is_stmt 1 view .LVU5171 4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14835 .loc 1 4726 6 is_stmt 0 view .LVU5172 14836 005c 11F00B0F tst r1, #11 14837 0060 00D1 bne .L949 14838 .LVL1122: 14839 .L943: 4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14840 .loc 1 4730 1 view .LVU5173 14841 0062 10BD pop {r4, pc} 14842 .LVL1123: 14843 .L949: 4728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14844 .loc 1 4728 5 is_stmt 1 view .LVU5174 14845 0064 FFF7FEFF bl I2C_ITError 14846 .LVL1124: 4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14847 .loc 1 4730 1 is_stmt 0 view .LVU5175 14848 0068 FBE7 b .L943 14849 .cfi_endproc 14850 .LFE370: 14852 .section .text.I2C_DMAAbort,"ax",%progbits 14853 .align 1 14854 .syntax unified 14855 .thumb 14856 .thumb_func 14858 I2C_DMAAbort: 14859 .LVL1125: 14860 .LFB406: 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ ARM GAS /tmp/ccN54YTb.s page 480 14861 .loc 1 6961 1 is_stmt 1 view -0 14862 .cfi_startproc 14863 @ args = 0, pretend = 0, frame = 0 14864 @ frame_needed = 0, uses_anonymous_args = 0 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14865 .loc 1 6961 1 is_stmt 0 view .LVU5177 14866 0000 08B5 push {r3, lr} 14867 .cfi_def_cfa_offset 8 14868 .cfi_offset 3, -8 14869 .cfi_offset 14, -4 6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14870 .loc 1 6963 3 is_stmt 1 view .LVU5178 6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14871 .loc 1 6963 22 is_stmt 0 view .LVU5179 14872 0002 806B ldr r0, [r0, #56] 14873 .LVL1126: 6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14874 .loc 1 6966 3 is_stmt 1 view .LVU5180 6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14875 .loc 1 6966 11 is_stmt 0 view .LVU5181 14876 0004 836B ldr r3, [r0, #56] 6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14877 .loc 1 6966 6 view .LVU5182 14878 0006 0BB1 cbz r3, .L951 6968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14879 .loc 1 6968 5 is_stmt 1 view .LVU5183 6968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14880 .loc 1 6968 37 is_stmt 0 view .LVU5184 14881 0008 0022 movs r2, #0 14882 000a 1A65 str r2, [r3, #80] 14883 .L951: 6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14884 .loc 1 6970 3 is_stmt 1 view .LVU5185 6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14885 .loc 1 6970 11 is_stmt 0 view .LVU5186 14886 000c C36B ldr r3, [r0, #60] 6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14887 .loc 1 6970 6 view .LVU5187 14888 000e 0BB1 cbz r3, .L952 6972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14889 .loc 1 6972 5 is_stmt 1 view .LVU5188 6972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14890 .loc 1 6972 37 is_stmt 0 view .LVU5189 14891 0010 0022 movs r2, #0 14892 0012 1A65 str r2, [r3, #80] 14893 .L952: 6975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14894 .loc 1 6975 3 is_stmt 1 view .LVU5190 14895 0014 FFF7FEFF bl I2C_TreatErrorCallback 14896 .LVL1127: 6976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14897 .loc 1 6976 1 is_stmt 0 view .LVU5191 14898 0018 08BD pop {r3, pc} 14899 .cfi_endproc 14900 .LFE406: 14902 .section .text.HAL_I2C_GetState,"ax",%progbits 14903 .align 1 ARM GAS /tmp/ccN54YTb.s page 481 14904 .global HAL_I2C_GetState 14905 .syntax unified 14906 .thumb 14907 .thumb_func 14909 HAL_I2C_GetState: 14910 .LVL1128: 14911 .LFB381: 4921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */ 14912 .loc 1 4921 1 is_stmt 1 view -0 14913 .cfi_startproc 14914 @ args = 0, pretend = 0, frame = 0 14915 @ frame_needed = 0, uses_anonymous_args = 0 14916 @ link register save eliminated. 4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14917 .loc 1 4923 3 view .LVU5193 4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14918 .loc 1 4923 14 is_stmt 0 view .LVU5194 14919 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 14920 .LVL1129: 4924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14921 .loc 1 4924 1 view .LVU5195 14922 0004 7047 bx lr 14923 .cfi_endproc 14924 .LFE381: 14926 .section .text.HAL_I2C_GetMode,"ax",%progbits 14927 .align 1 14928 .global HAL_I2C_GetMode 14929 .syntax unified 14930 .thumb 14931 .thumb_func 14933 HAL_I2C_GetMode: 14934 .LVL1130: 14935 .LFB382: 4933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode; 14936 .loc 1 4933 1 is_stmt 1 view -0 14937 .cfi_startproc 14938 @ args = 0, pretend = 0, frame = 0 14939 @ frame_needed = 0, uses_anonymous_args = 0 14940 @ link register save eliminated. 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14941 .loc 1 4934 3 view .LVU5197 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14942 .loc 1 4934 14 is_stmt 0 view .LVU5198 14943 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 14944 .LVL1131: 4935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14945 .loc 1 4935 1 view .LVU5199 14946 0004 7047 bx lr 14947 .cfi_endproc 14948 .LFE382: 14950 .section .text.HAL_I2C_GetError,"ax",%progbits 14951 .align 1 14952 .global HAL_I2C_GetError 14953 .syntax unified 14954 .thumb 14955 .thumb_func 14957 HAL_I2C_GetError: ARM GAS /tmp/ccN54YTb.s page 482 14958 .LVL1132: 14959 .LFB383: 4944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode; 14960 .loc 1 4944 1 is_stmt 1 view -0 14961 .cfi_startproc 14962 @ args = 0, pretend = 0, frame = 0 14963 @ frame_needed = 0, uses_anonymous_args = 0 14964 @ link register save eliminated. 4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14965 .loc 1 4945 3 view .LVU5201 4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14966 .loc 1 4945 14 is_stmt 0 view .LVU5202 14967 0000 406C ldr r0, [r0, #68] 14968 .LVL1133: 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14969 .loc 1 4946 1 view .LVU5203 14970 0002 7047 bx lr 14971 .cfi_endproc 14972 .LFE383: 14974 .text 14975 .Letext0: 14976 .file 2 "/home/k/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-ea 14977 .file 3 "/home/k/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-ea 14978 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7a3xx.h" 14979 .file 5 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h" 14980 .file 6 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h" 14981 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h" 14982 .file 8 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h" 14983 .file 9 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h" ARM GAS /tmp/ccN54YTb.s page 483 DEFINED SYMBOLS *ABS*:00000000 stm32h7xx_hal_i2c.c /tmp/ccN54YTb.s:20 .text.I2C_Flush_TXDR:00000000 $t /tmp/ccN54YTb.s:25 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR /tmp/ccN54YTb.s:63 .text.I2C_TransferConfig:00000000 $t /tmp/ccN54YTb.s:68 .text.I2C_TransferConfig:00000000 I2C_TransferConfig /tmp/ccN54YTb.s:125 .text.I2C_Enable_IRQ:00000000 $t /tmp/ccN54YTb.s:130 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ /tmp/ccN54YTb.s:293 .text.I2C_Enable_IRQ:00000090 $d /tmp/ccN54YTb.s:13581 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA /tmp/ccN54YTb.s:13127 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA /tmp/ccN54YTb.s:12756 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA /tmp/ccN54YTb.s:300 .text.I2C_Disable_IRQ:00000000 $t /tmp/ccN54YTb.s:305 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ /tmp/ccN54YTb.s:428 .text.I2C_ConvertOtherXferOptions:00000000 $t /tmp/ccN54YTb.s:433 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions /tmp/ccN54YTb.s:474 .text.I2C_IsErrorOccurred:00000000 $t /tmp/ccN54YTb.s:479 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred /tmp/ccN54YTb.s:759 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t /tmp/ccN54YTb.s:764 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccN54YTb.s:861 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t /tmp/ccN54YTb.s:866 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout /tmp/ccN54YTb.s:977 .text.I2C_RequestMemoryWrite:00000000 $t /tmp/ccN54YTb.s:982 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite /tmp/ccN54YTb.s:1097 .text.I2C_RequestMemoryWrite:00000078 $d /tmp/ccN54YTb.s:1102 .text.I2C_RequestMemoryRead:00000000 $t /tmp/ccN54YTb.s:1107 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead /tmp/ccN54YTb.s:1222 .text.I2C_RequestMemoryRead:00000074 $d /tmp/ccN54YTb.s:1227 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t /tmp/ccN54YTb.s:1232 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccN54YTb.s:1329 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t /tmp/ccN54YTb.s:1334 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccN54YTb.s:1498 .text.HAL_I2C_MspInit:00000000 $t /tmp/ccN54YTb.s:1504 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit /tmp/ccN54YTb.s:1519 .text.HAL_I2C_Init:00000000 $t /tmp/ccN54YTb.s:1525 .text.HAL_I2C_Init:00000000 HAL_I2C_Init /tmp/ccN54YTb.s:1718 .text.HAL_I2C_Init:000000c4 $d /tmp/ccN54YTb.s:1723 .text.HAL_I2C_MspDeInit:00000000 $t /tmp/ccN54YTb.s:1729 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit /tmp/ccN54YTb.s:1744 .text.HAL_I2C_DeInit:00000000 $t /tmp/ccN54YTb.s:1750 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit /tmp/ccN54YTb.s:1813 .text.HAL_I2C_Master_Transmit:00000000 $t /tmp/ccN54YTb.s:1819 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit /tmp/ccN54YTb.s:2173 .text.HAL_I2C_Master_Transmit:000001a0 $d /tmp/ccN54YTb.s:2178 .text.HAL_I2C_Master_Receive:00000000 $t /tmp/ccN54YTb.s:2184 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive /tmp/ccN54YTb.s:2487 .text.HAL_I2C_Master_Receive:00000174 $d /tmp/ccN54YTb.s:2492 .text.HAL_I2C_Slave_Transmit:00000000 $t /tmp/ccN54YTb.s:2498 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit /tmp/ccN54YTb.s:2944 .text.HAL_I2C_Slave_Receive:00000000 $t /tmp/ccN54YTb.s:2950 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive /tmp/ccN54YTb.s:3295 .text.HAL_I2C_Master_Transmit_IT:00000000 $t /tmp/ccN54YTb.s:3301 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT /tmp/ccN54YTb.s:3494 .text.HAL_I2C_Master_Transmit_IT:000000b8 $d /tmp/ccN54YTb.s:12370 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT /tmp/ccN54YTb.s:3501 .text.HAL_I2C_Master_Receive_IT:00000000 $t /tmp/ccN54YTb.s:3507 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT ARM GAS /tmp/ccN54YTb.s page 484 /tmp/ccN54YTb.s:3654 .text.HAL_I2C_Master_Receive_IT:0000008c $d /tmp/ccN54YTb.s:3661 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t /tmp/ccN54YTb.s:3667 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT /tmp/ccN54YTb.s:3808 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d /tmp/ccN54YTb.s:11791 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT /tmp/ccN54YTb.s:3814 .text.HAL_I2C_Slave_Receive_IT:00000000 $t /tmp/ccN54YTb.s:3820 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT /tmp/ccN54YTb.s:3921 .text.HAL_I2C_Slave_Receive_IT:0000005c $d /tmp/ccN54YTb.s:3927 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t /tmp/ccN54YTb.s:3933 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA /tmp/ccN54YTb.s:4275 .text.HAL_I2C_Master_Transmit_DMA:00000158 $d /tmp/ccN54YTb.s:14149 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt /tmp/ccN54YTb.s:13893 .text.I2C_DMAError:00000000 I2C_DMAError /tmp/ccN54YTb.s:4285 .text.HAL_I2C_Master_Receive_DMA:00000000 $t /tmp/ccN54YTb.s:4291 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA /tmp/ccN54YTb.s:4587 .text.HAL_I2C_Master_Receive_DMA:00000138 $d /tmp/ccN54YTb.s:14256 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt /tmp/ccN54YTb.s:4597 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t /tmp/ccN54YTb.s:4603 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccN54YTb.s:4904 .text.HAL_I2C_Slave_Transmit_DMA:0000012c $d /tmp/ccN54YTb.s:10269 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt /tmp/ccN54YTb.s:4912 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t /tmp/ccN54YTb.s:4918 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA /tmp/ccN54YTb.s:5138 .text.HAL_I2C_Slave_Receive_DMA:000000e0 $d /tmp/ccN54YTb.s:10325 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt /tmp/ccN54YTb.s:5146 .text.HAL_I2C_Mem_Write:00000000 $t /tmp/ccN54YTb.s:5152 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write /tmp/ccN54YTb.s:5504 .text.HAL_I2C_Mem_Read:00000000 $t /tmp/ccN54YTb.s:5510 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read /tmp/ccN54YTb.s:5862 .text.HAL_I2C_Mem_Read:000001ac $d /tmp/ccN54YTb.s:5867 .text.HAL_I2C_Mem_Write_IT:00000000 $t /tmp/ccN54YTb.s:5873 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT /tmp/ccN54YTb.s:6044 .text.HAL_I2C_Mem_Write_IT:000000ac $d /tmp/ccN54YTb.s:14363 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT /tmp/ccN54YTb.s:6051 .text.HAL_I2C_Mem_Read_IT:00000000 $t /tmp/ccN54YTb.s:6057 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT /tmp/ccN54YTb.s:6225 .text.HAL_I2C_Mem_Read_IT:000000a8 $d /tmp/ccN54YTb.s:6232 .text.HAL_I2C_Mem_Write_DMA:00000000 $t /tmp/ccN54YTb.s:6238 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA /tmp/ccN54YTb.s:6517 .text.HAL_I2C_Mem_Write_DMA:00000120 $d /tmp/ccN54YTb.s:6526 .text.HAL_I2C_Mem_Read_DMA:00000000 $t /tmp/ccN54YTb.s:6532 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA /tmp/ccN54YTb.s:6813 .text.HAL_I2C_Mem_Read_DMA:00000120 $d /tmp/ccN54YTb.s:6822 .text.HAL_I2C_IsDeviceReady:00000000 $t /tmp/ccN54YTb.s:6828 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady /tmp/ccN54YTb.s:7156 .text.HAL_I2C_IsDeviceReady:00000160 $d /tmp/ccN54YTb.s:7162 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t /tmp/ccN54YTb.s:7168 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccN54YTb.s:7428 .text.HAL_I2C_Master_Seq_Transmit_IT:00000104 $d /tmp/ccN54YTb.s:7434 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t /tmp/ccN54YTb.s:7440 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/ccN54YTb.s:7855 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001d0 $d /tmp/ccN54YTb.s:7864 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t /tmp/ccN54YTb.s:7870 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccN54YTb.s:8051 .text.HAL_I2C_Master_Seq_Receive_IT:000000a8 $d /tmp/ccN54YTb.s:8057 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t /tmp/ccN54YTb.s:8063 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA ARM GAS /tmp/ccN54YTb.s page 485 /tmp/ccN54YTb.s:8391 .text.HAL_I2C_Master_Seq_Receive_DMA:0000015c $d /tmp/ccN54YTb.s:8400 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t /tmp/ccN54YTb.s:8406 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccN54YTb.s:8615 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d8 $d /tmp/ccN54YTb.s:14858 .text.I2C_DMAAbort:00000000 I2C_DMAAbort /tmp/ccN54YTb.s:8621 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t /tmp/ccN54YTb.s:8627 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccN54YTb.s:9014 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000198 $d /tmp/ccN54YTb.s:9022 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t /tmp/ccN54YTb.s:9028 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccN54YTb.s:9237 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d8 $d /tmp/ccN54YTb.s:9243 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t /tmp/ccN54YTb.s:9249 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccN54YTb.s:9634 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000198 $d /tmp/ccN54YTb.s:9642 .text.HAL_I2C_EnableListen_IT:00000000 $t /tmp/ccN54YTb.s:9648 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT /tmp/ccN54YTb.s:9693 .text.HAL_I2C_EnableListen_IT:00000024 $d /tmp/ccN54YTb.s:9698 .text.HAL_I2C_DisableListen_IT:00000000 $t /tmp/ccN54YTb.s:9704 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT /tmp/ccN54YTb.s:9768 .text.HAL_I2C_Master_Abort_IT:00000000 $t /tmp/ccN54YTb.s:9774 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT /tmp/ccN54YTb.s:9914 .text.HAL_I2C_Master_Abort_IT:00000080 $d /tmp/ccN54YTb.s:9919 .text.HAL_I2C_EV_IRQHandler:00000000 $t /tmp/ccN54YTb.s:9925 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler /tmp/ccN54YTb.s:9962 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t /tmp/ccN54YTb.s:9968 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback /tmp/ccN54YTb.s:9983 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t /tmp/ccN54YTb.s:9989 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback /tmp/ccN54YTb.s:10004 .text.I2C_ITMasterSeqCplt:00000000 $t /tmp/ccN54YTb.s:10009 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt /tmp/ccN54YTb.s:10092 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t /tmp/ccN54YTb.s:10098 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccN54YTb.s:10113 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t /tmp/ccN54YTb.s:10119 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccN54YTb.s:10134 .text.I2C_ITSlaveSeqCplt:00000000 $t /tmp/ccN54YTb.s:10139 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt /tmp/ccN54YTb.s:10264 .text.I2C_DMASlaveTransmitCplt:00000000 $t /tmp/ccN54YTb.s:10320 .text.I2C_DMASlaveReceiveCplt:00000000 $t /tmp/ccN54YTb.s:10453 .text.I2C_DMASlaveReceiveCplt:00000098 $d /tmp/ccN54YTb.s:10459 .text.HAL_I2C_AddrCallback:00000000 $t /tmp/ccN54YTb.s:10465 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback /tmp/ccN54YTb.s:10482 .text.I2C_ITAddrCplt:00000000 $t /tmp/ccN54YTb.s:10487 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt /tmp/ccN54YTb.s:10646 .text.HAL_I2C_ListenCpltCallback:00000000 $t /tmp/ccN54YTb.s:10652 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback /tmp/ccN54YTb.s:10667 .text.I2C_ITListenCplt:00000000 $t /tmp/ccN54YTb.s:10672 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt /tmp/ccN54YTb.s:10775 .text.I2C_ITListenCplt:00000064 $d /tmp/ccN54YTb.s:10780 .text.HAL_I2C_MemTxCpltCallback:00000000 $t /tmp/ccN54YTb.s:10786 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback /tmp/ccN54YTb.s:10801 .text.HAL_I2C_MemRxCpltCallback:00000000 $t /tmp/ccN54YTb.s:10807 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback /tmp/ccN54YTb.s:10822 .text.HAL_I2C_ErrorCallback:00000000 $t /tmp/ccN54YTb.s:10828 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback /tmp/ccN54YTb.s:10843 .text.HAL_I2C_AbortCpltCallback:00000000 $t /tmp/ccN54YTb.s:10849 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback /tmp/ccN54YTb.s:10864 .text.I2C_TreatErrorCallback:00000000 $t ARM GAS /tmp/ccN54YTb.s page 486 /tmp/ccN54YTb.s:10869 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback /tmp/ccN54YTb.s:10924 .text.I2C_ITError:00000000 $t /tmp/ccN54YTb.s:10929 .text.I2C_ITError:00000000 I2C_ITError /tmp/ccN54YTb.s:11205 .text.I2C_ITError:00000124 $d /tmp/ccN54YTb.s:11212 .text.I2C_ITSlaveCplt:00000000 $t /tmp/ccN54YTb.s:11217 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt /tmp/ccN54YTb.s:11263 .text.I2C_ITSlaveCplt:0000001e $d /tmp/ccN54YTb.s:11273 .text.I2C_ITSlaveCplt:00000028 $t /tmp/ccN54YTb.s:11779 .text.I2C_ITSlaveCplt:000002c0 $d /tmp/ccN54YTb.s:11786 .text.I2C_Slave_ISR_IT:00000000 $t /tmp/ccN54YTb.s:12100 .text.I2C_ITMasterCplt:00000000 $t /tmp/ccN54YTb.s:12105 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt /tmp/ccN54YTb.s:12365 .text.I2C_Master_ISR_IT:00000000 $t /tmp/ccN54YTb.s:12751 .text.I2C_Mem_ISR_DMA:00000000 $t /tmp/ccN54YTb.s:13116 .text.I2C_Mem_ISR_DMA:00000198 $d /tmp/ccN54YTb.s:13122 .text.I2C_Slave_ISR_DMA:00000000 $t /tmp/ccN54YTb.s:13426 .text.I2C_Slave_ISR_DMA:0000018c $d /tmp/ccN54YTb.s:13437 .text.I2C_Slave_ISR_DMA:00000196 $t /tmp/ccN54YTb.s:13570 .text.I2C_Slave_ISR_DMA:00000214 $d /tmp/ccN54YTb.s:13576 .text.I2C_Master_ISR_DMA:00000000 $t /tmp/ccN54YTb.s:13888 .text.I2C_DMAError:00000000 $t /tmp/ccN54YTb.s:14138 .text.I2C_DMAError:00000130 $d /tmp/ccN54YTb.s:14144 .text.I2C_DMAMasterTransmitCplt:00000000 $t /tmp/ccN54YTb.s:14251 .text.I2C_DMAMasterReceiveCplt:00000000 $t /tmp/ccN54YTb.s:14358 .text.I2C_Mem_ISR_IT:00000000 $t /tmp/ccN54YTb.s:14741 .text.I2C_Mem_ISR_IT:00000190 $d /tmp/ccN54YTb.s:14747 .text.HAL_I2C_ER_IRQHandler:00000000 $t /tmp/ccN54YTb.s:14753 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler /tmp/ccN54YTb.s:14853 .text.I2C_DMAAbort:00000000 $t /tmp/ccN54YTb.s:14903 .text.HAL_I2C_GetState:00000000 $t /tmp/ccN54YTb.s:14909 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState /tmp/ccN54YTb.s:14927 .text.HAL_I2C_GetMode:00000000 $t /tmp/ccN54YTb.s:14933 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode /tmp/ccN54YTb.s:14951 .text.HAL_I2C_GetError:00000000 $t /tmp/ccN54YTb.s:14957 .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