ARM GAS /tmp/ccbUHtu7.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 1 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "stm32g4xx_hal_i2c.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c" 20 .section .text.I2C_Flush_TXDR,"ax",%progbits 21 .align 1 22 .syntax unified 23 .thumb 24 .thumb_func 26 I2C_Flush_TXDR: 27 .LVL0: 28 .LFB392: 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ****************************************************************************** 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @file stm32g4xx_hal_i2c.c 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @author MCD Application Team 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C HAL module driver. 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + Initialization and de-initialization functions 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + IO operation functions 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * + Peripheral State and Errors functions 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ****************************************************************************** 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @attention 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * Copyright (c) 2019 STMicroelectronics. 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * All rights reserved. 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in the root directory of this software component. 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ****************************************************************************** 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ============================================================================== 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### How to use this driver ##### 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ============================================================================== 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The I2C HAL driver can be used as follows: 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: ARM GAS /tmp/ccbUHtu7.s page 2 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (##) Enable the I2Cx interface clock 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (##) I2C pins configuration 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the transmit or receive channel 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure the DMA handle parameters 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the DMA Tx or Rx channel 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Polling mode IO operation *** 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ================================= 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit( 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Polling mode IO MEM operation *** 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ===================================== 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_ 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Interrupt mode IO operation *** 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =================================== 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() ARM GAS /tmp/ccbUHtu7.s page 3 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_ 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation *** 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ========================================================== 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** when a direction change during transfer 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below: 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** no sequential mode 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and data to transfer without a final stop condition 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** an then permit a call the same master sequential interface several time 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transfer 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transfer 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** after several call of the same master sequential interface several time 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME). 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Usage can, transfer several bytes one by one using 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME. 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** each call of the same master sequential 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** interface. 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** each bytes using 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA ARM GAS /tmp/ccbUHtu7.s page 4 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME. 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** generation of STOP condition. 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below: 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA() 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA() 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_A 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_DisableListen_IT() 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (Write/Read). 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback() 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA() 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA() 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ======================================= 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT() 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT() 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** DMA mode IO operation *** 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ============================== 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA() 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can ARM GAS /tmp/ccbUHtu7.s page 5 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA() 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA() 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA() 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** DMA mode IO MEM operation *** 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ================================= 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA() 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA() 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** I2C HAL driver macros list *** 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ================================== 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *** Callback registration *** 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ============================================= 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks. 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback() 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to register an interrupt callback. 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] ARM GAS /tmp/ccbUHtu7.s page 6 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks: 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and a pointer to the user callback function. 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** weak function. 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and the Callback ID. 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This function allows to reset following callbacks: 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback(). 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions: 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback(). 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** these callbacks are null (not registered beforehand). 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit() 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only. 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state, 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit() 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or HAL_I2C_Init() function. 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** are set to the corresponding weak functions. 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 7 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #include "stm32g4xx_hal.h" 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @addtogroup STM32G4xx_HAL_Driver 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C I2C 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C HAL module driver 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */ 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Default Value */ 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */ 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */ 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ ARM GAS /tmp/ccbUHtu7.s page 8 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */ 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and NACK treatment */ 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/ 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */ 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 9 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to treat different error callback */ 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to flush TXDR register */ 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Request); 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to Convert Specific options */ 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions ARM GAS /tmp/ccbUHtu7.s page 10 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Initialization and Configuration functions 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the selected configuration: 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Clock Timing 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 1 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Dual Addressing mode 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 2 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 2 Mask 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) General call mode 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Nostretch mode 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** of the selected I2Cx peripheral. 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c == NULL) 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 11 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the I2C Callback settings */ 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10); ARM GAS /tmp/ccbUHtu7.s page 12 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c == NULL) 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); ARM GAS /tmp/ccbUHtu7.s page 13 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Register a User I2C Callback 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * To be used instead of the weak predefined callback 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID ARM GAS /tmp/ccbUHtu7.s page 14 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (pCallback == NULL) 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : ARM GAS /tmp/ccbUHtu7.s page 15 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 16 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Unregister an I2C Callback 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; ARM GAS /tmp/ccbUHtu7.s page 17 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 18 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (pCallback == NULL) 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/ccbUHtu7.s page 19 1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ 1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ 1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Data transfers functions 1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim 1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### IO operation functions ##### 1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transfers. 1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) There are two modes of transfer: 1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The status of all data processing is returned by the same function 1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** after finishing transfer. 1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The end of the data processing will be indicated through the 1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** using DMA mode. 1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Blocking mode functions are : 1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() 1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() ARM GAS /tmp/ccbUHtu7.s page 20 1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim 1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent ARM GAS /tmp/ccbUHtu7.s page 21 1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; ARM GAS /tmp/ccbUHtu7.s page 22 1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccbUHtu7.s page 23 1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 24 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/ccbUHtu7.s page 25 1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ ARM GAS /tmp/ccbUHtu7.s page 26 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until AF flag is set */ 1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart) != HAL_OK) 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear AF flag */ 1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; ARM GAS /tmp/ccbUHtu7.s page 27 1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP flag */ 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) 1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ ARM GAS /tmp/ccbUHtu7.s page 28 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ 1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 29 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP flag */ 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ ARM GAS /tmp/ccbUHtu7.s page 30 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) 1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT 1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 31 1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 32 1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | ARM GAS /tmp/ccbUHtu7.s page 33 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 34 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; ARM GAS /tmp/ccbUHtu7.s page 35 1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 36 1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 37 2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 38 2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ ARM GAS /tmp/ccbUHtu7.s page 39 2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; ARM GAS /tmp/ccbUHtu7.s page 40 2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/ccbUHtu7.s page 41 2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccbUHtu7.s page 42 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address ARM GAS /tmp/ccbUHtu7.s page 43 2368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 44 2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do 2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); ARM GAS /tmp/ccbUHtu7.s page 45 2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; ARM GAS /tmp/ccbUHtu7.s page 46 2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do 2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 47 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 2598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 2652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 48 2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccbUHtu7.s page 49 2710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 2717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ ARM GAS /tmp/ccbUHtu7.s page 50 2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 2792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccbUHtu7.s page 51 2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA 2834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; ARM GAS /tmp/ccbUHtu7.s page 52 2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 2886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current ARM GAS /tmp/ccbUHtu7.s page 53 2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be read 2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; ARM GAS /tmp/ccbUHtu7.s page 54 2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa ARM GAS /tmp/ccbUHtu7.s page 55 3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/ccbUHtu7.s page 56 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This function is used with Memory devices 3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Trials Number of trials 3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) 3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 3127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp1; 3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp2; 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do 3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Start */ 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccbUHtu7.s page 57 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Device is ready */ 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */ 3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_Trials == Trials) 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ 3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ ARM GAS /tmp/ccbUHtu7.s page 58 3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Trials */ 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Trials++; 3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); 3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; ARM GAS /tmp/ccbUHtu7.s page 59 3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ 3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/ccbUHtu7.s page 60 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) ARM GAS /tmp/ccbUHtu7.s page 61 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccbUHtu7.s page 62 3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 63 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter 3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ 3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else ARM GAS /tmp/ccbUHtu7.s page 64 3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA 3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 65 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ ARM GAS /tmp/ccbUHtu7.s page 66 3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; ARM GAS /tmp/ccbUHtu7.s page 67 3736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 3738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) 3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 68 3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ 3798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ 3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 3836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); ARM GAS /tmp/ccbUHtu7.s page 69 3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t 3870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) 3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ 3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ ARM GAS /tmp/ccbUHtu7.s page 70 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ 3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 3919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 3921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ 3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 3933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 3943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 3958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 3963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 71 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset XferSize */ 3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = 0; 3997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccbUHtu7.s page 72 4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 4046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 4047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si 4051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) 4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 4054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ 4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) ARM GAS /tmp/ccbUHtu7.s page 73 4078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 4125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 74 4135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 4147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 75 4192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ 4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ ARM GAS /tmp/ccbUHtu7.s page 76 4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset XferSize */ 4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = 0; 4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 4291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ ARM GAS /tmp/ccbUHtu7.s page 77 4306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 4338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C 4345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp; 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); ARM GAS /tmp/ccbUHtu7.s page 78 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 4369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. 4374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 79 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong usage of abort function */ 4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 4430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) 4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear BERR flag */ 4474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 80 4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear OVR flag */ 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ 4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ARLO flag */ 4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ 4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 4509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 81 4534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Slave Address Match callback. 4572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(TransferDirection); 4583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** ARM GAS /tmp/ccbUHtu7.s page 82 4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Listen Complete callback. 4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C error callback. 4640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); ARM GAS /tmp/ccbUHtu7.s page 83 4648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C abort callback. 4656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 4672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim 4678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 4679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 4680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 4681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 4682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and the data flow. 4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim 4686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Return the I2C handle state. 4691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL state 4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) 4696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return I2C handle state */ 4698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->State; 4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for I2C module ARM GAS /tmp/ccbUHtu7.s page 84 4705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL mode 4706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) 4708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->Mode; 4710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Return the I2C error code. 4714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval I2C Error Code 4717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) 4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->ErrorCode; 4721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 4725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 4729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 4733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 4737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 4745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 4747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 4756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set corresponding Error Code */ 4759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; ARM GAS /tmp/ccbUHtu7.s page 85 4762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 4777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 4783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 4789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 4794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 4799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 4804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 4809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 4812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 4817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 86 4819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 4831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 4837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 4845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ 4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 4848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 4859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 4866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 4869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 4870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master complete process */ 4872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 4873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccbUHtu7.s page 87 4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 4883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 4891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 4893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ 4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if STOPF is set */ 4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 4900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 4901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave complete process */ 4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 4904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check that I2C transfer finished */ 4910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 4911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean XferCount == 0*/ 4912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So clear Flag NACKF only */ 4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 4916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 4917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 4918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ 4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 4921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 4923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 4925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 4928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 4931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); ARM GAS /tmp/ccbUHtu7.s page 88 4933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 4937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 4943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 4944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 4950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 4953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 4960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 4966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 4973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 4979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 4980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 4987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if all Data have already been sent */ 4989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ ARM GAS /tmp/ccbUHtu7.s page 89 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 5032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 5034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 5035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set corresponding Error Code */ 5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; ARM GAS /tmp/ccbUHtu7.s page 90 5047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC interrupt */ 5060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Recover Slave address */ 5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 91 5104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ 5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master complete process */ 5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 92 5161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 5172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ 5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if STOPF is set */ 5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 5204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** treatdmanack = 1U; 5206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 5216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** treatdmanack = 1U; ARM GAS /tmp/ccbUHtu7.s page 93 5218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (treatdmanack == 1U) 5223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpstate = hi2c->State; 5260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 94 5275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 5312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 5313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Memory Address */ 5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); ARM GAS /tmp/ccbUHtu7.s page 95 5332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 5365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 5368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 5373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Memory Address */ 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ ARM GAS /tmp/ccbUHtu7.s page 96 5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TC flag is set */ 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 5416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; 5422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t slaveaddrcode; 5423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd1code; 5424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd2code; 5425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(ITFlags); 5428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 5431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) 5441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount++; 5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 97 5446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Address Event counter */ 5447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 5450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Slave Addr callback */ 5456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Slave Addr callback */ 5474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 5482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Slave Addr callback */ 5491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Else clear address flag only */ 5499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 5502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); ARM GAS /tmp/ccbUHtu7.s page 98 5503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 5511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 5512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 5513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 5517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 5520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 5548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 99 5560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 5564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 5565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 5566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 5570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 5572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 5588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 5591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 5613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ ARM GAS /tmp/ccbUHtu7.s page 100 5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Master complete process. 5637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 5638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 5644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t tmpreg; 5646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 5667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 5668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 5670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) ARM GAS /tmp/ccbUHtu7.s page 101 5674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set acknowledge error code */ 5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Fetch Last receive data if any */ 5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 5684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 5687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 5688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 5694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 5698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 5709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 5718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 5720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccbUHtu7.s page 102 5731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 5744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Slave complete process. 5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 5781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 5783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 5787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; ARM GAS /tmp/ccbUHtu7.s page 103 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 5789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 5800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 5802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 5807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 5811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 5813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 5814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); 5837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 5842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ ARM GAS /tmp/ccbUHtu7.s page 104 5845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 5846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 5855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 5857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 5874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 5880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 5888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 5900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); ARM GAS /tmp/ccbUHtu7.s page 105 5902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 5918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Listen complete process. 5939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 5940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 5942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 5946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ 5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) 5954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ ARM GAS /tmp/ccbUHtu7.s page 106 5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 5960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 5962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all Interrupts*/ 5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 5973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 5983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 5985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C interrupts error process. 5990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 5991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 5992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 5993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 5997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmppreviousstate; 5998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 6000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 6003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set new error code */ 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 6006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 6008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 6009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 6010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ ARM GAS /tmp/ccbUHtu7.s page 107 6016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all interrupts */ 6022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This change will be do later */ 6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 6032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 6049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ 6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 6058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 108 6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 6085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 109 6130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 29 .loc 1 6145 1 view -0 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 0 32 @ frame_needed = 0, uses_anonymous_args = 0 33 @ link register save eliminated. 6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 34 .loc 1 6148 3 view .LVU1 35 .loc 1 6148 7 is_stmt 0 view .LVU2 36 0000 0368 ldr r3, [r0] 37 0002 9A69 ldr r2, [r3, #24] 38 .loc 1 6148 6 view .LVU3 39 0004 12F0020F tst r2, #2 40 0008 01D0 beq .L2 6149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 41 .loc 1 6150 5 is_stmt 1 view .LVU4 42 .loc 1 6150 26 is_stmt 0 view .LVU5 43 000a 0022 movs r2, #0 44 000c 9A62 str r2, [r3, #40] 45 .L2: 6151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register if not empty */ 6154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 46 .loc 1 6154 3 is_stmt 1 view .LVU6 47 .loc 1 6154 7 is_stmt 0 view .LVU7 48 000e 0368 ldr r3, [r0] 49 0010 9A69 ldr r2, [r3, #24] 50 .loc 1 6154 6 view .LVU8 51 0012 12F0010F tst r2, #1 52 0016 03D1 bne .L1 6155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 53 .loc 1 6156 5 is_stmt 1 view .LVU9 54 0018 9A69 ldr r2, [r3, #24] 55 001a 42F00102 orr r2, r2, #1 56 001e 9A61 str r2, [r3, #24] 57 .L1: 6157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 110 6158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 58 .loc 1 6158 1 is_stmt 0 view .LVU10 59 0020 7047 bx lr 60 .cfi_endproc 61 .LFE392: 63 .section .text.I2C_TransferConfig,"ax",%progbits 64 .align 1 65 .syntax unified 66 .thumb 67 .thumb_func 69 I2C_TransferConfig: 70 .LVL1: 71 .LFB404: 6159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupt */ 6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Buffer pointer */ 6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 6197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else ARM GAS /tmp/ccbUHtu7.s page 111 6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ 6205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupt */ 6255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 112 6260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Buffer pointer */ 6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, 6275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ 6283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ 6300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** ARM GAS /tmp/ccbUHtu7.s page 113 6317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Acknowledge */ 6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle. 6337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits 6359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * until a flag is no longer in the specified status. 6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET). 6364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 6365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 6367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 6370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 6372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ ARM GAS /tmp/ccbUHtu7.s page 114 6374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 6389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 6393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 6396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 6397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 6398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 6401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 6403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ 6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 6411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 6427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. ARM GAS /tmp/ccbUHtu7.s page 115 6431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 6434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 6435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 6436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ 6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 6462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 6466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 6469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 6470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 6471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 6474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 6476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ 6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an RXNE is pending */ 6487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ ARM GAS /tmp/ccbUHtu7.s page 116 6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 6489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return HAL_OK */ 6491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 6492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 6493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 6500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 6507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 6535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication. 6539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 6542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 6543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 6544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ ARM GAS /tmp/ccbUHtu7.s page 117 6545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti 6546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 6551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp1; 6552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) 6555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACKF Flag */ 6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */ 6560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) 6562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 6567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); 6569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 6570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */ 6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ 6573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 6574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 6575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 6578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Tick with new reference */ 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 6581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) 6587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 6596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 118 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */ 6603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (status == HAL_OK) 6604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 6606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF; 6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 6612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Refresh Content of Status register */ 6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** itflag = hi2c->Instance->ISR; 6616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Then verify if an additional errors occurs */ 6618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if a Bus error occurred */ 6619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) 6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; 6622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear BERR flag */ 6624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 6625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 6627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */ 6630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) 6631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR; 6633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear OVR flag */ 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 6636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 6638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */ 6641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) 6642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO; 6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ARLO flag */ 6646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 6649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (status != HAL_OK) 6652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 6654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 119 6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= error_code; 6660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 6668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 6672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 6675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 6676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 6677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 6678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 6679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 6681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 6682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 6683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 6684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 6685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 6686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 6687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 6690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Request) 6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 72 .loc 1 6691 1 is_stmt 1 view -0 73 .cfi_startproc 74 @ args = 4, pretend = 0, frame = 0 75 @ frame_needed = 0, uses_anonymous_args = 0 76 @ link register save eliminated. 77 .loc 1 6691 1 is_stmt 0 view .LVU12 78 0000 10B4 push {r4} 79 .LCFI0: 80 .cfi_def_cfa_offset 4 81 .cfi_offset 4, -4 82 0002 019C ldr r4, [sp, #4] 6692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 6693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 83 .loc 1 6693 3 is_stmt 1 view .LVU13 6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 84 .loc 1 6694 3 view .LVU14 6695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 85 .loc 1 6695 3 view .LVU15 6696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 6698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 86 .loc 1 6698 3 view .LVU16 87 .loc 1 6698 52 is_stmt 0 view .LVU17 88 0004 C1F30901 ubfx r1, r1, #0, #10 ARM GAS /tmp/ccbUHtu7.s page 120 89 .LVL2: 90 .loc 1 6698 68 view .LVU18 91 0008 41EA0241 orr r1, r1, r2, lsl #16 6699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 92 .loc 1 6699 87 view .LVU19 93 000c 1943 orrs r1, r1, r3 6698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 94 .loc 1 6698 19 view .LVU20 95 000e 2143 orrs r1, r1, r4 6698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 96 .loc 1 6698 12 view .LVU21 97 0010 21F00041 bic r1, r1, #-2147483648 98 .LVL3: 6700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); 6701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* update CR2 register */ 6703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \ 99 .loc 1 6703 3 is_stmt 1 view .LVU22 100 0014 0268 ldr r2, [r0] 101 .LVL4: 102 .loc 1 6703 3 is_stmt 0 view .LVU23 103 0016 5368 ldr r3, [r2, #4] 104 .LVL5: 105 .loc 1 6703 3 view .LVU24 106 0018 640D lsrs r4, r4, #21 107 001a 04F48064 and r4, r4, #1024 108 001e 44F07F74 orr r4, r4, #66846720 109 0022 44F45834 orr r4, r4, #221184 110 0026 44F47F74 orr r4, r4, #1020 111 002a 44F00304 orr r4, r4, #3 112 002e 23EA0403 bic r3, r3, r4 113 0032 0B43 orrs r3, r3, r1 114 0034 5360 str r3, [r2, #4] 6704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ 6705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 6706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp); 6707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 115 .loc 1 6707 1 view .LVU25 116 0036 5DF8044B ldr r4, [sp], #4 117 .LCFI1: 118 .cfi_restore 4 119 .cfi_def_cfa_offset 0 120 .LVL6: 121 .loc 1 6707 1 view .LVU26 122 003a 7047 bx lr 123 .cfi_endproc 124 .LFE404: 126 .section .text.I2C_Enable_IRQ,"ax",%progbits 127 .align 1 128 .syntax unified 129 .thumb 130 .thumb_func 132 I2C_Enable_IRQ: 133 .LVL7: 134 .LFB405: 6708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** ARM GAS /tmp/ccbUHtu7.s page 121 6710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 6711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 6714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 6717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 135 .loc 1 6717 1 is_stmt 1 view -0 136 .cfi_startproc 137 @ args = 0, pretend = 0, frame = 0 138 @ frame_needed = 0, uses_anonymous_args = 0 139 @ link register save eliminated. 6718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpisr = 0U; 140 .loc 1 6718 3 view .LVU28 6719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \ 141 .loc 1 6720 3 view .LVU29 142 .loc 1 6720 12 is_stmt 0 view .LVU30 143 0000 436B ldr r3, [r0, #52] 144 .loc 1 6720 6 view .LVU31 145 0002 1A4A ldr r2, .L20 146 0004 9342 cmp r3, r2 147 0006 15D0 beq .L7 148 .loc 1 6720 45 discriminator 1 view .LVU32 149 0008 194A ldr r2, .L20+4 150 000a 9342 cmp r3, r2 151 000c 12D0 beq .L7 6721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 6724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 6726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 6730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 6733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 6736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ 6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 6739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 6742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ 6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 6745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) ARM GAS /tmp/ccbUHtu7.s page 122 152 .loc 1 6749 5 is_stmt 1 view .LVU33 153 .loc 1 6749 8 is_stmt 0 view .LVU34 154 000e 11F4004F tst r1, #32768 155 0012 28D1 bne .L17 6718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 156 .loc 1 6718 12 view .LVU35 157 0014 0023 movs r3, #0 158 .L12: 159 .LVL8: 6750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */ 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 160 .loc 1 6755 5 is_stmt 1 view .LVU36 161 .loc 1 6755 8 is_stmt 0 view .LVU37 162 0016 11F0010F tst r1, #1 163 001a 01D0 beq .L13 6756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 164 .loc 1 6758 7 is_stmt 1 view .LVU38 165 .loc 1 6758 14 is_stmt 0 view .LVU39 166 001c 43F0F203 orr r3, r3, #242 167 .LVL9: 168 .L13: 6759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 169 .loc 1 6761 5 is_stmt 1 view .LVU40 170 .loc 1 6761 8 is_stmt 0 view .LVU41 171 0020 11F0020F tst r1, #2 172 0024 01D0 beq .L14 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 6764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 173 .loc 1 6764 7 is_stmt 1 view .LVU42 174 .loc 1 6764 14 is_stmt 0 view .LVU43 175 0026 43F0F403 orr r3, r3, #244 176 .LVL10: 177 .L14: 6765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 178 .loc 1 6767 5 is_stmt 1 view .LVU44 179 .loc 1 6767 8 is_stmt 0 view .LVU45 180 002a 2029 cmp r1, #32 181 002c 0ED1 bne .L11 6768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ 6770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 182 .loc 1 6770 7 is_stmt 1 view .LVU46 183 .loc 1 6770 14 is_stmt 0 view .LVU47 184 002e 43F02003 orr r3, r3, #32 185 .LVL11: 186 .loc 1 6770 14 view .LVU48 ARM GAS /tmp/ccbUHtu7.s page 123 187 0032 0BE0 b .L11 188 .LVL12: 189 .L7: 6723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 190 .loc 1 6723 5 is_stmt 1 view .LVU49 6723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 191 .loc 1 6723 8 is_stmt 0 view .LVU50 192 0034 11F4004F tst r1, #32768 193 0038 03D1 bne .L15 6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 194 .loc 1 6729 5 is_stmt 1 view .LVU51 6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 195 .loc 1 6729 8 is_stmt 0 view .LVU52 196 003a 1029 cmp r1, #16 197 003c 0BD0 beq .L16 6718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 198 .loc 1 6718 12 view .LVU53 199 003e 0023 movs r3, #0 200 0040 00E0 b .L9 201 .L15: 6726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 202 .loc 1 6726 14 view .LVU54 203 0042 B823 movs r3, #184 204 .L9: 205 .LVL13: 6735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 206 .loc 1 6735 5 is_stmt 1 view .LVU55 6735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 207 .loc 1 6735 8 is_stmt 0 view .LVU56 208 0044 2029 cmp r1, #32 209 0046 08D0 beq .L18 210 .L10: 6741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 211 .loc 1 6741 5 is_stmt 1 view .LVU57 6741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 212 .loc 1 6741 8 is_stmt 0 view .LVU58 213 0048 4029 cmp r1, #64 214 004a 09D0 beq .L19 215 .L11: 6771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable interrupts only at the end */ 6775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 6776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* all interrupts requested done */ 6777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 216 .loc 1 6777 3 is_stmt 1 view .LVU59 217 004c 0168 ldr r1, [r0] 218 .LVL14: 219 .loc 1 6777 3 is_stmt 0 view .LVU60 220 004e 0A68 ldr r2, [r1] 221 0050 1343 orrs r3, r3, r2 222 .LVL15: 223 .loc 1 6777 3 view .LVU61 224 0052 0B60 str r3, [r1] 6778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 225 .loc 1 6778 1 view .LVU62 ARM GAS /tmp/ccbUHtu7.s page 124 226 0054 7047 bx lr 227 .LVL16: 228 .L16: 6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 229 .loc 1 6732 14 view .LVU63 230 0056 9023 movs r3, #144 231 0058 F4E7 b .L9 232 .LVL17: 233 .L18: 6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 234 .loc 1 6738 7 is_stmt 1 view .LVU64 6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 235 .loc 1 6738 14 is_stmt 0 view .LVU65 236 005a 43F06003 orr r3, r3, #96 237 .LVL18: 6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 238 .loc 1 6738 14 view .LVU66 239 005e F3E7 b .L10 240 .L19: 6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 241 .loc 1 6744 7 is_stmt 1 view .LVU67 6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 242 .loc 1 6744 14 is_stmt 0 view .LVU68 243 0060 43F04003 orr r3, r3, #64 244 .LVL19: 6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 245 .loc 1 6744 14 view .LVU69 246 0064 F2E7 b .L11 247 .LVL20: 248 .L17: 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 249 .loc 1 6752 14 view .LVU70 250 0066 B823 movs r3, #184 251 0068 D5E7 b .L12 252 .L21: 253 006a 00BF .align 2 254 .L20: 255 006c 00000000 .word I2C_Master_ISR_DMA 256 0070 00000000 .word I2C_Slave_ISR_DMA 257 .cfi_endproc 258 .LFE405: 260 .section .text.I2C_Disable_IRQ,"ax",%progbits 261 .align 1 262 .syntax unified 263 .thumb 264 .thumb_func 266 I2C_Disable_IRQ: 267 .LVL21: 268 .LFB406: 6779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 6782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 6785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ ARM GAS /tmp/ccbUHtu7.s page 125 6787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 269 .loc 1 6788 1 is_stmt 1 view -0 270 .cfi_startproc 271 @ args = 0, pretend = 0, frame = 0 272 @ frame_needed = 0, uses_anonymous_args = 0 273 @ link register save eliminated. 6789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpisr = 0U; 274 .loc 1 6789 3 view .LVU72 6790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 275 .loc 1 6791 3 view .LVU73 276 .loc 1 6791 6 is_stmt 0 view .LVU74 277 0000 11F0010F tst r1, #1 278 0004 09D0 beq .L29 6792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 6794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 279 .loc 1 6794 5 is_stmt 1 view .LVU75 280 .LVL22: 6795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 281 .loc 1 6796 5 view .LVU76 282 .loc 1 6796 24 is_stmt 0 view .LVU77 283 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 284 .loc 1 6796 8 view .LVU78 285 000a 03F02803 and r3, r3, #40 286 000e 282B cmp r3, #40 287 0010 01D0 beq .L32 6797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 6799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 288 .loc 1 6799 14 view .LVU79 289 0012 F223 movs r3, #242 290 0014 02E0 b .L23 291 .L32: 6794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 292 .loc 1 6794 12 view .LVU80 293 0016 4223 movs r3, #66 294 0018 00E0 b .L23 295 .LVL23: 296 .L29: 6789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 297 .loc 1 6789 12 view .LVU81 298 001a 0023 movs r3, #0 299 .LVL24: 300 .L23: 6800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 301 .loc 1 6803 3 is_stmt 1 view .LVU82 302 .loc 1 6803 6 is_stmt 0 view .LVU83 303 001c 11F0020F tst r1, #2 304 0020 09D0 beq .L24 6804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ ARM GAS /tmp/ccbUHtu7.s page 126 6806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 305 .loc 1 6806 5 is_stmt 1 view .LVU84 306 .loc 1 6806 12 is_stmt 0 view .LVU85 307 0022 43F0440C orr ip, r3, #68 308 .LVL25: 6807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 309 .loc 1 6808 5 is_stmt 1 view .LVU86 310 .loc 1 6808 24 is_stmt 0 view .LVU87 311 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 312 .loc 1 6808 8 view .LVU88 313 002a 02F02802 and r2, r2, #40 314 002e 282A cmp r2, #40 315 0030 10D0 beq .L31 6809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 6811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 316 .loc 1 6811 7 is_stmt 1 view .LVU89 317 .loc 1 6811 14 is_stmt 0 view .LVU90 318 0032 43F0F403 orr r3, r3, #244 319 .LVL26: 320 .L24: 6812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 321 .loc 1 6815 3 is_stmt 1 view .LVU91 322 .loc 1 6815 6 is_stmt 0 view .LVU92 323 0036 11F4004F tst r1, #32768 324 003a 0DD1 bne .L33 325 .L25: 6816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 326 .loc 1 6821 3 is_stmt 1 view .LVU93 327 .loc 1 6821 6 is_stmt 0 view .LVU94 328 003c 1029 cmp r1, #16 329 003e 0ED0 beq .L34 330 .L26: 6822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 6825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 331 .loc 1 6827 3 is_stmt 1 view .LVU95 332 .loc 1 6827 6 is_stmt 0 view .LVU96 333 0040 2029 cmp r1, #32 334 0042 0FD0 beq .L35 335 .L27: 6828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ 6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 6831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 127 6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 336 .loc 1 6833 3 is_stmt 1 view .LVU97 337 .loc 1 6833 6 is_stmt 0 view .LVU98 338 0044 4029 cmp r1, #64 339 0046 10D0 beq .L36 340 .L28: 6834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ 6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 6837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable interrupts only at the end */ 6840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 6841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* all disable interrupts request are not done */ 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 341 .loc 1 6842 3 is_stmt 1 view .LVU99 342 0048 0168 ldr r1, [r0] 343 .LVL27: 344 .loc 1 6842 3 is_stmt 0 view .LVU100 345 004a 0A68 ldr r2, [r1] 346 004c 22EA0303 bic r3, r2, r3 347 .LVL28: 348 .loc 1 6842 3 view .LVU101 349 0050 0B60 str r3, [r1] 6843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 350 .loc 1 6843 1 view .LVU102 351 0052 7047 bx lr 352 .LVL29: 353 .L31: 6806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 354 .loc 1 6806 12 view .LVU103 355 0054 6346 mov r3, ip 356 0056 EEE7 b .L24 357 .LVL30: 358 .L33: 6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 359 .loc 1 6818 5 is_stmt 1 view .LVU104 6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 360 .loc 1 6818 12 is_stmt 0 view .LVU105 361 0058 43F0B803 orr r3, r3, #184 362 .LVL31: 6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 363 .loc 1 6818 12 view .LVU106 364 005c EEE7 b .L25 365 .L34: 6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 366 .loc 1 6824 5 is_stmt 1 view .LVU107 6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 367 .loc 1 6824 12 is_stmt 0 view .LVU108 368 005e 43F09003 orr r3, r3, #144 369 .LVL32: 6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 370 .loc 1 6824 12 view .LVU109 371 0062 EDE7 b .L26 372 .L35: 6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 128 373 .loc 1 6830 5 is_stmt 1 view .LVU110 6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 374 .loc 1 6830 12 is_stmt 0 view .LVU111 375 0064 43F02003 orr r3, r3, #32 376 .LVL33: 6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 377 .loc 1 6830 12 view .LVU112 378 0068 ECE7 b .L27 379 .L36: 6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 380 .loc 1 6836 5 is_stmt 1 view .LVU113 6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 381 .loc 1 6836 12 is_stmt 0 view .LVU114 382 006a 43F04003 orr r3, r3, #64 383 .LVL34: 6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 384 .loc 1 6836 12 view .LVU115 385 006e EBE7 b .L28 386 .cfi_endproc 387 .LFE406: 389 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 390 .align 1 391 .syntax unified 392 .thumb 393 .thumb_func 395 I2C_ConvertOtherXferOptions: 396 .LVL35: 397 .LFB407: 6844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 6847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 6851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 398 .loc 1 6851 1 is_stmt 1 view -0 399 .cfi_startproc 400 @ args = 0, pretend = 0, frame = 0 401 @ frame_needed = 0, uses_anonymous_args = 0 402 @ link register save eliminated. 6852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 6853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 6854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 6855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 403 .loc 1 6855 3 view .LVU117 404 .loc 1 6855 11 is_stmt 0 view .LVU118 405 0000 C36A ldr r3, [r0, #44] 406 .loc 1 6855 6 view .LVU119 407 0002 AA2B cmp r3, #170 408 0004 04D0 beq .L40 6856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 6858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 6860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 6861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ ARM GAS /tmp/ccbUHtu7.s page 129 6862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 6863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 409 .loc 1 6863 8 is_stmt 1 view .LVU120 410 .loc 1 6863 16 is_stmt 0 view .LVU121 411 0006 C36A ldr r3, [r0, #44] 412 .loc 1 6863 11 view .LVU122 413 0008 B3F52A4F cmp r3, #43520 414 000c 03D0 beq .L41 415 .L37: 6864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 6870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 416 .loc 1 6871 1 view .LVU123 417 000e 7047 bx lr 418 .L40: 6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 419 .loc 1 6857 5 is_stmt 1 view .LVU124 6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 420 .loc 1 6857 23 is_stmt 0 view .LVU125 421 0010 0023 movs r3, #0 422 0012 C362 str r3, [r0, #44] 423 0014 7047 bx lr 424 .L41: 6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 425 .loc 1 6865 5 is_stmt 1 view .LVU126 6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 426 .loc 1 6865 23 is_stmt 0 view .LVU127 427 0016 4FF00073 mov r3, #33554432 428 001a C362 str r3, [r0, #44] 6870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 429 .loc 1 6870 3 is_stmt 1 view .LVU128 430 .loc 1 6871 1 is_stmt 0 view .LVU129 431 001c F7E7 b .L37 432 .cfi_endproc 433 .LFE407: 435 .section .text.I2C_IsErrorOccurred,"ax",%progbits 436 .align 1 437 .syntax unified 438 .thumb 439 .thumb_func 441 I2C_IsErrorOccurred: 442 .LVL36: 443 .LFB403: 6546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 444 .loc 1 6546 1 is_stmt 1 view -0 445 .cfi_startproc 446 @ args = 0, pretend = 0, frame = 0 447 @ frame_needed = 0, uses_anonymous_args = 0 6546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 448 .loc 1 6546 1 is_stmt 0 view .LVU131 449 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 450 .LCFI2: ARM GAS /tmp/ccbUHtu7.s page 130 451 .cfi_def_cfa_offset 24 452 .cfi_offset 4, -24 453 .cfi_offset 5, -20 454 .cfi_offset 6, -16 455 .cfi_offset 7, -12 456 .cfi_offset 8, -8 457 .cfi_offset 14, -4 458 0004 0446 mov r4, r0 6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 459 .loc 1 6547 3 is_stmt 1 view .LVU132 460 .LVL37: 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 461 .loc 1 6548 3 view .LVU133 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 462 .loc 1 6548 27 is_stmt 0 view .LVU134 463 0006 0368 ldr r3, [r0] 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 464 .loc 1 6548 12 view .LVU135 465 0008 9F69 ldr r7, [r3, #24] 466 .LVL38: 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 467 .loc 1 6549 3 is_stmt 1 view .LVU136 6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp1; 468 .loc 1 6550 3 view .LVU137 6551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 469 .loc 1 6551 3 view .LVU138 6552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 470 .loc 1 6552 3 view .LVU139 6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 471 .loc 1 6554 3 view .LVU140 6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 472 .loc 1 6554 6 is_stmt 0 view .LVU141 473 000a 17F01007 ands r7, r7, #16 474 .LVL39: 6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 475 .loc 1 6554 6 view .LVU142 476 000e 4CD0 beq .L59 477 0010 0E46 mov r6, r1 478 0012 9046 mov r8, r2 6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 479 .loc 1 6557 5 is_stmt 1 view .LVU143 480 0014 1022 movs r2, #16 481 .LVL40: 6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 482 .loc 1 6557 5 is_stmt 0 view .LVU144 483 0016 DA61 str r2, [r3, #28] 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 484 .loc 1 6561 5 is_stmt 1 view .LVU145 6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 485 .loc 1 6547 21 is_stmt 0 view .LVU146 486 0018 0025 movs r5, #0 487 .LVL41: 488 .L45: 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 489 .loc 1 6561 64 is_stmt 1 view .LVU147 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 490 .loc 1 6561 13 is_stmt 0 view .LVU148 ARM GAS /tmp/ccbUHtu7.s page 131 491 001a 2368 ldr r3, [r4] 492 001c 9869 ldr r0, [r3, #24] 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 493 .loc 1 6561 64 view .LVU149 494 001e 10F0200F tst r0, #32 495 0022 3BD1 bne .L52 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 496 .loc 1 6561 64 discriminator 1 view .LVU150 497 0024 002D cmp r5, #0 498 0026 39D1 bne .L52 6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 499 .loc 1 6564 7 is_stmt 1 view .LVU151 6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 500 .loc 1 6564 10 is_stmt 0 view .LVU152 501 0028 B6F1FF3F cmp r6, #-1 502 002c F5D0 beq .L45 6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 503 .loc 1 6566 9 is_stmt 1 view .LVU153 6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 504 .loc 1 6566 15 is_stmt 0 view .LVU154 505 002e FFF7FEFF bl HAL_GetTick 506 .LVL42: 6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 507 .loc 1 6566 29 view .LVU155 508 0032 A0EB0800 sub r0, r0, r8 6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 509 .loc 1 6566 12 view .LVU156 510 0036 B042 cmp r0, r6 511 0038 01D8 bhi .L46 6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 512 .loc 1 6566 53 discriminator 1 view .LVU157 513 003a 002E cmp r6, #0 514 003c EDD1 bne .L45 515 .L46: 6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 516 .loc 1 6568 11 is_stmt 1 view .LVU158 6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 517 .loc 1 6568 33 is_stmt 0 view .LVU159 518 003e 2168 ldr r1, [r4] 6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 519 .loc 1 6568 43 view .LVU160 520 0040 4B68 ldr r3, [r1, #4] 6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 521 .loc 1 6568 16 view .LVU161 522 0042 03F48043 and r3, r3, #16384 523 .LVL43: 6569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 524 .loc 1 6569 11 is_stmt 1 view .LVU162 6569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 525 .loc 1 6569 16 is_stmt 0 view .LVU163 526 0046 94F84220 ldrb r2, [r4, #66] @ zero_extendqisi2 527 004a D2B2 uxtb r2, r2 528 .LVL44: 6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 529 .loc 1 6572 11 is_stmt 1 view .LVU164 6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 530 .loc 1 6572 16 is_stmt 0 view .LVU165 ARM GAS /tmp/ccbUHtu7.s page 132 531 004c 8869 ldr r0, [r1, #24] 6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 532 .loc 1 6572 14 view .LVU166 533 004e 10F4004F tst r0, #32768 534 0052 02D0 beq .L49 6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 535 .loc 1 6572 66 discriminator 1 view .LVU167 536 0054 0BB9 cbnz r3, .L49 6573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 537 .loc 1 6573 38 view .LVU168 538 0056 202A cmp r2, #32 539 0058 18D1 bne .L62 540 .LVL45: 541 .L49: 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 542 .loc 1 6583 59 is_stmt 1 view .LVU169 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 543 .loc 1 6583 18 is_stmt 0 view .LVU170 544 005a 2368 ldr r3, [r4] 545 005c 9B69 ldr r3, [r3, #24] 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 546 .loc 1 6583 59 view .LVU171 547 005e 13F0200F tst r3, #32 548 0062 DAD1 bne .L45 6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 549 .loc 1 6586 13 is_stmt 1 view .LVU172 6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 550 .loc 1 6586 18 is_stmt 0 view .LVU173 551 0064 FFF7FEFF bl HAL_GetTick 552 .LVL46: 6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 553 .loc 1 6586 32 view .LVU174 554 0068 A0EB0800 sub r0, r0, r8 6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 555 .loc 1 6586 16 view .LVU175 556 006c 1928 cmp r0, #25 557 006e F4D9 bls .L49 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 558 .loc 1 6588 15 is_stmt 1 view .LVU176 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 559 .loc 1 6588 19 is_stmt 0 view .LVU177 560 0070 636C ldr r3, [r4, #68] 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 561 .loc 1 6588 31 view .LVU178 562 0072 43F02003 orr r3, r3, #32 563 0076 6364 str r3, [r4, #68] 6589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 564 .loc 1 6589 15 is_stmt 1 view .LVU179 6589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 565 .loc 1 6589 27 is_stmt 0 view .LVU180 566 0078 2023 movs r3, #32 567 007a 84F84130 strb r3, [r4, #65] 6590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 568 .loc 1 6590 15 is_stmt 1 view .LVU181 6590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 569 .loc 1 6590 26 is_stmt 0 view .LVU182 570 007e 0023 movs r3, #0 ARM GAS /tmp/ccbUHtu7.s page 133 571 0080 84F84230 strb r3, [r4, #66] 6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 572 .loc 1 6593 15 is_stmt 1 view .LVU183 6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 573 .loc 1 6593 15 view .LVU184 574 0084 84F84030 strb r3, [r4, #64] 6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 575 .loc 1 6593 15 view .LVU185 6595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 576 .loc 1 6595 15 view .LVU186 577 .LVL47: 6595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 578 .loc 1 6595 22 is_stmt 0 view .LVU187 579 0088 0125 movs r5, #1 580 008a E6E7 b .L49 581 .LVL48: 582 .L62: 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 583 .loc 1 6577 13 is_stmt 1 view .LVU188 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 584 .loc 1 6577 27 is_stmt 0 view .LVU189 585 008c 4B68 ldr r3, [r1, #4] 586 .LVL49: 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 587 .loc 1 6577 33 view .LVU190 588 008e 43F48043 orr r3, r3, #16384 589 0092 4B60 str r3, [r1, #4] 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 590 .loc 1 6580 13 is_stmt 1 view .LVU191 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 591 .loc 1 6580 25 is_stmt 0 view .LVU192 592 0094 FFF7FEFF bl HAL_GetTick 593 .LVL50: 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 594 .loc 1 6580 25 view .LVU193 595 0098 8046 mov r8, r0 596 .LVL51: 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 597 .loc 1 6580 25 view .LVU194 598 009a DEE7 b .L49 599 .LVL52: 600 .L52: 6603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 601 .loc 1 6603 5 is_stmt 1 view .LVU195 6603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 602 .loc 1 6603 8 is_stmt 0 view .LVU196 603 009c 002D cmp r5, #0 604 009e 40D1 bne .L60 6606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 605 .loc 1 6606 7 is_stmt 1 view .LVU197 606 00a0 2022 movs r2, #32 607 00a2 DA61 str r2, [r3, #28] 6609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 608 .loc 1 6609 16 is_stmt 0 view .LVU198 609 00a4 0427 movs r7, #4 6611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 610 .loc 1 6611 12 view .LVU199 ARM GAS /tmp/ccbUHtu7.s page 134 611 00a6 0125 movs r5, #1 612 .LVL53: 6611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 613 .loc 1 6611 12 view .LVU200 614 00a8 00E0 b .L43 615 .LVL54: 616 .L59: 6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 617 .loc 1 6547 21 view .LVU201 618 00aa 0025 movs r5, #0 619 .LVL55: 620 .L43: 6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 621 .loc 1 6615 3 is_stmt 1 view .LVU202 6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 622 .loc 1 6615 16 is_stmt 0 view .LVU203 623 00ac 2268 ldr r2, [r4] 6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 624 .loc 1 6615 10 view .LVU204 625 00ae 9369 ldr r3, [r2, #24] 626 .LVL56: 6619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 627 .loc 1 6619 3 is_stmt 1 view .LVU205 6619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 628 .loc 1 6619 6 is_stmt 0 view .LVU206 629 00b0 13F4807F tst r3, #256 630 00b4 05D0 beq .L54 6621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 631 .loc 1 6621 5 is_stmt 1 view .LVU207 6621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 632 .loc 1 6621 16 is_stmt 0 view .LVU208 633 00b6 47F00107 orr r7, r7, #1 634 .LVL57: 6624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 635 .loc 1 6624 5 is_stmt 1 view .LVU209 636 00ba 4FF48071 mov r1, #256 637 00be D161 str r1, [r2, #28] 6626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 638 .loc 1 6626 5 view .LVU210 639 .LVL58: 6626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 640 .loc 1 6626 12 is_stmt 0 view .LVU211 641 00c0 0125 movs r5, #1 642 .LVL59: 643 .L54: 6630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 644 .loc 1 6630 3 is_stmt 1 view .LVU212 6630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 645 .loc 1 6630 6 is_stmt 0 view .LVU213 646 00c2 13F4806F tst r3, #1024 647 00c6 06D0 beq .L55 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 648 .loc 1 6632 5 is_stmt 1 view .LVU214 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 649 .loc 1 6632 16 is_stmt 0 view .LVU215 650 00c8 47F00807 orr r7, r7, #8 651 .LVL60: ARM GAS /tmp/ccbUHtu7.s page 135 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 652 .loc 1 6635 5 is_stmt 1 view .LVU216 653 00cc 2268 ldr r2, [r4] 654 00ce 4FF48061 mov r1, #1024 655 00d2 D161 str r1, [r2, #28] 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 656 .loc 1 6637 5 view .LVU217 657 .LVL61: 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 658 .loc 1 6637 12 is_stmt 0 view .LVU218 659 00d4 0125 movs r5, #1 660 .LVL62: 661 .L55: 6641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 662 .loc 1 6641 3 is_stmt 1 view .LVU219 6641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 663 .loc 1 6641 6 is_stmt 0 view .LVU220 664 00d6 13F4007F tst r3, #512 665 00da 24D0 beq .L56 6643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 666 .loc 1 6643 5 is_stmt 1 view .LVU221 6643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 667 .loc 1 6643 16 is_stmt 0 view .LVU222 668 00dc 47F00207 orr r7, r7, #2 669 .LVL63: 6646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 670 .loc 1 6646 5 is_stmt 1 view .LVU223 671 00e0 2368 ldr r3, [r4] 672 .LVL64: 6646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 673 .loc 1 6646 5 is_stmt 0 view .LVU224 674 00e2 4FF40072 mov r2, #512 675 00e6 DA61 str r2, [r3, #28] 6648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 676 .loc 1 6648 5 is_stmt 1 view .LVU225 677 .LVL65: 6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 678 .loc 1 6651 3 view .LVU226 6648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 679 .loc 1 6648 12 is_stmt 0 view .LVU227 680 00e8 0125 movs r5, #1 681 .LVL66: 682 .L57: 6654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 683 .loc 1 6654 5 is_stmt 1 view .LVU228 684 00ea 2046 mov r0, r4 685 00ec FFF7FEFF bl I2C_Flush_TXDR 686 .LVL67: 6657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 687 .loc 1 6657 5 view .LVU229 688 00f0 2268 ldr r2, [r4] 689 00f2 5368 ldr r3, [r2, #4] 690 00f4 23F0FF73 bic r3, r3, #33423360 691 00f8 23F48B33 bic r3, r3, #71168 692 00fc 23F4FF73 bic r3, r3, #510 693 0100 23F00103 bic r3, r3, #1 694 0104 5360 str r3, [r2, #4] ARM GAS /tmp/ccbUHtu7.s page 136 6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 695 .loc 1 6659 5 view .LVU230 6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 696 .loc 1 6659 9 is_stmt 0 view .LVU231 697 0106 636C ldr r3, [r4, #68] 6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 698 .loc 1 6659 21 view .LVU232 699 0108 3B43 orrs r3, r3, r7 700 010a 6364 str r3, [r4, #68] 6660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 701 .loc 1 6660 5 is_stmt 1 view .LVU233 6660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 702 .loc 1 6660 17 is_stmt 0 view .LVU234 703 010c 2023 movs r3, #32 704 010e 84F84130 strb r3, [r4, #65] 6661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 705 .loc 1 6661 5 is_stmt 1 view .LVU235 6661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 706 .loc 1 6661 16 is_stmt 0 view .LVU236 707 0112 0023 movs r3, #0 708 0114 84F84230 strb r3, [r4, #66] 6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 709 .loc 1 6664 5 is_stmt 1 view .LVU237 6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 710 .loc 1 6664 5 view .LVU238 711 0118 84F84030 strb r3, [r4, #64] 712 .L58: 6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 713 .loc 1 6664 5 discriminator 1 view .LVU239 6667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 714 .loc 1 6667 3 discriminator 1 view .LVU240 6668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 715 .loc 1 6668 1 is_stmt 0 discriminator 1 view .LVU241 716 011c 2846 mov r0, r5 717 011e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 718 .LVL68: 719 .L60: 6609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 720 .loc 1 6609 16 view .LVU242 721 0122 0427 movs r7, #4 722 0124 C2E7 b .L43 723 .LVL69: 724 .L56: 6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 725 .loc 1 6651 3 is_stmt 1 view .LVU243 6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 726 .loc 1 6651 6 is_stmt 0 view .LVU244 727 0126 002D cmp r5, #0 728 0128 F8D0 beq .L58 729 012a DEE7 b .L57 730 .cfi_endproc 731 .LFE403: 733 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 734 .align 1 735 .syntax unified 736 .thumb 737 .thumb_func ARM GAS /tmp/ccbUHtu7.s page 137 739 I2C_WaitOnTXISFlagUntilTimeout: 740 .LVL70: 741 .LFB400: 6401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 742 .loc 1 6401 1 is_stmt 1 view -0 743 .cfi_startproc 744 @ args = 0, pretend = 0, frame = 0 745 @ frame_needed = 0, uses_anonymous_args = 0 6401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 746 .loc 1 6401 1 is_stmt 0 view .LVU246 747 0000 70B5 push {r4, r5, r6, lr} 748 .LCFI3: 749 .cfi_def_cfa_offset 16 750 .cfi_offset 4, -16 751 .cfi_offset 5, -12 752 .cfi_offset 6, -8 753 .cfi_offset 14, -4 754 0002 0446 mov r4, r0 755 0004 0D46 mov r5, r1 756 0006 1646 mov r6, r2 6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 757 .loc 1 6402 3 is_stmt 1 view .LVU247 758 .LVL71: 759 .L66: 6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 760 .loc 1 6402 50 view .LVU248 6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 761 .loc 1 6402 10 is_stmt 0 view .LVU249 762 0008 2368 ldr r3, [r4] 763 000a 9B69 ldr r3, [r3, #24] 6402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 764 .loc 1 6402 50 view .LVU250 765 000c 13F0020F tst r3, #2 766 0010 1DD1 bne .L71 6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 767 .loc 1 6405 5 is_stmt 1 view .LVU251 6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 768 .loc 1 6405 9 is_stmt 0 view .LVU252 769 0012 3246 mov r2, r6 770 0014 2946 mov r1, r5 771 0016 2046 mov r0, r4 772 0018 FFF7FEFF bl I2C_IsErrorOccurred 773 .LVL72: 6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 774 .loc 1 6405 8 view .LVU253 775 001c C8B9 cbnz r0, .L69 6411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 776 .loc 1 6411 5 is_stmt 1 view .LVU254 6411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 777 .loc 1 6411 8 is_stmt 0 view .LVU255 778 001e B5F1FF3F cmp r5, #-1 779 0022 F1D0 beq .L66 6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 780 .loc 1 6413 7 is_stmt 1 view .LVU256 6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 781 .loc 1 6413 13 is_stmt 0 view .LVU257 782 0024 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccbUHtu7.s page 138 783 .LVL73: 6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 784 .loc 1 6413 27 view .LVU258 785 0028 801B subs r0, r0, r6 6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 786 .loc 1 6413 10 view .LVU259 787 002a A842 cmp r0, r5 788 002c 01D8 bhi .L67 6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 789 .loc 1 6413 51 discriminator 1 view .LVU260 790 002e 002D cmp r5, #0 791 0030 EAD1 bne .L66 792 .L67: 6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 793 .loc 1 6415 9 is_stmt 1 view .LVU261 6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 794 .loc 1 6415 13 is_stmt 0 view .LVU262 795 0032 636C ldr r3, [r4, #68] 6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 796 .loc 1 6415 25 view .LVU263 797 0034 43F02003 orr r3, r3, #32 798 0038 6364 str r3, [r4, #68] 6416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 799 .loc 1 6416 9 is_stmt 1 view .LVU264 6416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 800 .loc 1 6416 21 is_stmt 0 view .LVU265 801 003a 2023 movs r3, #32 802 003c 84F84130 strb r3, [r4, #65] 6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 803 .loc 1 6417 9 is_stmt 1 view .LVU266 6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 804 .loc 1 6417 20 is_stmt 0 view .LVU267 805 0040 0023 movs r3, #0 806 0042 84F84230 strb r3, [r4, #66] 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 807 .loc 1 6420 9 is_stmt 1 view .LVU268 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 808 .loc 1 6420 9 view .LVU269 809 0046 84F84030 strb r3, [r4, #64] 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 810 .loc 1 6420 9 view .LVU270 6422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 811 .loc 1 6422 9 view .LVU271 6422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 812 .loc 1 6422 16 is_stmt 0 view .LVU272 813 004a 0120 movs r0, #1 814 004c 00E0 b .L65 815 .L71: 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 816 .loc 1 6426 10 view .LVU273 817 004e 0020 movs r0, #0 818 .L65: 6427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 819 .loc 1 6427 1 view .LVU274 820 0050 70BD pop {r4, r5, r6, pc} 821 .LVL74: 822 .L69: ARM GAS /tmp/ccbUHtu7.s page 139 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 823 .loc 1 6407 14 view .LVU275 824 0052 0120 movs r0, #1 825 0054 FCE7 b .L65 826 .cfi_endproc 827 .LFE400: 829 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 830 .align 1 831 .syntax unified 832 .thumb 833 .thumb_func 835 I2C_WaitOnFlagUntilTimeout: 836 .LVL75: 837 .LFB399: 6370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 838 .loc 1 6370 1 is_stmt 1 view -0 839 .cfi_startproc 840 @ args = 4, pretend = 0, frame = 0 841 @ frame_needed = 0, uses_anonymous_args = 0 6370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 842 .loc 1 6370 1 is_stmt 0 view .LVU277 843 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 844 .LCFI4: 845 .cfi_def_cfa_offset 24 846 .cfi_offset 4, -24 847 .cfi_offset 5, -20 848 .cfi_offset 6, -16 849 .cfi_offset 7, -12 850 .cfi_offset 8, -8 851 .cfi_offset 14, -4 852 0004 0646 mov r6, r0 853 0006 8846 mov r8, r1 854 0008 1746 mov r7, r2 855 000a 1D46 mov r5, r3 6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 856 .loc 1 6371 3 is_stmt 1 view .LVU278 857 .LVL76: 858 .L74: 6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 859 .loc 1 6371 41 view .LVU279 6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 860 .loc 1 6371 10 is_stmt 0 view .LVU280 861 000c 3468 ldr r4, [r6] 862 000e A469 ldr r4, [r4, #24] 863 0010 38EA0404 bics r4, r8, r4 864 0014 0CBF ite eq 865 0016 0124 moveq r4, #1 866 0018 0024 movne r4, #0 6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 867 .loc 1 6371 41 view .LVU281 868 001a BC42 cmp r4, r7 869 001c 18D1 bne .L79 6374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 870 .loc 1 6374 5 is_stmt 1 view .LVU282 6374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 871 .loc 1 6374 8 is_stmt 0 view .LVU283 872 001e B5F1FF3F cmp r5, #-1 ARM GAS /tmp/ccbUHtu7.s page 140 873 0022 F3D0 beq .L74 6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 874 .loc 1 6376 7 is_stmt 1 view .LVU284 6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 875 .loc 1 6376 13 is_stmt 0 view .LVU285 876 0024 FFF7FEFF bl HAL_GetTick 877 .LVL77: 6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 878 .loc 1 6376 27 view .LVU286 879 0028 069B ldr r3, [sp, #24] 880 002a C01A subs r0, r0, r3 6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 881 .loc 1 6376 10 view .LVU287 882 002c A842 cmp r0, r5 883 002e 01D8 bhi .L75 6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 884 .loc 1 6376 51 discriminator 1 view .LVU288 885 0030 002D cmp r5, #0 886 0032 EBD1 bne .L74 887 .L75: 6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 888 .loc 1 6378 9 is_stmt 1 view .LVU289 6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 889 .loc 1 6378 13 is_stmt 0 view .LVU290 890 0034 736C ldr r3, [r6, #68] 6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 891 .loc 1 6378 25 view .LVU291 892 0036 43F02003 orr r3, r3, #32 893 003a 7364 str r3, [r6, #68] 6379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 894 .loc 1 6379 9 is_stmt 1 view .LVU292 6379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 895 .loc 1 6379 21 is_stmt 0 view .LVU293 896 003c 2023 movs r3, #32 897 003e 86F84130 strb r3, [r6, #65] 6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 898 .loc 1 6380 9 is_stmt 1 view .LVU294 6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 899 .loc 1 6380 20 is_stmt 0 view .LVU295 900 0042 0023 movs r3, #0 901 0044 86F84230 strb r3, [r6, #66] 6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 902 .loc 1 6383 9 is_stmt 1 view .LVU296 6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 903 .loc 1 6383 9 view .LVU297 904 0048 86F84030 strb r3, [r6, #64] 6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 905 .loc 1 6383 9 view .LVU298 6384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 906 .loc 1 6384 9 view .LVU299 6384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 907 .loc 1 6384 16 is_stmt 0 view .LVU300 908 004c 0120 movs r0, #1 909 004e 00E0 b .L76 910 .L79: 6388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 911 .loc 1 6388 10 view .LVU301 ARM GAS /tmp/ccbUHtu7.s page 141 912 0050 0020 movs r0, #0 913 .L76: 6389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 914 .loc 1 6389 1 view .LVU302 915 0052 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 6389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 916 .loc 1 6389 1 view .LVU303 917 .cfi_endproc 918 .LFE399: 920 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 921 .align 1 922 .syntax unified 923 .thumb 924 .thumb_func 926 I2C_RequestMemoryWrite: 927 .LVL78: 928 .LFB382: 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 929 .loc 1 5318 1 is_stmt 1 view -0 930 .cfi_startproc 931 @ args = 8, pretend = 0, frame = 0 932 @ frame_needed = 0, uses_anonymous_args = 0 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 933 .loc 1 5318 1 is_stmt 0 view .LVU305 934 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 935 .LCFI5: 936 .cfi_def_cfa_offset 24 937 .cfi_offset 4, -24 938 .cfi_offset 5, -20 939 .cfi_offset 6, -16 940 .cfi_offset 7, -12 941 .cfi_offset 8, -8 942 .cfi_offset 14, -4 943 0004 82B0 sub sp, sp, #8 944 .LCFI6: 945 .cfi_def_cfa_offset 32 946 0006 0446 mov r4, r0 947 0008 9046 mov r8, r2 948 000a 1D46 mov r5, r3 949 000c 089E ldr r6, [sp, #32] 950 000e 099F ldr r7, [sp, #36] 5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 951 .loc 1 5319 3 is_stmt 1 view .LVU306 952 0010 194B ldr r3, .L89 953 .LVL79: 5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 954 .loc 1 5319 3 is_stmt 0 view .LVU307 955 0012 0093 str r3, [sp] 956 0014 4FF08073 mov r3, #16777216 957 0018 EAB2 uxtb r2, r5 958 .LVL80: 5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 959 .loc 1 5319 3 view .LVU308 960 001a FFF7FEFF bl I2C_TransferConfig 961 .LVL81: 5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 962 .loc 1 5322 3 is_stmt 1 view .LVU309 ARM GAS /tmp/ccbUHtu7.s page 142 5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 963 .loc 1 5322 7 is_stmt 0 view .LVU310 964 001e 3A46 mov r2, r7 965 0020 3146 mov r1, r6 966 0022 2046 mov r0, r4 967 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 968 .LVL82: 5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 969 .loc 1 5322 6 view .LVU311 970 0028 F8B9 cbnz r0, .L84 5328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 971 .loc 1 5328 3 is_stmt 1 view .LVU312 5328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 972 .loc 1 5328 6 is_stmt 0 view .LVU313 973 002a 012D cmp r5, #1 974 002c 0ED1 bne .L82 5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 975 .loc 1 5331 5 is_stmt 1 view .LVU314 5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 976 .loc 1 5331 9 is_stmt 0 view .LVU315 977 002e 2368 ldr r3, [r4] 5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 978 .loc 1 5331 28 view .LVU316 979 0030 5FFA88F2 uxtb r2, r8 5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 980 .loc 1 5331 26 view .LVU317 981 0034 9A62 str r2, [r3, #40] 982 .L83: 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 983 .loc 1 5350 3 is_stmt 1 view .LVU318 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 984 .loc 1 5350 7 is_stmt 0 view .LVU319 985 0036 0097 str r7, [sp] 986 0038 3346 mov r3, r6 987 003a 0022 movs r2, #0 988 003c 8021 movs r1, #128 989 003e 2046 mov r0, r4 990 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 991 .LVL83: 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 992 .loc 1 5350 6 view .LVU320 993 0044 A8B9 cbnz r0, .L88 994 .L81: 5356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 995 .loc 1 5356 1 view .LVU321 996 0046 02B0 add sp, sp, #8 997 .LCFI7: 998 .cfi_remember_state 999 .cfi_def_cfa_offset 24 1000 @ sp needed 1001 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1002 .LVL84: 1003 .L82: 1004 .LCFI8: 1005 .cfi_restore_state 5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1006 .loc 1 5337 5 is_stmt 1 view .LVU322 ARM GAS /tmp/ccbUHtu7.s page 143 5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1007 .loc 1 5337 9 is_stmt 0 view .LVU323 1008 004c 2368 ldr r3, [r4] 5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1009 .loc 1 5337 28 view .LVU324 1010 004e 4FEA1822 lsr r2, r8, #8 5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1011 .loc 1 5337 26 view .LVU325 1012 0052 9A62 str r2, [r3, #40] 5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1013 .loc 1 5340 5 is_stmt 1 view .LVU326 5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1014 .loc 1 5340 9 is_stmt 0 view .LVU327 1015 0054 3A46 mov r2, r7 1016 0056 3146 mov r1, r6 1017 0058 2046 mov r0, r4 1018 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1019 .LVL85: 5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1020 .loc 1 5340 8 view .LVU328 1021 005e 30B9 cbnz r0, .L85 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1022 .loc 1 5346 5 is_stmt 1 view .LVU329 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1023 .loc 1 5346 9 is_stmt 0 view .LVU330 1024 0060 2368 ldr r3, [r4] 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1025 .loc 1 5346 28 view .LVU331 1026 0062 5FFA88F2 uxtb r2, r8 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1027 .loc 1 5346 26 view .LVU332 1028 0066 9A62 str r2, [r3, #40] 1029 0068 E5E7 b .L83 1030 .L84: 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1031 .loc 1 5324 12 view .LVU333 1032 006a 0120 movs r0, #1 1033 006c EBE7 b .L81 1034 .L85: 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1035 .loc 1 5342 14 view .LVU334 1036 006e 0120 movs r0, #1 1037 0070 E9E7 b .L81 1038 .L88: 5352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1039 .loc 1 5352 12 view .LVU335 1040 0072 0120 movs r0, #1 1041 0074 E7E7 b .L81 1042 .L90: 1043 0076 00BF .align 2 1044 .L89: 1045 0078 00200080 .word -2147475456 1046 .cfi_endproc 1047 .LFE382: 1049 .section .text.I2C_RequestMemoryRead,"ax",%progbits 1050 .align 1 1051 .syntax unified ARM GAS /tmp/ccbUHtu7.s page 144 1052 .thumb 1053 .thumb_func 1055 I2C_RequestMemoryRead: 1056 .LVL86: 1057 .LFB383: 5373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1058 .loc 1 5373 1 is_stmt 1 view -0 1059 .cfi_startproc 1060 @ args = 8, pretend = 0, frame = 0 1061 @ frame_needed = 0, uses_anonymous_args = 0 5373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1062 .loc 1 5373 1 is_stmt 0 view .LVU337 1063 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1064 .LCFI9: 1065 .cfi_def_cfa_offset 24 1066 .cfi_offset 4, -24 1067 .cfi_offset 5, -20 1068 .cfi_offset 6, -16 1069 .cfi_offset 7, -12 1070 .cfi_offset 8, -8 1071 .cfi_offset 14, -4 1072 0004 82B0 sub sp, sp, #8 1073 .LCFI10: 1074 .cfi_def_cfa_offset 32 1075 0006 0446 mov r4, r0 1076 0008 9046 mov r8, r2 1077 000a 1D46 mov r5, r3 1078 000c 089E ldr r6, [sp, #32] 1079 000e 099F ldr r7, [sp, #36] 5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1080 .loc 1 5374 3 is_stmt 1 view .LVU338 1081 0010 184B ldr r3, .L100 1082 .LVL87: 5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1083 .loc 1 5374 3 is_stmt 0 view .LVU339 1084 0012 0093 str r3, [sp] 1085 0014 0023 movs r3, #0 1086 0016 EAB2 uxtb r2, r5 1087 .LVL88: 5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1088 .loc 1 5374 3 view .LVU340 1089 0018 FFF7FEFF bl I2C_TransferConfig 1090 .LVL89: 5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1091 .loc 1 5377 3 is_stmt 1 view .LVU341 5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1092 .loc 1 5377 7 is_stmt 0 view .LVU342 1093 001c 3A46 mov r2, r7 1094 001e 3146 mov r1, r6 1095 0020 2046 mov r0, r4 1096 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1097 .LVL90: 5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1098 .loc 1 5377 6 view .LVU343 1099 0026 F8B9 cbnz r0, .L95 5383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1100 .loc 1 5383 3 is_stmt 1 view .LVU344 ARM GAS /tmp/ccbUHtu7.s page 145 5383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1101 .loc 1 5383 6 is_stmt 0 view .LVU345 1102 0028 012D cmp r5, #1 1103 002a 0ED1 bne .L93 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1104 .loc 1 5386 5 is_stmt 1 view .LVU346 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1105 .loc 1 5386 9 is_stmt 0 view .LVU347 1106 002c 2368 ldr r3, [r4] 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1107 .loc 1 5386 28 view .LVU348 1108 002e 5FFA88F2 uxtb r2, r8 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1109 .loc 1 5386 26 view .LVU349 1110 0032 9A62 str r2, [r3, #40] 1111 .L94: 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1112 .loc 1 5405 3 is_stmt 1 view .LVU350 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1113 .loc 1 5405 7 is_stmt 0 view .LVU351 1114 0034 0097 str r7, [sp] 1115 0036 3346 mov r3, r6 1116 0038 0022 movs r2, #0 1117 003a 4021 movs r1, #64 1118 003c 2046 mov r0, r4 1119 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1120 .LVL91: 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1121 .loc 1 5405 6 view .LVU352 1122 0042 A8B9 cbnz r0, .L99 1123 .L92: 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1124 .loc 1 5411 1 view .LVU353 1125 0044 02B0 add sp, sp, #8 1126 .LCFI11: 1127 .cfi_remember_state 1128 .cfi_def_cfa_offset 24 1129 @ sp needed 1130 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1131 .LVL92: 1132 .L93: 1133 .LCFI12: 1134 .cfi_restore_state 5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1135 .loc 1 5392 5 is_stmt 1 view .LVU354 5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1136 .loc 1 5392 9 is_stmt 0 view .LVU355 1137 004a 2368 ldr r3, [r4] 5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1138 .loc 1 5392 28 view .LVU356 1139 004c 4FEA1822 lsr r2, r8, #8 5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1140 .loc 1 5392 26 view .LVU357 1141 0050 9A62 str r2, [r3, #40] 5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1142 .loc 1 5395 5 is_stmt 1 view .LVU358 5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 146 1143 .loc 1 5395 9 is_stmt 0 view .LVU359 1144 0052 3A46 mov r2, r7 1145 0054 3146 mov r1, r6 1146 0056 2046 mov r0, r4 1147 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1148 .LVL93: 5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1149 .loc 1 5395 8 view .LVU360 1150 005c 30B9 cbnz r0, .L96 5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1151 .loc 1 5401 5 is_stmt 1 view .LVU361 5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1152 .loc 1 5401 9 is_stmt 0 view .LVU362 1153 005e 2368 ldr r3, [r4] 5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1154 .loc 1 5401 28 view .LVU363 1155 0060 5FFA88F2 uxtb r2, r8 5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1156 .loc 1 5401 26 view .LVU364 1157 0064 9A62 str r2, [r3, #40] 1158 0066 E5E7 b .L94 1159 .L95: 5379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1160 .loc 1 5379 12 view .LVU365 1161 0068 0120 movs r0, #1 1162 006a EBE7 b .L92 1163 .L96: 5397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1164 .loc 1 5397 14 view .LVU366 1165 006c 0120 movs r0, #1 1166 006e E9E7 b .L92 1167 .L99: 5407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1168 .loc 1 5407 12 view .LVU367 1169 0070 0120 movs r0, #1 1170 0072 E7E7 b .L92 1171 .L101: 1172 .align 2 1173 .L100: 1174 0074 00200080 .word -2147475456 1175 .cfi_endproc 1176 .LFE383: 1178 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1179 .align 1 1180 .syntax unified 1181 .thumb 1182 .thumb_func 1184 I2C_WaitOnSTOPFlagUntilTimeout: 1185 .LVL94: 1186 .LFB401: 6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1187 .loc 1 6439 1 is_stmt 1 view -0 1188 .cfi_startproc 1189 @ args = 0, pretend = 0, frame = 0 1190 @ frame_needed = 0, uses_anonymous_args = 0 6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1191 .loc 1 6439 1 is_stmt 0 view .LVU369 ARM GAS /tmp/ccbUHtu7.s page 147 1192 0000 70B5 push {r4, r5, r6, lr} 1193 .LCFI13: 1194 .cfi_def_cfa_offset 16 1195 .cfi_offset 4, -16 1196 .cfi_offset 5, -12 1197 .cfi_offset 6, -8 1198 .cfi_offset 14, -4 1199 0002 0546 mov r5, r0 1200 0004 0C46 mov r4, r1 1201 0006 1646 mov r6, r2 6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1202 .loc 1 6440 3 is_stmt 1 view .LVU370 1203 .LVL95: 1204 .L103: 6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1205 .loc 1 6440 51 view .LVU371 6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1206 .loc 1 6440 10 is_stmt 0 view .LVU372 1207 0008 2B68 ldr r3, [r5] 1208 000a 9B69 ldr r3, [r3, #24] 6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1209 .loc 1 6440 51 view .LVU373 1210 000c 13F0200F tst r3, #32 1211 0010 1AD1 bne .L109 6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1212 .loc 1 6443 5 is_stmt 1 view .LVU374 6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1213 .loc 1 6443 9 is_stmt 0 view .LVU375 1214 0012 3246 mov r2, r6 1215 0014 2146 mov r1, r4 1216 0016 2846 mov r0, r5 1217 0018 FFF7FEFF bl I2C_IsErrorOccurred 1218 .LVL96: 6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1219 .loc 1 6443 8 view .LVU376 1220 001c B0B9 cbnz r0, .L107 6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1221 .loc 1 6449 5 is_stmt 1 view .LVU377 6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1222 .loc 1 6449 11 is_stmt 0 view .LVU378 1223 001e FFF7FEFF bl HAL_GetTick 1224 .LVL97: 6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1225 .loc 1 6449 25 view .LVU379 1226 0022 801B subs r0, r0, r6 6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1227 .loc 1 6449 8 view .LVU380 1228 0024 A042 cmp r0, r4 1229 0026 01D8 bhi .L105 6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1230 .loc 1 6449 49 discriminator 1 view .LVU381 1231 0028 002C cmp r4, #0 1232 002a EDD1 bne .L103 1233 .L105: 6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1234 .loc 1 6451 7 is_stmt 1 view .LVU382 6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccbUHtu7.s page 148 1235 .loc 1 6451 11 is_stmt 0 view .LVU383 1236 002c 6B6C ldr r3, [r5, #68] 6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1237 .loc 1 6451 23 view .LVU384 1238 002e 43F02003 orr r3, r3, #32 1239 0032 6B64 str r3, [r5, #68] 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1240 .loc 1 6452 7 is_stmt 1 view .LVU385 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1241 .loc 1 6452 19 is_stmt 0 view .LVU386 1242 0034 2023 movs r3, #32 1243 0036 85F84130 strb r3, [r5, #65] 6453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1244 .loc 1 6453 7 is_stmt 1 view .LVU387 6453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1245 .loc 1 6453 18 is_stmt 0 view .LVU388 1246 003a 0023 movs r3, #0 1247 003c 85F84230 strb r3, [r5, #66] 6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1248 .loc 1 6456 7 is_stmt 1 view .LVU389 6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1249 .loc 1 6456 7 view .LVU390 1250 0040 85F84030 strb r3, [r5, #64] 6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1251 .loc 1 6456 7 view .LVU391 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1252 .loc 1 6458 7 view .LVU392 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1253 .loc 1 6458 14 is_stmt 0 view .LVU393 1254 0044 0120 movs r0, #1 1255 .L104: 6462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1256 .loc 1 6462 1 view .LVU394 1257 0046 70BD pop {r4, r5, r6, pc} 1258 .LVL98: 1259 .L109: 6461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1260 .loc 1 6461 10 view .LVU395 1261 0048 0020 movs r0, #0 1262 004a FCE7 b .L104 1263 .L107: 6445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1264 .loc 1 6445 14 view .LVU396 1265 004c 0120 movs r0, #1 1266 004e FAE7 b .L104 1267 .cfi_endproc 1268 .LFE401: 1270 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1271 .align 1 1272 .syntax unified 1273 .thumb 1274 .thumb_func 1276 I2C_WaitOnRXNEFlagUntilTimeout: 1277 .LVL99: 1278 .LFB402: 6474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1279 .loc 1 6474 1 is_stmt 1 view -0 ARM GAS /tmp/ccbUHtu7.s page 149 1280 .cfi_startproc 1281 @ args = 0, pretend = 0, frame = 0 1282 @ frame_needed = 0, uses_anonymous_args = 0 6474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1283 .loc 1 6474 1 is_stmt 0 view .LVU398 1284 0000 70B5 push {r4, r5, r6, lr} 1285 .LCFI14: 1286 .cfi_def_cfa_offset 16 1287 .cfi_offset 4, -16 1288 .cfi_offset 5, -12 1289 .cfi_offset 6, -8 1290 .cfi_offset 14, -4 1291 0002 0446 mov r4, r0 1292 0004 0D46 mov r5, r1 1293 0006 1646 mov r6, r2 6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1294 .loc 1 6475 3 is_stmt 1 view .LVU399 1295 .LVL100: 1296 .L111: 6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1297 .loc 1 6475 50 view .LVU400 6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1298 .loc 1 6475 10 is_stmt 0 view .LVU401 1299 0008 2368 ldr r3, [r4] 1300 000a 9B69 ldr r3, [r3, #24] 6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1301 .loc 1 6475 50 view .LVU402 1302 000c 13F0040F tst r3, #4 1303 0010 49D1 bne .L121 6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1304 .loc 1 6478 5 is_stmt 1 view .LVU403 6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1305 .loc 1 6478 9 is_stmt 0 view .LVU404 1306 0012 3246 mov r2, r6 1307 0014 2946 mov r1, r5 1308 0016 2046 mov r0, r4 1309 0018 FFF7FEFF bl I2C_IsErrorOccurred 1310 .LVL101: 6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1311 .loc 1 6478 8 view .LVU405 1312 001c 0146 mov r1, r0 1313 001e 0028 cmp r0, #0 1314 0020 43D1 bne .L119 6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1315 .loc 1 6484 5 is_stmt 1 view .LVU406 6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1316 .loc 1 6484 9 is_stmt 0 view .LVU407 1317 0022 2368 ldr r3, [r4] 1318 0024 9A69 ldr r2, [r3, #24] 6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1319 .loc 1 6484 8 view .LVU408 1320 0026 12F0200F tst r2, #32 1321 002a 13D1 bne .L122 6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1322 .loc 1 6523 5 is_stmt 1 view .LVU409 6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1323 .loc 1 6523 11 is_stmt 0 view .LVU410 ARM GAS /tmp/ccbUHtu7.s page 150 1324 002c FFF7FEFF bl HAL_GetTick 1325 .LVL102: 6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1326 .loc 1 6523 25 view .LVU411 1327 0030 801B subs r0, r0, r6 6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1328 .loc 1 6523 8 view .LVU412 1329 0032 A842 cmp r0, r5 1330 0034 01D8 bhi .L117 6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1331 .loc 1 6523 49 discriminator 1 view .LVU413 1332 0036 002D cmp r5, #0 1333 0038 E6D1 bne .L111 1334 .L117: 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1335 .loc 1 6525 7 is_stmt 1 view .LVU414 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1336 .loc 1 6525 11 is_stmt 0 view .LVU415 1337 003a 636C ldr r3, [r4, #68] 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1338 .loc 1 6525 23 view .LVU416 1339 003c 43F02003 orr r3, r3, #32 1340 0040 6364 str r3, [r4, #68] 6526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1341 .loc 1 6526 7 is_stmt 1 view .LVU417 6526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1342 .loc 1 6526 19 is_stmt 0 view .LVU418 1343 0042 2023 movs r3, #32 1344 0044 84F84130 strb r3, [r4, #65] 6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1345 .loc 1 6529 7 is_stmt 1 view .LVU419 6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1346 .loc 1 6529 7 view .LVU420 1347 0048 0023 movs r3, #0 1348 004a 84F84030 strb r3, [r4, #64] 6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1349 .loc 1 6529 7 view .LVU421 6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1350 .loc 1 6531 7 view .LVU422 6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1351 .loc 1 6531 14 is_stmt 0 view .LVU423 1352 004e 0121 movs r1, #1 1353 .L112: 6535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1354 .loc 1 6535 1 view .LVU424 1355 0050 0846 mov r0, r1 1356 0052 70BD pop {r4, r5, r6, pc} 1357 .LVL103: 1358 .L122: 6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1359 .loc 1 6488 7 is_stmt 1 view .LVU425 6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1360 .loc 1 6488 12 is_stmt 0 view .LVU426 1361 0054 9A69 ldr r2, [r3, #24] 6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1362 .loc 1 6488 10 view .LVU427 1363 0056 12F0040F tst r2, #4 ARM GAS /tmp/ccbUHtu7.s page 151 1364 005a 02D0 beq .L114 6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1365 .loc 1 6488 68 discriminator 1 view .LVU428 1366 005c 228D ldrh r2, [r4, #40] 6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1367 .loc 1 6488 60 discriminator 1 view .LVU429 1368 005e 002A cmp r2, #0 1369 0060 F6D1 bne .L112 1370 .L114: 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1371 .loc 1 6496 9 is_stmt 1 view .LVU430 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1372 .loc 1 6496 13 is_stmt 0 view .LVU431 1373 0062 9A69 ldr r2, [r3, #24] 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1374 .loc 1 6496 12 view .LVU432 1375 0064 12F0100F tst r2, #16 1376 0068 1AD0 beq .L115 6498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 1377 .loc 1 6498 11 is_stmt 1 view .LVU433 1378 006a 1022 movs r2, #16 1379 006c DA61 str r2, [r3, #28] 6499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1380 .loc 1 6499 11 view .LVU434 6499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1381 .loc 1 6499 27 is_stmt 0 view .LVU435 1382 006e 0423 movs r3, #4 1383 0070 6364 str r3, [r4, #68] 1384 .L116: 6507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1385 .loc 1 6507 9 is_stmt 1 view .LVU436 1386 0072 2368 ldr r3, [r4] 1387 0074 2022 movs r2, #32 1388 0076 DA61 str r2, [r3, #28] 6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1389 .loc 1 6510 9 view .LVU437 1390 0078 2168 ldr r1, [r4] 1391 007a 4B68 ldr r3, [r1, #4] 1392 007c 23F0FF73 bic r3, r3, #33423360 1393 0080 23F48B33 bic r3, r3, #71168 1394 0084 23F4FF73 bic r3, r3, #510 1395 0088 23F00103 bic r3, r3, #1 1396 008c 4B60 str r3, [r1, #4] 6512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1397 .loc 1 6512 9 view .LVU438 6512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1398 .loc 1 6512 21 is_stmt 0 view .LVU439 1399 008e 84F84120 strb r2, [r4, #65] 6513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1400 .loc 1 6513 9 is_stmt 1 view .LVU440 6513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1401 .loc 1 6513 20 is_stmt 0 view .LVU441 1402 0092 0023 movs r3, #0 1403 0094 84F84230 strb r3, [r4, #66] 6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1404 .loc 1 6516 9 is_stmt 1 view .LVU442 6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 152 1405 .loc 1 6516 9 view .LVU443 1406 0098 84F84030 strb r3, [r4, #64] 6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1407 .loc 1 6516 9 view .LVU444 6518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1408 .loc 1 6518 9 view .LVU445 6518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1409 .loc 1 6518 16 is_stmt 0 view .LVU446 1410 009c 0121 movs r1, #1 1411 009e D7E7 b .L112 1412 .L115: 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1413 .loc 1 6503 11 is_stmt 1 view .LVU447 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1414 .loc 1 6503 27 is_stmt 0 view .LVU448 1415 00a0 0023 movs r3, #0 1416 00a2 6364 str r3, [r4, #68] 1417 00a4 E5E7 b .L116 1418 .L121: 6534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1419 .loc 1 6534 10 view .LVU449 1420 00a6 0021 movs r1, #0 1421 00a8 D2E7 b .L112 1422 .L119: 6480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1423 .loc 1 6480 14 view .LVU450 1424 00aa 0121 movs r1, #1 1425 00ac D0E7 b .L112 1426 .cfi_endproc 1427 .LFE402: 1429 .section .text.HAL_I2C_MspInit,"ax",%progbits 1430 .align 1 1431 .weak HAL_I2C_MspInit 1432 .syntax unified 1433 .thumb 1434 .thumb_func 1436 HAL_I2C_MspInit: 1437 .LVL104: 1438 .LFB331: 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1439 .loc 1 681 1 is_stmt 1 view -0 1440 .cfi_startproc 1441 @ args = 0, pretend = 0, frame = 0 1442 @ frame_needed = 0, uses_anonymous_args = 0 1443 @ link register save eliminated. 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1444 .loc 1 683 3 view .LVU452 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1445 .loc 1 688 1 is_stmt 0 view .LVU453 1446 0000 7047 bx lr 1447 .cfi_endproc 1448 .LFE331: 1450 .section .text.HAL_I2C_Init,"ax",%progbits 1451 .align 1 1452 .global HAL_I2C_Init 1453 .syntax unified 1454 .thumb ARM GAS /tmp/ccbUHtu7.s page 153 1455 .thumb_func 1457 HAL_I2C_Init: 1458 .LVL105: 1459 .LFB329: 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1460 .loc 1 525 1 is_stmt 1 view -0 1461 .cfi_startproc 1462 @ args = 0, pretend = 0, frame = 0 1463 @ frame_needed = 0, uses_anonymous_args = 0 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1464 .loc 1 527 3 view .LVU455 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1465 .loc 1 527 6 is_stmt 0 view .LVU456 1466 0000 0028 cmp r0, #0 1467 0002 59D0 beq .L130 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1468 .loc 1 525 1 view .LVU457 1469 0004 10B5 push {r4, lr} 1470 .LCFI15: 1471 .cfi_def_cfa_offset 8 1472 .cfi_offset 4, -8 1473 .cfi_offset 14, -4 1474 0006 0446 mov r4, r0 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1475 .loc 1 533 3 is_stmt 1 view .LVU458 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1476 .loc 1 534 3 view .LVU459 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1477 .loc 1 535 3 view .LVU460 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1478 .loc 1 536 3 view .LVU461 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1479 .loc 1 537 3 view .LVU462 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1480 .loc 1 538 3 view .LVU463 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1481 .loc 1 539 3 view .LVU464 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1482 .loc 1 540 3 view .LVU465 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1483 .loc 1 542 3 view .LVU466 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1484 .loc 1 542 11 is_stmt 0 view .LVU467 1485 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1486 .loc 1 542 6 view .LVU468 1487 000c 002B cmp r3, #0 1488 000e 43D0 beq .L135 1489 .LVL106: 1490 .L126: 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1491 .loc 1 573 3 is_stmt 1 view .LVU469 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1492 .loc 1 573 15 is_stmt 0 view .LVU470 1493 0010 2423 movs r3, #36 1494 0012 84F84130 strb r3, [r4, #65] 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 154 1495 .loc 1 576 3 is_stmt 1 view .LVU471 1496 0016 2268 ldr r2, [r4] 1497 0018 1368 ldr r3, [r2] 1498 001a 23F00103 bic r3, r3, #1 1499 001e 1360 str r3, [r2] 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1500 .loc 1 580 3 view .LVU472 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1501 .loc 1 580 39 is_stmt 0 view .LVU473 1502 0020 6368 ldr r3, [r4, #4] 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1503 .loc 1 580 7 view .LVU474 1504 0022 2268 ldr r2, [r4] 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1505 .loc 1 580 47 view .LVU475 1506 0024 23F07063 bic r3, r3, #251658240 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1507 .loc 1 580 27 view .LVU476 1508 0028 1361 str r3, [r2, #16] 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1509 .loc 1 584 3 is_stmt 1 view .LVU477 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1510 .loc 1 584 7 is_stmt 0 view .LVU478 1511 002a 2268 ldr r2, [r4] 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1512 .loc 1 584 17 view .LVU479 1513 002c 9368 ldr r3, [r2, #8] 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1514 .loc 1 584 24 view .LVU480 1515 002e 23F40043 bic r3, r3, #32768 1516 0032 9360 str r3, [r2, #8] 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1517 .loc 1 587 3 is_stmt 1 view .LVU481 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1518 .loc 1 587 17 is_stmt 0 view .LVU482 1519 0034 E368 ldr r3, [r4, #12] 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1520 .loc 1 587 6 view .LVU483 1521 0036 012B cmp r3, #1 1522 0038 33D0 beq .L136 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1523 .loc 1 593 5 is_stmt 1 view .LVU484 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1524 .loc 1 593 75 is_stmt 0 view .LVU485 1525 003a A368 ldr r3, [r4, #8] 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1526 .loc 1 593 9 view .LVU486 1527 003c 2268 ldr r2, [r4] 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1528 .loc 1 593 63 view .LVU487 1529 003e 43F40443 orr r3, r3, #33792 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1530 .loc 1 593 26 view .LVU488 1531 0042 9360 str r3, [r2, #8] 1532 .L128: 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1533 .loc 1 598 3 is_stmt 1 view .LVU489 ARM GAS /tmp/ccbUHtu7.s page 155 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1534 .loc 1 598 17 is_stmt 0 view .LVU490 1535 0044 E368 ldr r3, [r4, #12] 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1536 .loc 1 598 6 view .LVU491 1537 0046 022B cmp r3, #2 1538 0048 31D0 beq .L137 1539 .L129: 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1540 .loc 1 603 3 is_stmt 1 view .LVU492 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1541 .loc 1 603 7 is_stmt 0 view .LVU493 1542 004a 2268 ldr r2, [r4] 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1543 .loc 1 603 17 view .LVU494 1544 004c 5368 ldr r3, [r2, #4] 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1545 .loc 1 603 23 view .LVU495 1546 004e 43F00073 orr r3, r3, #33554432 1547 0052 43F40043 orr r3, r3, #32768 1548 0056 5360 str r3, [r2, #4] 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1549 .loc 1 607 3 is_stmt 1 view .LVU496 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1550 .loc 1 607 7 is_stmt 0 view .LVU497 1551 0058 2268 ldr r2, [r4] 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1552 .loc 1 607 17 view .LVU498 1553 005a D368 ldr r3, [r2, #12] 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1554 .loc 1 607 24 view .LVU499 1555 005c 23F40043 bic r3, r3, #32768 1556 0060 D360 str r3, [r2, #12] 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1557 .loc 1 610 3 is_stmt 1 view .LVU500 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1558 .loc 1 610 37 is_stmt 0 view .LVU501 1559 0062 2369 ldr r3, [r4, #16] 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1560 .loc 1 610 66 view .LVU502 1561 0064 6269 ldr r2, [r4, #20] 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1562 .loc 1 610 54 view .LVU503 1563 0066 1343 orrs r3, r3, r2 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1564 .loc 1 611 38 view .LVU504 1565 0068 A169 ldr r1, [r4, #24] 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1566 .loc 1 610 7 view .LVU505 1567 006a 2268 ldr r2, [r4] 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1568 .loc 1 610 79 view .LVU506 1569 006c 43EA0123 orr r3, r3, r1, lsl #8 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1570 .loc 1 610 24 view .LVU507 1571 0070 D360 str r3, [r2, #12] 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 156 1572 .loc 1 615 3 is_stmt 1 view .LVU508 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1573 .loc 1 615 36 is_stmt 0 view .LVU509 1574 0072 E369 ldr r3, [r4, #28] 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1575 .loc 1 615 65 view .LVU510 1576 0074 216A ldr r1, [r4, #32] 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1577 .loc 1 615 7 view .LVU511 1578 0076 2268 ldr r2, [r4] 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1579 .loc 1 615 53 view .LVU512 1580 0078 0B43 orrs r3, r3, r1 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1581 .loc 1 615 23 view .LVU513 1582 007a 1360 str r3, [r2] 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1583 .loc 1 618 3 is_stmt 1 view .LVU514 1584 007c 2268 ldr r2, [r4] 1585 007e 1368 ldr r3, [r2] 1586 0080 43F00103 orr r3, r3, #1 1587 0084 1360 str r3, [r2] 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1588 .loc 1 620 3 view .LVU515 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1589 .loc 1 620 19 is_stmt 0 view .LVU516 1590 0086 0020 movs r0, #0 1591 0088 6064 str r0, [r4, #68] 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1592 .loc 1 621 3 is_stmt 1 view .LVU517 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1593 .loc 1 621 15 is_stmt 0 view .LVU518 1594 008a 2023 movs r3, #32 1595 008c 84F84130 strb r3, [r4, #65] 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1596 .loc 1 622 3 is_stmt 1 view .LVU519 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1597 .loc 1 622 23 is_stmt 0 view .LVU520 1598 0090 2063 str r0, [r4, #48] 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1599 .loc 1 623 3 is_stmt 1 view .LVU521 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1600 .loc 1 623 14 is_stmt 0 view .LVU522 1601 0092 84F84200 strb r0, [r4, #66] 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1602 .loc 1 625 3 is_stmt 1 view .LVU523 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1603 .loc 1 626 1 is_stmt 0 view .LVU524 1604 0096 10BD pop {r4, pc} 1605 .LVL107: 1606 .L135: 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1607 .loc 1 545 5 is_stmt 1 view .LVU525 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1608 .loc 1 545 16 is_stmt 0 view .LVU526 1609 0098 80F84030 strb r3, [r0, #64] 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccbUHtu7.s page 157 1610 .loc 1 569 5 is_stmt 1 view .LVU527 1611 009c FFF7FEFF bl HAL_I2C_MspInit 1612 .LVL108: 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1613 .loc 1 569 5 is_stmt 0 view .LVU528 1614 00a0 B6E7 b .L126 1615 .L136: 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1616 .loc 1 589 5 is_stmt 1 view .LVU529 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1617 .loc 1 589 56 is_stmt 0 view .LVU530 1618 00a2 A368 ldr r3, [r4, #8] 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1619 .loc 1 589 9 view .LVU531 1620 00a4 2268 ldr r2, [r4] 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1621 .loc 1 589 44 view .LVU532 1622 00a6 43F40043 orr r3, r3, #32768 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1623 .loc 1 589 26 view .LVU533 1624 00aa 9360 str r3, [r2, #8] 1625 00ac CAE7 b .L128 1626 .L137: 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1627 .loc 1 600 5 is_stmt 1 view .LVU534 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1628 .loc 1 600 9 is_stmt 0 view .LVU535 1629 00ae 2368 ldr r3, [r4] 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1630 .loc 1 600 25 view .LVU536 1631 00b0 4FF40062 mov r2, #2048 1632 00b4 5A60 str r2, [r3, #4] 1633 00b6 C8E7 b .L129 1634 .LVL109: 1635 .L130: 1636 .LCFI16: 1637 .cfi_def_cfa_offset 0 1638 .cfi_restore 4 1639 .cfi_restore 14 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1640 .loc 1 529 12 view .LVU537 1641 00b8 0120 movs r0, #1 1642 .LVL110: 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1643 .loc 1 626 1 view .LVU538 1644 00ba 7047 bx lr 1645 .cfi_endproc 1646 .LFE329: 1648 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1649 .align 1 1650 .weak HAL_I2C_MspDeInit 1651 .syntax unified 1652 .thumb 1653 .thumb_func 1655 HAL_I2C_MspDeInit: 1656 .LVL111: 1657 .LFB332: ARM GAS /tmp/ccbUHtu7.s page 158 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1658 .loc 1 697 1 is_stmt 1 view -0 1659 .cfi_startproc 1660 @ args = 0, pretend = 0, frame = 0 1661 @ frame_needed = 0, uses_anonymous_args = 0 1662 @ link register save eliminated. 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1663 .loc 1 699 3 view .LVU540 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1664 .loc 1 704 1 is_stmt 0 view .LVU541 1665 0000 7047 bx lr 1666 .cfi_endproc 1667 .LFE332: 1669 .section .text.HAL_I2C_DeInit,"ax",%progbits 1670 .align 1 1671 .global HAL_I2C_DeInit 1672 .syntax unified 1673 .thumb 1674 .thumb_func 1676 HAL_I2C_DeInit: 1677 .LVL112: 1678 .LFB330: 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1679 .loc 1 635 1 is_stmt 1 view -0 1680 .cfi_startproc 1681 @ args = 0, pretend = 0, frame = 0 1682 @ frame_needed = 0, uses_anonymous_args = 0 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1683 .loc 1 637 3 view .LVU543 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1684 .loc 1 637 6 is_stmt 0 view .LVU544 1685 0000 A8B1 cbz r0, .L141 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1686 .loc 1 635 1 view .LVU545 1687 0002 10B5 push {r4, lr} 1688 .LCFI17: 1689 .cfi_def_cfa_offset 8 1690 .cfi_offset 4, -8 1691 .cfi_offset 14, -4 1692 0004 0446 mov r4, r0 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1693 .loc 1 643 3 is_stmt 1 view .LVU546 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1694 .loc 1 645 3 view .LVU547 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1695 .loc 1 645 15 is_stmt 0 view .LVU548 1696 0006 2423 movs r3, #36 1697 0008 80F84130 strb r3, [r0, #65] 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1698 .loc 1 648 3 is_stmt 1 view .LVU549 1699 000c 0268 ldr r2, [r0] 1700 000e 1368 ldr r3, [r2] 1701 0010 23F00103 bic r3, r3, #1 1702 0014 1360 str r3, [r2] 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1703 .loc 1 660 3 view .LVU550 1704 0016 FFF7FEFF bl HAL_I2C_MspDeInit ARM GAS /tmp/ccbUHtu7.s page 159 1705 .LVL113: 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1706 .loc 1 663 3 view .LVU551 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1707 .loc 1 663 19 is_stmt 0 view .LVU552 1708 001a 0020 movs r0, #0 1709 001c 6064 str r0, [r4, #68] 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1710 .loc 1 664 3 is_stmt 1 view .LVU553 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1711 .loc 1 664 15 is_stmt 0 view .LVU554 1712 001e 84F84100 strb r0, [r4, #65] 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1713 .loc 1 665 3 is_stmt 1 view .LVU555 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1714 .loc 1 665 23 is_stmt 0 view .LVU556 1715 0022 2063 str r0, [r4, #48] 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1716 .loc 1 666 3 is_stmt 1 view .LVU557 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1717 .loc 1 666 14 is_stmt 0 view .LVU558 1718 0024 84F84200 strb r0, [r4, #66] 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1719 .loc 1 669 3 is_stmt 1 view .LVU559 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1720 .loc 1 669 3 view .LVU560 1721 0028 84F84000 strb r0, [r4, #64] 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1722 .loc 1 669 3 view .LVU561 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1723 .loc 1 671 3 view .LVU562 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1724 .loc 1 672 1 is_stmt 0 view .LVU563 1725 002c 10BD pop {r4, pc} 1726 .LVL114: 1727 .L141: 1728 .LCFI18: 1729 .cfi_def_cfa_offset 0 1730 .cfi_restore 4 1731 .cfi_restore 14 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1732 .loc 1 639 12 view .LVU564 1733 002e 0120 movs r0, #1 1734 .LVL115: 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1735 .loc 1 672 1 view .LVU565 1736 0030 7047 bx lr 1737 .cfi_endproc 1738 .LFE330: 1740 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1741 .align 1 1742 .global HAL_I2C_Master_Transmit 1743 .syntax unified 1744 .thumb 1745 .thumb_func 1747 HAL_I2C_Master_Transmit: 1748 .LVL116: ARM GAS /tmp/ccbUHtu7.s page 160 1749 .LFB333: 1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1750 .loc 1 1119 1 is_stmt 1 view -0 1751 .cfi_startproc 1752 @ args = 4, pretend = 0, frame = 0 1753 @ frame_needed = 0, uses_anonymous_args = 0 1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1754 .loc 1 1119 1 is_stmt 0 view .LVU567 1755 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1756 .LCFI19: 1757 .cfi_def_cfa_offset 32 1758 .cfi_offset 4, -32 1759 .cfi_offset 5, -28 1760 .cfi_offset 6, -24 1761 .cfi_offset 7, -20 1762 .cfi_offset 8, -16 1763 .cfi_offset 9, -12 1764 .cfi_offset 10, -8 1765 .cfi_offset 14, -4 1766 0004 82B0 sub sp, sp, #8 1767 .LCFI20: 1768 .cfi_def_cfa_offset 40 1769 0006 0F46 mov r7, r1 1770 0008 0A9E ldr r6, [sp, #40] 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1771 .loc 1 1120 3 is_stmt 1 view .LVU568 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1772 .loc 1 1122 3 view .LVU569 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1773 .loc 1 1122 11 is_stmt 0 view .LVU570 1774 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1775 .LVL117: 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1776 .loc 1 1122 11 view .LVU571 1777 000e C9B2 uxtb r1, r1 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1778 .loc 1 1122 6 view .LVU572 1779 0010 2029 cmp r1, #32 1780 0012 40F0A380 bne .L154 1781 0016 0446 mov r4, r0 1782 0018 9046 mov r8, r2 1783 001a 9946 mov r9, r3 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1784 .loc 1 1125 5 is_stmt 1 view .LVU573 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1785 .loc 1 1125 5 view .LVU574 1786 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1787 .LVL118: 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1788 .loc 1 1125 5 is_stmt 0 view .LVU575 1789 0020 012B cmp r3, #1 1790 0022 00F09F80 beq .L155 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1791 .loc 1 1125 5 is_stmt 1 discriminator 2 view .LVU576 1792 0026 4FF0010A mov r10, #1 1793 002a 80F840A0 strb r10, [r0, #64] 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 161 1794 .loc 1 1125 5 discriminator 2 view .LVU577 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1795 .loc 1 1128 5 discriminator 2 view .LVU578 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1796 .loc 1 1128 17 is_stmt 0 discriminator 2 view .LVU579 1797 002e FFF7FEFF bl HAL_GetTick 1798 .LVL119: 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1799 .loc 1 1128 17 discriminator 2 view .LVU580 1800 0032 0546 mov r5, r0 1801 .LVL120: 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1802 .loc 1 1130 5 is_stmt 1 discriminator 2 view .LVU581 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1803 .loc 1 1130 9 is_stmt 0 discriminator 2 view .LVU582 1804 0034 0090 str r0, [sp] 1805 0036 1923 movs r3, #25 1806 0038 5246 mov r2, r10 1807 003a 4FF40041 mov r1, #32768 1808 003e 2046 mov r0, r4 1809 .LVL121: 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1810 .loc 1 1130 9 discriminator 2 view .LVU583 1811 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1812 .LVL122: 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1813 .loc 1 1130 8 discriminator 2 view .LVU584 1814 0044 0028 cmp r0, #0 1815 0046 40F08F80 bne .L156 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1816 .loc 1 1135 5 is_stmt 1 view .LVU585 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1817 .loc 1 1135 21 is_stmt 0 view .LVU586 1818 004a 2123 movs r3, #33 1819 004c 84F84130 strb r3, [r4, #65] 1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1820 .loc 1 1136 5 is_stmt 1 view .LVU587 1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1821 .loc 1 1136 21 is_stmt 0 view .LVU588 1822 0050 1023 movs r3, #16 1823 0052 84F84230 strb r3, [r4, #66] 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1824 .loc 1 1137 5 is_stmt 1 view .LVU589 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1825 .loc 1 1137 21 is_stmt 0 view .LVU590 1826 0056 0023 movs r3, #0 1827 0058 6364 str r3, [r4, #68] 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1828 .loc 1 1140 5 is_stmt 1 view .LVU591 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1829 .loc 1 1140 21 is_stmt 0 view .LVU592 1830 005a C4F82480 str r8, [r4, #36] 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1831 .loc 1 1141 5 is_stmt 1 view .LVU593 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1832 .loc 1 1141 21 is_stmt 0 view .LVU594 1833 005e A4F82A90 strh r9, [r4, #42] @ movhi ARM GAS /tmp/ccbUHtu7.s page 162 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1834 .loc 1 1142 5 is_stmt 1 view .LVU595 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1835 .loc 1 1142 21 is_stmt 0 view .LVU596 1836 0062 6363 str r3, [r4, #52] 1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1837 .loc 1 1146 5 is_stmt 1 view .LVU597 1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1838 .loc 1 1146 13 is_stmt 0 view .LVU598 1839 0064 638D ldrh r3, [r4, #42] 1840 0066 9BB2 uxth r3, r3 1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1841 .loc 1 1146 8 view .LVU599 1842 0068 FF2B cmp r3, #255 1843 006a 0AD9 bls .L148 1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1844 .loc 1 1148 7 is_stmt 1 view .LVU600 1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1845 .loc 1 1148 22 is_stmt 0 view .LVU601 1846 006c FF22 movs r2, #255 1847 006e 2285 strh r2, [r4, #40] @ movhi 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1848 .loc 1 1149 7 is_stmt 1 view .LVU602 1849 0070 414B ldr r3, .L162 1850 0072 0093 str r3, [sp] 1851 0074 4FF08073 mov r3, #16777216 1852 0078 3946 mov r1, r7 1853 007a 2046 mov r0, r4 1854 007c FFF7FEFF bl I2C_TransferConfig 1855 .LVL123: 1856 0080 18E0 b .L150 1857 .L148: 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1858 .loc 1 1154 7 view .LVU603 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1859 .loc 1 1154 28 is_stmt 0 view .LVU604 1860 0082 628D ldrh r2, [r4, #42] 1861 0084 92B2 uxth r2, r2 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1862 .loc 1 1154 22 view .LVU605 1863 0086 2285 strh r2, [r4, #40] @ movhi 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1864 .loc 1 1155 7 is_stmt 1 view .LVU606 1865 0088 3B4B ldr r3, .L162 1866 008a 0093 str r3, [sp] 1867 008c 4FF00073 mov r3, #33554432 1868 0090 D2B2 uxtb r2, r2 1869 0092 3946 mov r1, r7 1870 0094 2046 mov r0, r4 1871 0096 FFF7FEFF bl I2C_TransferConfig 1872 .LVL124: 1873 009a 0BE0 b .L150 1874 .L152: 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1875 .loc 1 1191 11 view .LVU607 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1876 .loc 1 1191 32 is_stmt 0 view .LVU608 ARM GAS /tmp/ccbUHtu7.s page 163 1877 009c 628D ldrh r2, [r4, #42] 1878 009e 92B2 uxth r2, r2 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1879 .loc 1 1191 26 view .LVU609 1880 00a0 2285 strh r2, [r4, #40] @ movhi 1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1881 .loc 1 1192 11 is_stmt 1 view .LVU610 1882 00a2 0023 movs r3, #0 1883 00a4 0093 str r3, [sp] 1884 00a6 4FF00073 mov r3, #33554432 1885 00aa D2B2 uxtb r2, r2 1886 00ac 3946 mov r1, r7 1887 00ae 2046 mov r0, r4 1888 00b0 FFF7FEFF bl I2C_TransferConfig 1889 .LVL125: 1890 .L150: 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1891 .loc 1 1159 28 view .LVU611 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1892 .loc 1 1159 16 is_stmt 0 view .LVU612 1893 00b4 638D ldrh r3, [r4, #42] 1894 00b6 9BB2 uxth r3, r3 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1895 .loc 1 1159 28 view .LVU613 1896 00b8 002B cmp r3, #0 1897 00ba 33D0 beq .L161 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1898 .loc 1 1162 7 is_stmt 1 view .LVU614 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1899 .loc 1 1162 11 is_stmt 0 view .LVU615 1900 00bc 2A46 mov r2, r5 1901 00be 3146 mov r1, r6 1902 00c0 2046 mov r0, r4 1903 00c2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1904 .LVL126: 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1905 .loc 1 1162 10 view .LVU616 1906 00c6 0028 cmp r0, #0 1907 00c8 50D1 bne .L157 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1908 .loc 1 1167 7 is_stmt 1 view .LVU617 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1909 .loc 1 1167 35 is_stmt 0 view .LVU618 1910 00ca 626A ldr r2, [r4, #36] 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1911 .loc 1 1167 11 view .LVU619 1912 00cc 2368 ldr r3, [r4] 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1913 .loc 1 1167 30 view .LVU620 1914 00ce 1278 ldrb r2, [r2] @ zero_extendqisi2 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1915 .loc 1 1167 28 view .LVU621 1916 00d0 9A62 str r2, [r3, #40] 1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1917 .loc 1 1170 7 is_stmt 1 view .LVU622 1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1918 .loc 1 1170 11 is_stmt 0 view .LVU623 ARM GAS /tmp/ccbUHtu7.s page 164 1919 00d2 636A ldr r3, [r4, #36] 1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1920 .loc 1 1170 21 view .LVU624 1921 00d4 0133 adds r3, r3, #1 1922 00d6 6362 str r3, [r4, #36] 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1923 .loc 1 1172 7 is_stmt 1 view .LVU625 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1924 .loc 1 1172 11 is_stmt 0 view .LVU626 1925 00d8 638D ldrh r3, [r4, #42] 1926 00da 9BB2 uxth r3, r3 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1927 .loc 1 1172 22 view .LVU627 1928 00dc 013B subs r3, r3, #1 1929 00de 9BB2 uxth r3, r3 1930 00e0 6385 strh r3, [r4, #42] @ movhi 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1931 .loc 1 1173 7 is_stmt 1 view .LVU628 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1932 .loc 1 1173 11 is_stmt 0 view .LVU629 1933 00e2 238D ldrh r3, [r4, #40] 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1934 .loc 1 1173 21 view .LVU630 1935 00e4 013B subs r3, r3, #1 1936 00e6 9BB2 uxth r3, r3 1937 00e8 2385 strh r3, [r4, #40] @ movhi 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1938 .loc 1 1175 7 is_stmt 1 view .LVU631 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1939 .loc 1 1175 16 is_stmt 0 view .LVU632 1940 00ea 628D ldrh r2, [r4, #42] 1941 00ec 92B2 uxth r2, r2 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1942 .loc 1 1175 10 view .LVU633 1943 00ee 002A cmp r2, #0 1944 00f0 E0D0 beq .L150 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1945 .loc 1 1175 35 discriminator 1 view .LVU634 1946 00f2 002B cmp r3, #0 1947 00f4 DED1 bne .L150 1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1948 .loc 1 1178 9 is_stmt 1 view .LVU635 1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1949 .loc 1 1178 13 is_stmt 0 view .LVU636 1950 00f6 0095 str r5, [sp] 1951 00f8 3346 mov r3, r6 1952 00fa 0022 movs r2, #0 1953 00fc 8021 movs r1, #128 1954 00fe 2046 mov r0, r4 1955 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1956 .LVL127: 1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1957 .loc 1 1178 12 view .LVU637 1958 0104 A0BB cbnz r0, .L158 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1959 .loc 1 1183 9 is_stmt 1 view .LVU638 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 165 1960 .loc 1 1183 17 is_stmt 0 view .LVU639 1961 0106 638D ldrh r3, [r4, #42] 1962 0108 9BB2 uxth r3, r3 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1963 .loc 1 1183 12 view .LVU640 1964 010a FF2B cmp r3, #255 1965 010c C6D9 bls .L152 1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1966 .loc 1 1185 11 is_stmt 1 view .LVU641 1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1967 .loc 1 1185 26 is_stmt 0 view .LVU642 1968 010e FF22 movs r2, #255 1969 0110 2285 strh r2, [r4, #40] @ movhi 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1970 .loc 1 1186 11 is_stmt 1 view .LVU643 1971 0112 0023 movs r3, #0 1972 0114 0093 str r3, [sp] 1973 0116 4FF08073 mov r3, #16777216 1974 011a 3946 mov r1, r7 1975 011c 2046 mov r0, r4 1976 011e FFF7FEFF bl I2C_TransferConfig 1977 .LVL128: 1978 0122 C7E7 b .L150 1979 .L161: 1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1980 .loc 1 1200 5 view .LVU644 1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1981 .loc 1 1200 9 is_stmt 0 view .LVU645 1982 0124 2A46 mov r2, r5 1983 0126 3146 mov r1, r6 1984 0128 2046 mov r0, r4 1985 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 1986 .LVL129: 1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1987 .loc 1 1200 8 view .LVU646 1988 012e 08BB cbnz r0, .L159 1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1989 .loc 1 1206 5 is_stmt 1 view .LVU647 1990 0130 2368 ldr r3, [r4] 1991 0132 2022 movs r2, #32 1992 0134 DA61 str r2, [r3, #28] 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1993 .loc 1 1209 5 view .LVU648 1994 0136 2168 ldr r1, [r4] 1995 0138 4B68 ldr r3, [r1, #4] 1996 013a 23F0FF73 bic r3, r3, #33423360 1997 013e 23F48B33 bic r3, r3, #71168 1998 0142 23F4FF73 bic r3, r3, #510 1999 0146 23F00103 bic r3, r3, #1 2000 014a 4B60 str r3, [r1, #4] 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2001 .loc 1 1211 5 view .LVU649 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2002 .loc 1 1211 17 is_stmt 0 view .LVU650 2003 014c 84F84120 strb r2, [r4, #65] 1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2004 .loc 1 1212 5 is_stmt 1 view .LVU651 ARM GAS /tmp/ccbUHtu7.s page 166 1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2005 .loc 1 1212 17 is_stmt 0 view .LVU652 2006 0150 0023 movs r3, #0 2007 0152 84F84230 strb r3, [r4, #66] 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2008 .loc 1 1215 5 is_stmt 1 view .LVU653 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2009 .loc 1 1215 5 view .LVU654 2010 0156 84F84030 strb r3, [r4, #64] 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2011 .loc 1 1215 5 view .LVU655 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2012 .loc 1 1217 5 view .LVU656 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2013 .loc 1 1217 12 is_stmt 0 view .LVU657 2014 015a 00E0 b .L147 2015 .LVL130: 2016 .L154: 1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2017 .loc 1 1221 12 view .LVU658 2018 015c 0220 movs r0, #2 2019 .LVL131: 2020 .L147: 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2021 .loc 1 1223 1 view .LVU659 2022 015e 02B0 add sp, sp, #8 2023 .LCFI21: 2024 .cfi_remember_state 2025 .cfi_def_cfa_offset 32 2026 @ sp needed 2027 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2028 .LVL132: 2029 .L155: 2030 .LCFI22: 2031 .cfi_restore_state 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2032 .loc 1 1125 5 view .LVU660 2033 0164 0220 movs r0, #2 2034 .LVL133: 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2035 .loc 1 1125 5 view .LVU661 2036 0166 FAE7 b .L147 2037 .LVL134: 2038 .L156: 1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2039 .loc 1 1132 14 view .LVU662 2040 0168 0120 movs r0, #1 2041 016a F8E7 b .L147 2042 .L157: 1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2043 .loc 1 1164 16 view .LVU663 2044 016c 0120 movs r0, #1 2045 016e F6E7 b .L147 2046 .L158: 1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2047 .loc 1 1180 18 view .LVU664 2048 0170 0120 movs r0, #1 ARM GAS /tmp/ccbUHtu7.s page 167 2049 0172 F4E7 b .L147 2050 .L159: 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2051 .loc 1 1202 14 view .LVU665 2052 0174 0120 movs r0, #1 2053 0176 F2E7 b .L147 2054 .L163: 2055 .align 2 2056 .L162: 2057 0178 00200080 .word -2147475456 2058 .cfi_endproc 2059 .LFE333: 2061 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2062 .align 1 2063 .global HAL_I2C_Master_Receive 2064 .syntax unified 2065 .thumb 2066 .thumb_func 2068 HAL_I2C_Master_Receive: 2069 .LVL135: 2070 .LFB334: 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2071 .loc 1 1238 1 is_stmt 1 view -0 2072 .cfi_startproc 2073 @ args = 4, pretend = 0, frame = 0 2074 @ frame_needed = 0, uses_anonymous_args = 0 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2075 .loc 1 1238 1 is_stmt 0 view .LVU667 2076 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2077 .LCFI23: 2078 .cfi_def_cfa_offset 32 2079 .cfi_offset 4, -32 2080 .cfi_offset 5, -28 2081 .cfi_offset 6, -24 2082 .cfi_offset 7, -20 2083 .cfi_offset 8, -16 2084 .cfi_offset 9, -12 2085 .cfi_offset 10, -8 2086 .cfi_offset 14, -4 2087 0004 82B0 sub sp, sp, #8 2088 .LCFI24: 2089 .cfi_def_cfa_offset 40 2090 0006 0F46 mov r7, r1 2091 0008 0A9E ldr r6, [sp, #40] 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2092 .loc 1 1239 3 is_stmt 1 view .LVU668 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2093 .loc 1 1241 3 view .LVU669 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2094 .loc 1 1241 11 is_stmt 0 view .LVU670 2095 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 2096 .LVL136: 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2097 .loc 1 1241 11 view .LVU671 2098 000e C9B2 uxtb r1, r1 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2099 .loc 1 1241 6 view .LVU672 ARM GAS /tmp/ccbUHtu7.s page 168 2100 0010 2029 cmp r1, #32 2101 0012 40F0A280 bne .L172 2102 0016 0446 mov r4, r0 2103 0018 9046 mov r8, r2 2104 001a 9946 mov r9, r3 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2105 .loc 1 1244 5 is_stmt 1 view .LVU673 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2106 .loc 1 1244 5 view .LVU674 2107 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2108 .LVL137: 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2109 .loc 1 1244 5 is_stmt 0 view .LVU675 2110 0020 012B cmp r3, #1 2111 0022 00F09E80 beq .L173 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2112 .loc 1 1244 5 is_stmt 1 discriminator 2 view .LVU676 2113 0026 4FF0010A mov r10, #1 2114 002a 80F840A0 strb r10, [r0, #64] 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2115 .loc 1 1244 5 discriminator 2 view .LVU677 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2116 .loc 1 1247 5 discriminator 2 view .LVU678 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2117 .loc 1 1247 17 is_stmt 0 discriminator 2 view .LVU679 2118 002e FFF7FEFF bl HAL_GetTick 2119 .LVL138: 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2120 .loc 1 1247 17 discriminator 2 view .LVU680 2121 0032 0546 mov r5, r0 2122 .LVL139: 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2123 .loc 1 1249 5 is_stmt 1 discriminator 2 view .LVU681 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2124 .loc 1 1249 9 is_stmt 0 discriminator 2 view .LVU682 2125 0034 0090 str r0, [sp] 2126 0036 1923 movs r3, #25 2127 0038 5246 mov r2, r10 2128 003a 4FF40041 mov r1, #32768 2129 003e 2046 mov r0, r4 2130 .LVL140: 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2131 .loc 1 1249 9 discriminator 2 view .LVU683 2132 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2133 .LVL141: 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2134 .loc 1 1249 8 discriminator 2 view .LVU684 2135 0044 0028 cmp r0, #0 2136 0046 40F08E80 bne .L174 1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2137 .loc 1 1254 5 is_stmt 1 view .LVU685 1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2138 .loc 1 1254 21 is_stmt 0 view .LVU686 2139 004a 2223 movs r3, #34 2140 004c 84F84130 strb r3, [r4, #65] 1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2141 .loc 1 1255 5 is_stmt 1 view .LVU687 ARM GAS /tmp/ccbUHtu7.s page 169 1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2142 .loc 1 1255 21 is_stmt 0 view .LVU688 2143 0050 1023 movs r3, #16 2144 0052 84F84230 strb r3, [r4, #66] 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2145 .loc 1 1256 5 is_stmt 1 view .LVU689 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2146 .loc 1 1256 21 is_stmt 0 view .LVU690 2147 0056 0023 movs r3, #0 2148 0058 6364 str r3, [r4, #68] 1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2149 .loc 1 1259 5 is_stmt 1 view .LVU691 1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2150 .loc 1 1259 21 is_stmt 0 view .LVU692 2151 005a C4F82480 str r8, [r4, #36] 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2152 .loc 1 1260 5 is_stmt 1 view .LVU693 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2153 .loc 1 1260 21 is_stmt 0 view .LVU694 2154 005e A4F82A90 strh r9, [r4, #42] @ movhi 1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2155 .loc 1 1261 5 is_stmt 1 view .LVU695 1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2156 .loc 1 1261 21 is_stmt 0 view .LVU696 2157 0062 6363 str r3, [r4, #52] 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2158 .loc 1 1265 5 is_stmt 1 view .LVU697 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2159 .loc 1 1265 13 is_stmt 0 view .LVU698 2160 0064 638D ldrh r3, [r4, #42] 2161 0066 9BB2 uxth r3, r3 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2162 .loc 1 1265 8 view .LVU699 2163 0068 FF2B cmp r3, #255 2164 006a 0AD9 bls .L166 1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2165 .loc 1 1267 7 is_stmt 1 view .LVU700 1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2166 .loc 1 1267 22 is_stmt 0 view .LVU701 2167 006c FF22 movs r2, #255 2168 006e 2285 strh r2, [r4, #40] @ movhi 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2169 .loc 1 1268 7 is_stmt 1 view .LVU702 2170 0070 414B ldr r3, .L180 2171 0072 0093 str r3, [sp] 2172 0074 4FF08073 mov r3, #16777216 2173 0078 3946 mov r1, r7 2174 007a 2046 mov r0, r4 2175 007c FFF7FEFF bl I2C_TransferConfig 2176 .LVL142: 2177 0080 18E0 b .L168 2178 .L166: 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2179 .loc 1 1273 7 view .LVU703 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2180 .loc 1 1273 28 is_stmt 0 view .LVU704 2181 0082 628D ldrh r2, [r4, #42] ARM GAS /tmp/ccbUHtu7.s page 170 2182 0084 92B2 uxth r2, r2 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2183 .loc 1 1273 22 view .LVU705 2184 0086 2285 strh r2, [r4, #40] @ movhi 1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2185 .loc 1 1274 7 is_stmt 1 view .LVU706 2186 0088 3B4B ldr r3, .L180 2187 008a 0093 str r3, [sp] 2188 008c 4FF00073 mov r3, #33554432 2189 0090 D2B2 uxtb r2, r2 2190 0092 3946 mov r1, r7 2191 0094 2046 mov r0, r4 2192 0096 FFF7FEFF bl I2C_TransferConfig 2193 .LVL143: 2194 009a 0BE0 b .L168 2195 .L170: 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2196 .loc 1 1311 11 view .LVU707 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2197 .loc 1 1311 32 is_stmt 0 view .LVU708 2198 009c 628D ldrh r2, [r4, #42] 2199 009e 92B2 uxth r2, r2 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2200 .loc 1 1311 26 view .LVU709 2201 00a0 2285 strh r2, [r4, #40] @ movhi 1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2202 .loc 1 1312 11 is_stmt 1 view .LVU710 2203 00a2 0023 movs r3, #0 2204 00a4 0093 str r3, [sp] 2205 00a6 4FF00073 mov r3, #33554432 2206 00aa D2B2 uxtb r2, r2 2207 00ac 3946 mov r1, r7 2208 00ae 2046 mov r0, r4 2209 00b0 FFF7FEFF bl I2C_TransferConfig 2210 .LVL144: 2211 .L168: 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2212 .loc 1 1278 28 view .LVU711 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2213 .loc 1 1278 16 is_stmt 0 view .LVU712 2214 00b4 638D ldrh r3, [r4, #42] 2215 00b6 9BB2 uxth r3, r3 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2216 .loc 1 1278 28 view .LVU713 2217 00b8 002B cmp r3, #0 2218 00ba 32D0 beq .L179 1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2219 .loc 1 1281 7 is_stmt 1 view .LVU714 1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2220 .loc 1 1281 11 is_stmt 0 view .LVU715 2221 00bc 2A46 mov r2, r5 2222 00be 3146 mov r1, r6 2223 00c0 2046 mov r0, r4 2224 00c2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2225 .LVL145: 1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2226 .loc 1 1281 10 view .LVU716 ARM GAS /tmp/ccbUHtu7.s page 171 2227 00c6 0028 cmp r0, #0 2228 00c8 4FD1 bne .L175 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2229 .loc 1 1287 7 is_stmt 1 view .LVU717 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2230 .loc 1 1287 38 is_stmt 0 view .LVU718 2231 00ca 2368 ldr r3, [r4] 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2232 .loc 1 1287 48 view .LVU719 2233 00cc 5A6A ldr r2, [r3, #36] 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2234 .loc 1 1287 12 view .LVU720 2235 00ce 636A ldr r3, [r4, #36] 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2236 .loc 1 1287 23 view .LVU721 2237 00d0 1A70 strb r2, [r3] 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2238 .loc 1 1290 7 is_stmt 1 view .LVU722 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2239 .loc 1 1290 11 is_stmt 0 view .LVU723 2240 00d2 636A ldr r3, [r4, #36] 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2241 .loc 1 1290 21 view .LVU724 2242 00d4 0133 adds r3, r3, #1 2243 00d6 6362 str r3, [r4, #36] 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2244 .loc 1 1292 7 is_stmt 1 view .LVU725 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2245 .loc 1 1292 11 is_stmt 0 view .LVU726 2246 00d8 228D ldrh r2, [r4, #40] 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2247 .loc 1 1292 21 view .LVU727 2248 00da 013A subs r2, r2, #1 2249 00dc 92B2 uxth r2, r2 2250 00de 2285 strh r2, [r4, #40] @ movhi 1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2251 .loc 1 1293 7 is_stmt 1 view .LVU728 1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2252 .loc 1 1293 11 is_stmt 0 view .LVU729 2253 00e0 638D ldrh r3, [r4, #42] 2254 00e2 9BB2 uxth r3, r3 1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2255 .loc 1 1293 22 view .LVU730 2256 00e4 013B subs r3, r3, #1 2257 00e6 9BB2 uxth r3, r3 2258 00e8 6385 strh r3, [r4, #42] @ movhi 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2259 .loc 1 1295 7 is_stmt 1 view .LVU731 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2260 .loc 1 1295 16 is_stmt 0 view .LVU732 2261 00ea 638D ldrh r3, [r4, #42] 2262 00ec 9BB2 uxth r3, r3 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2263 .loc 1 1295 10 view .LVU733 2264 00ee 002B cmp r3, #0 2265 00f0 E0D0 beq .L168 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 172 2266 .loc 1 1295 35 discriminator 1 view .LVU734 2267 00f2 002A cmp r2, #0 2268 00f4 DED1 bne .L168 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2269 .loc 1 1298 9 is_stmt 1 view .LVU735 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2270 .loc 1 1298 13 is_stmt 0 view .LVU736 2271 00f6 0095 str r5, [sp] 2272 00f8 3346 mov r3, r6 2273 00fa 8021 movs r1, #128 2274 00fc 2046 mov r0, r4 2275 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2276 .LVL146: 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2277 .loc 1 1298 12 view .LVU737 2278 0102 A0BB cbnz r0, .L176 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2279 .loc 1 1303 9 is_stmt 1 view .LVU738 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2280 .loc 1 1303 17 is_stmt 0 view .LVU739 2281 0104 638D ldrh r3, [r4, #42] 2282 0106 9BB2 uxth r3, r3 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2283 .loc 1 1303 12 view .LVU740 2284 0108 FF2B cmp r3, #255 2285 010a C7D9 bls .L170 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2286 .loc 1 1305 11 is_stmt 1 view .LVU741 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2287 .loc 1 1305 26 is_stmt 0 view .LVU742 2288 010c FF22 movs r2, #255 2289 010e 2285 strh r2, [r4, #40] @ movhi 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2290 .loc 1 1306 11 is_stmt 1 view .LVU743 2291 0110 0023 movs r3, #0 2292 0112 0093 str r3, [sp] 2293 0114 4FF08073 mov r3, #16777216 2294 0118 3946 mov r1, r7 2295 011a 2046 mov r0, r4 2296 011c FFF7FEFF bl I2C_TransferConfig 2297 .LVL147: 2298 0120 C8E7 b .L168 2299 .L179: 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2300 .loc 1 1320 5 view .LVU744 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2301 .loc 1 1320 9 is_stmt 0 view .LVU745 2302 0122 2A46 mov r2, r5 2303 0124 3146 mov r1, r6 2304 0126 2046 mov r0, r4 2305 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2306 .LVL148: 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2307 .loc 1 1320 8 view .LVU746 2308 012c 08BB cbnz r0, .L177 1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2309 .loc 1 1326 5 is_stmt 1 view .LVU747 ARM GAS /tmp/ccbUHtu7.s page 173 2310 012e 2368 ldr r3, [r4] 2311 0130 2022 movs r2, #32 2312 0132 DA61 str r2, [r3, #28] 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2313 .loc 1 1329 5 view .LVU748 2314 0134 2168 ldr r1, [r4] 2315 0136 4B68 ldr r3, [r1, #4] 2316 0138 23F0FF73 bic r3, r3, #33423360 2317 013c 23F48B33 bic r3, r3, #71168 2318 0140 23F4FF73 bic r3, r3, #510 2319 0144 23F00103 bic r3, r3, #1 2320 0148 4B60 str r3, [r1, #4] 1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2321 .loc 1 1331 5 view .LVU749 1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2322 .loc 1 1331 17 is_stmt 0 view .LVU750 2323 014a 84F84120 strb r2, [r4, #65] 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2324 .loc 1 1332 5 is_stmt 1 view .LVU751 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2325 .loc 1 1332 17 is_stmt 0 view .LVU752 2326 014e 0023 movs r3, #0 2327 0150 84F84230 strb r3, [r4, #66] 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2328 .loc 1 1335 5 is_stmt 1 view .LVU753 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2329 .loc 1 1335 5 view .LVU754 2330 0154 84F84030 strb r3, [r4, #64] 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2331 .loc 1 1335 5 view .LVU755 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2332 .loc 1 1337 5 view .LVU756 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2333 .loc 1 1337 12 is_stmt 0 view .LVU757 2334 0158 00E0 b .L165 2335 .LVL149: 2336 .L172: 1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2337 .loc 1 1341 12 view .LVU758 2338 015a 0220 movs r0, #2 2339 .LVL150: 2340 .L165: 1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2341 .loc 1 1343 1 view .LVU759 2342 015c 02B0 add sp, sp, #8 2343 .LCFI25: 2344 .cfi_remember_state 2345 .cfi_def_cfa_offset 32 2346 @ sp needed 2347 015e BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2348 .LVL151: 2349 .L173: 2350 .LCFI26: 2351 .cfi_restore_state 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2352 .loc 1 1244 5 view .LVU760 2353 0162 0220 movs r0, #2 ARM GAS /tmp/ccbUHtu7.s page 174 2354 .LVL152: 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2355 .loc 1 1244 5 view .LVU761 2356 0164 FAE7 b .L165 2357 .LVL153: 2358 .L174: 1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2359 .loc 1 1251 14 view .LVU762 2360 0166 0120 movs r0, #1 2361 0168 F8E7 b .L165 2362 .L175: 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2363 .loc 1 1283 16 view .LVU763 2364 016a 0120 movs r0, #1 2365 016c F6E7 b .L165 2366 .L176: 1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2367 .loc 1 1300 18 view .LVU764 2368 016e 0120 movs r0, #1 2369 0170 F4E7 b .L165 2370 .L177: 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2371 .loc 1 1322 14 view .LVU765 2372 0172 0120 movs r0, #1 2373 0174 F2E7 b .L165 2374 .L181: 2375 0176 00BF .align 2 2376 .L180: 2377 0178 00240080 .word -2147474432 2378 .cfi_endproc 2379 .LFE334: 2381 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2382 .align 1 2383 .global HAL_I2C_Slave_Transmit 2384 .syntax unified 2385 .thumb 2386 .thumb_func 2388 HAL_I2C_Slave_Transmit: 2389 .LVL154: 2390 .LFB335: 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2391 .loc 1 1356 1 is_stmt 1 view -0 2392 .cfi_startproc 2393 @ args = 0, pretend = 0, frame = 0 2394 @ frame_needed = 0, uses_anonymous_args = 0 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2395 .loc 1 1356 1 is_stmt 0 view .LVU767 2396 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2397 .LCFI27: 2398 .cfi_def_cfa_offset 24 2399 .cfi_offset 4, -24 2400 .cfi_offset 5, -20 2401 .cfi_offset 6, -16 2402 .cfi_offset 7, -12 2403 .cfi_offset 8, -8 2404 .cfi_offset 14, -4 2405 0004 82B0 sub sp, sp, #8 ARM GAS /tmp/ccbUHtu7.s page 175 2406 .LCFI28: 2407 .cfi_def_cfa_offset 32 2408 0006 1D46 mov r5, r3 1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2409 .loc 1 1357 3 is_stmt 1 view .LVU768 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2410 .loc 1 1359 3 view .LVU769 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2411 .loc 1 1359 11 is_stmt 0 view .LVU770 2412 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2413 .LVL155: 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2414 .loc 1 1359 11 view .LVU771 2415 000c DBB2 uxtb r3, r3 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2416 .loc 1 1359 6 view .LVU772 2417 000e 202B cmp r3, #32 2418 0010 40F0C880 bne .L195 2419 0014 0446 mov r4, r0 2420 0016 0F46 mov r7, r1 2421 0018 9046 mov r8, r2 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2422 .loc 1 1361 5 is_stmt 1 view .LVU773 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2423 .loc 1 1361 8 is_stmt 0 view .LVU774 2424 001a 0029 cmp r1, #0 2425 001c 52D0 beq .L184 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2426 .loc 1 1361 25 discriminator 1 view .LVU775 2427 001e 002A cmp r2, #0 2428 0020 50D0 beq .L184 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2429 .loc 1 1367 5 is_stmt 1 view .LVU776 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2430 .loc 1 1367 5 view .LVU777 2431 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2432 0026 012B cmp r3, #1 2433 0028 00F0C080 beq .L196 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2434 .loc 1 1367 5 discriminator 2 view .LVU778 2435 002c 0123 movs r3, #1 2436 002e 80F84030 strb r3, [r0, #64] 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2437 .loc 1 1367 5 discriminator 2 view .LVU779 1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2438 .loc 1 1370 5 discriminator 2 view .LVU780 1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2439 .loc 1 1370 17 is_stmt 0 discriminator 2 view .LVU781 2440 0032 FFF7FEFF bl HAL_GetTick 2441 .LVL156: 1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2442 .loc 1 1370 17 discriminator 2 view .LVU782 2443 0036 0646 mov r6, r0 2444 .LVL157: 1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2445 .loc 1 1372 5 is_stmt 1 discriminator 2 view .LVU783 1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; ARM GAS /tmp/ccbUHtu7.s page 176 2446 .loc 1 1372 21 is_stmt 0 discriminator 2 view .LVU784 2447 0038 2123 movs r3, #33 2448 003a 84F84130 strb r3, [r4, #65] 1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2449 .loc 1 1373 5 is_stmt 1 discriminator 2 view .LVU785 1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2450 .loc 1 1373 21 is_stmt 0 discriminator 2 view .LVU786 2451 003e 2023 movs r3, #32 2452 0040 84F84230 strb r3, [r4, #66] 1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2453 .loc 1 1374 5 is_stmt 1 discriminator 2 view .LVU787 1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2454 .loc 1 1374 21 is_stmt 0 discriminator 2 view .LVU788 2455 0044 0022 movs r2, #0 2456 0046 6264 str r2, [r4, #68] 1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2457 .loc 1 1377 5 is_stmt 1 discriminator 2 view .LVU789 1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2458 .loc 1 1377 21 is_stmt 0 discriminator 2 view .LVU790 2459 0048 6762 str r7, [r4, #36] 1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2460 .loc 1 1378 5 is_stmt 1 discriminator 2 view .LVU791 1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2461 .loc 1 1378 21 is_stmt 0 discriminator 2 view .LVU792 2462 004a A4F82A80 strh r8, [r4, #42] @ movhi 1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2463 .loc 1 1379 5 is_stmt 1 discriminator 2 view .LVU793 1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2464 .loc 1 1379 21 is_stmt 0 discriminator 2 view .LVU794 2465 004e 6263 str r2, [r4, #52] 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2466 .loc 1 1382 5 is_stmt 1 discriminator 2 view .LVU795 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2467 .loc 1 1382 9 is_stmt 0 discriminator 2 view .LVU796 2468 0050 2168 ldr r1, [r4] 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2469 .loc 1 1382 19 discriminator 2 view .LVU797 2470 0052 4B68 ldr r3, [r1, #4] 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2471 .loc 1 1382 25 discriminator 2 view .LVU798 2472 0054 23F40043 bic r3, r3, #32768 2473 0058 4B60 str r3, [r1, #4] 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2474 .loc 1 1385 5 is_stmt 1 discriminator 2 view .LVU799 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2475 .loc 1 1385 9 is_stmt 0 discriminator 2 view .LVU800 2476 005a 0090 str r0, [sp] 2477 005c 2B46 mov r3, r5 2478 005e 0821 movs r1, #8 2479 0060 2046 mov r0, r4 2480 .LVL158: 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2481 .loc 1 1385 9 discriminator 2 view .LVU801 2482 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2483 .LVL159: 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2484 .loc 1 1385 8 discriminator 2 view .LVU802 ARM GAS /tmp/ccbUHtu7.s page 177 2485 0066 0028 cmp r0, #0 2486 0068 31D1 bne .L198 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2487 .loc 1 1393 5 is_stmt 1 view .LVU803 2488 006a 2368 ldr r3, [r4] 2489 006c 0822 movs r2, #8 2490 006e DA61 str r2, [r3, #28] 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2491 .loc 1 1396 5 view .LVU804 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2492 .loc 1 1396 19 is_stmt 0 view .LVU805 2493 0070 E368 ldr r3, [r4, #12] 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2494 .loc 1 1396 8 view .LVU806 2495 0072 022B cmp r3, #2 2496 0074 32D0 beq .L199 2497 .L187: 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2498 .loc 1 1411 5 is_stmt 1 view .LVU807 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2499 .loc 1 1411 9 is_stmt 0 view .LVU808 2500 0076 0096 str r6, [sp] 2501 0078 2B46 mov r3, r5 2502 007a 0022 movs r2, #0 2503 007c 4FF48031 mov r1, #65536 2504 0080 2046 mov r0, r4 2505 0082 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2506 .LVL160: 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2507 .loc 1 1411 8 view .LVU809 2508 0086 0028 cmp r0, #0 2509 0088 3BD1 bne .L200 2510 .L189: 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2511 .loc 1 1418 28 is_stmt 1 view .LVU810 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2512 .loc 1 1418 16 is_stmt 0 view .LVU811 2513 008a 638D ldrh r3, [r4, #42] 2514 008c 9BB2 uxth r3, r3 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2515 .loc 1 1418 28 view .LVU812 2516 008e 002B cmp r3, #0 2517 0090 45D0 beq .L201 1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2518 .loc 1 1421 7 is_stmt 1 view .LVU813 1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2519 .loc 1 1421 11 is_stmt 0 view .LVU814 2520 0092 3246 mov r2, r6 2521 0094 2946 mov r1, r5 2522 0096 2046 mov r0, r4 2523 0098 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2524 .LVL161: 1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2525 .loc 1 1421 10 view .LVU815 2526 009c 0028 cmp r0, #0 2527 009e 37D1 bne .L202 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 178 2528 .loc 1 1429 7 is_stmt 1 view .LVU816 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2529 .loc 1 1429 35 is_stmt 0 view .LVU817 2530 00a0 626A ldr r2, [r4, #36] 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2531 .loc 1 1429 11 view .LVU818 2532 00a2 2368 ldr r3, [r4] 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2533 .loc 1 1429 30 view .LVU819 2534 00a4 1278 ldrb r2, [r2] @ zero_extendqisi2 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2535 .loc 1 1429 28 view .LVU820 2536 00a6 9A62 str r2, [r3, #40] 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2537 .loc 1 1432 7 is_stmt 1 view .LVU821 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2538 .loc 1 1432 11 is_stmt 0 view .LVU822 2539 00a8 636A ldr r3, [r4, #36] 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2540 .loc 1 1432 21 view .LVU823 2541 00aa 0133 adds r3, r3, #1 2542 00ac 6362 str r3, [r4, #36] 1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2543 .loc 1 1434 7 is_stmt 1 view .LVU824 1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2544 .loc 1 1434 11 is_stmt 0 view .LVU825 2545 00ae B4F82AC0 ldrh ip, [r4, #42] 2546 00b2 1FFA8CFC uxth ip, ip 1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2547 .loc 1 1434 22 view .LVU826 2548 00b6 0CF1FF3C add ip, ip, #-1 2549 00ba 1FFA8CFC uxth ip, ip 2550 00be A4F82AC0 strh ip, [r4, #42] @ movhi 2551 00c2 E2E7 b .L189 2552 .LVL162: 2553 .L184: 1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2554 .loc 1 1363 7 is_stmt 1 view .LVU827 1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2555 .loc 1 1363 23 is_stmt 0 view .LVU828 2556 00c4 4FF40073 mov r3, #512 2557 00c8 6364 str r3, [r4, #68] 1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2558 .loc 1 1364 7 is_stmt 1 view .LVU829 1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2559 .loc 1 1364 15 is_stmt 0 view .LVU830 2560 00ca 0120 movs r0, #1 2561 .LVL163: 1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2562 .loc 1 1364 15 view .LVU831 2563 00cc 6BE0 b .L183 2564 .LVL164: 2565 .L198: 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2566 .loc 1 1388 7 is_stmt 1 view .LVU832 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2567 .loc 1 1388 11 is_stmt 0 view .LVU833 ARM GAS /tmp/ccbUHtu7.s page 179 2568 00ce 2268 ldr r2, [r4] 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2569 .loc 1 1388 21 view .LVU834 2570 00d0 5368 ldr r3, [r2, #4] 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2571 .loc 1 1388 27 view .LVU835 2572 00d2 43F40043 orr r3, r3, #32768 2573 00d6 5360 str r3, [r2, #4] 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2574 .loc 1 1389 7 is_stmt 1 view .LVU836 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2575 .loc 1 1389 14 is_stmt 0 view .LVU837 2576 00d8 0120 movs r0, #1 2577 00da 64E0 b .L183 2578 .L199: 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2579 .loc 1 1399 7 is_stmt 1 view .LVU838 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2580 .loc 1 1399 11 is_stmt 0 view .LVU839 2581 00dc 0096 str r6, [sp] 2582 00de 2B46 mov r3, r5 2583 00e0 0022 movs r2, #0 2584 00e2 0821 movs r1, #8 2585 00e4 2046 mov r0, r4 2586 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2587 .LVL165: 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2588 .loc 1 1399 10 view .LVU840 2589 00ea 18B9 cbnz r0, .L203 1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2590 .loc 1 1407 7 is_stmt 1 view .LVU841 2591 00ec 2368 ldr r3, [r4] 2592 00ee 0822 movs r2, #8 2593 00f0 DA61 str r2, [r3, #28] 2594 00f2 C0E7 b .L187 2595 .L203: 1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2596 .loc 1 1402 9 view .LVU842 1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2597 .loc 1 1402 13 is_stmt 0 view .LVU843 2598 00f4 2268 ldr r2, [r4] 1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2599 .loc 1 1402 23 view .LVU844 2600 00f6 5368 ldr r3, [r2, #4] 1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2601 .loc 1 1402 29 view .LVU845 2602 00f8 43F40043 orr r3, r3, #32768 2603 00fc 5360 str r3, [r2, #4] 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2604 .loc 1 1403 9 is_stmt 1 view .LVU846 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2605 .loc 1 1403 16 is_stmt 0 view .LVU847 2606 00fe 0120 movs r0, #1 2607 0100 51E0 b .L183 2608 .L200: 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2609 .loc 1 1414 7 is_stmt 1 view .LVU848 ARM GAS /tmp/ccbUHtu7.s page 180 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2610 .loc 1 1414 11 is_stmt 0 view .LVU849 2611 0102 2268 ldr r2, [r4] 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2612 .loc 1 1414 21 view .LVU850 2613 0104 5368 ldr r3, [r2, #4] 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2614 .loc 1 1414 27 view .LVU851 2615 0106 43F40043 orr r3, r3, #32768 2616 010a 5360 str r3, [r2, #4] 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2617 .loc 1 1415 7 is_stmt 1 view .LVU852 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2618 .loc 1 1415 14 is_stmt 0 view .LVU853 2619 010c 0120 movs r0, #1 2620 010e 4AE0 b .L183 2621 .L202: 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2622 .loc 1 1424 9 is_stmt 1 view .LVU854 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2623 .loc 1 1424 13 is_stmt 0 view .LVU855 2624 0110 2268 ldr r2, [r4] 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2625 .loc 1 1424 23 view .LVU856 2626 0112 5368 ldr r3, [r2, #4] 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2627 .loc 1 1424 29 view .LVU857 2628 0114 43F40043 orr r3, r3, #32768 2629 0118 5360 str r3, [r2, #4] 1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2630 .loc 1 1425 9 is_stmt 1 view .LVU858 1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2631 .loc 1 1425 16 is_stmt 0 view .LVU859 2632 011a 0120 movs r0, #1 2633 011c 43E0 b .L183 2634 .L201: 1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2635 .loc 1 1438 5 is_stmt 1 view .LVU860 1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2636 .loc 1 1438 9 is_stmt 0 view .LVU861 2637 011e 0096 str r6, [sp] 2638 0120 2B46 mov r3, r5 2639 0122 0022 movs r2, #0 2640 0124 1021 movs r1, #16 2641 0126 2046 mov r0, r4 2642 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2643 .LVL166: 1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2644 .loc 1 1438 8 view .LVU862 2645 012c 30B1 cbz r0, .L192 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2646 .loc 1 1441 7 is_stmt 1 view .LVU863 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2647 .loc 1 1441 11 is_stmt 0 view .LVU864 2648 012e 2268 ldr r2, [r4] 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2649 .loc 1 1441 21 view .LVU865 ARM GAS /tmp/ccbUHtu7.s page 181 2650 0130 5368 ldr r3, [r2, #4] 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2651 .loc 1 1441 27 view .LVU866 2652 0132 43F40043 orr r3, r3, #32768 2653 0136 5360 str r3, [r2, #4] 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2654 .loc 1 1442 7 is_stmt 1 view .LVU867 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2655 .loc 1 1442 14 is_stmt 0 view .LVU868 2656 0138 0120 movs r0, #1 2657 013a 34E0 b .L183 2658 .L192: 1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2659 .loc 1 1446 5 is_stmt 1 view .LVU869 2660 013c 2046 mov r0, r4 2661 013e FFF7FEFF bl I2C_Flush_TXDR 2662 .LVL167: 1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2663 .loc 1 1449 5 view .LVU870 2664 0142 2368 ldr r3, [r4] 2665 0144 1022 movs r2, #16 2666 0146 DA61 str r2, [r3, #28] 1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2667 .loc 1 1452 5 view .LVU871 1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2668 .loc 1 1452 9 is_stmt 0 view .LVU872 2669 0148 3246 mov r2, r6 2670 014a 2946 mov r1, r5 2671 014c 2046 mov r0, r4 2672 014e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2673 .LVL168: 1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2674 .loc 1 1452 8 view .LVU873 2675 0152 30B1 cbz r0, .L193 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2676 .loc 1 1455 7 is_stmt 1 view .LVU874 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2677 .loc 1 1455 11 is_stmt 0 view .LVU875 2678 0154 2268 ldr r2, [r4] 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2679 .loc 1 1455 21 view .LVU876 2680 0156 5368 ldr r3, [r2, #4] 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2681 .loc 1 1455 27 view .LVU877 2682 0158 43F40043 orr r3, r3, #32768 2683 015c 5360 str r3, [r2, #4] 1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2684 .loc 1 1457 7 is_stmt 1 view .LVU878 1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2685 .loc 1 1457 14 is_stmt 0 view .LVU879 2686 015e 0120 movs r0, #1 2687 0160 21E0 b .L183 2688 .L193: 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2689 .loc 1 1461 5 is_stmt 1 view .LVU880 2690 0162 2368 ldr r3, [r4] 2691 0164 2022 movs r2, #32 ARM GAS /tmp/ccbUHtu7.s page 182 2692 0166 DA61 str r2, [r3, #28] 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2693 .loc 1 1464 5 view .LVU881 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2694 .loc 1 1464 9 is_stmt 0 view .LVU882 2695 0168 0096 str r6, [sp] 2696 016a 2B46 mov r3, r5 2697 016c 0122 movs r2, #1 2698 016e 4FF40041 mov r1, #32768 2699 0172 2046 mov r0, r4 2700 0174 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2701 .LVL169: 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2702 .loc 1 1464 8 view .LVU883 2703 0178 30B1 cbz r0, .L194 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2704 .loc 1 1467 7 is_stmt 1 view .LVU884 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2705 .loc 1 1467 11 is_stmt 0 view .LVU885 2706 017a 2268 ldr r2, [r4] 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2707 .loc 1 1467 21 view .LVU886 2708 017c 5368 ldr r3, [r2, #4] 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2709 .loc 1 1467 27 view .LVU887 2710 017e 43F40043 orr r3, r3, #32768 2711 0182 5360 str r3, [r2, #4] 1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2712 .loc 1 1468 7 is_stmt 1 view .LVU888 1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2713 .loc 1 1468 14 is_stmt 0 view .LVU889 2714 0184 0120 movs r0, #1 2715 0186 0EE0 b .L183 2716 .L194: 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2717 .loc 1 1472 5 is_stmt 1 view .LVU890 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2718 .loc 1 1472 9 is_stmt 0 view .LVU891 2719 0188 2268 ldr r2, [r4] 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2720 .loc 1 1472 19 view .LVU892 2721 018a 5368 ldr r3, [r2, #4] 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2722 .loc 1 1472 25 view .LVU893 2723 018c 43F40043 orr r3, r3, #32768 2724 0190 5360 str r3, [r2, #4] 1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2725 .loc 1 1474 5 is_stmt 1 view .LVU894 1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2726 .loc 1 1474 17 is_stmt 0 view .LVU895 2727 0192 2023 movs r3, #32 2728 0194 84F84130 strb r3, [r4, #65] 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2729 .loc 1 1475 5 is_stmt 1 view .LVU896 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2730 .loc 1 1475 17 is_stmt 0 view .LVU897 2731 0198 0023 movs r3, #0 ARM GAS /tmp/ccbUHtu7.s page 183 2732 019a 84F84230 strb r3, [r4, #66] 1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2733 .loc 1 1478 5 is_stmt 1 view .LVU898 1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2734 .loc 1 1478 5 view .LVU899 2735 019e 84F84030 strb r3, [r4, #64] 1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2736 .loc 1 1478 5 view .LVU900 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2737 .loc 1 1480 5 view .LVU901 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2738 .loc 1 1480 12 is_stmt 0 view .LVU902 2739 01a2 00E0 b .L183 2740 .LVL170: 2741 .L195: 1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2742 .loc 1 1484 12 view .LVU903 2743 01a4 0220 movs r0, #2 2744 .LVL171: 2745 .L183: 1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2746 .loc 1 1486 1 view .LVU904 2747 01a6 02B0 add sp, sp, #8 2748 .LCFI29: 2749 .cfi_remember_state 2750 .cfi_def_cfa_offset 24 2751 @ sp needed 2752 01a8 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2753 .LVL172: 2754 .L196: 2755 .LCFI30: 2756 .cfi_restore_state 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2757 .loc 1 1367 5 view .LVU905 2758 01ac 0220 movs r0, #2 2759 .LVL173: 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2760 .loc 1 1367 5 view .LVU906 2761 01ae FAE7 b .L183 2762 .cfi_endproc 2763 .LFE335: 2765 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2766 .align 1 2767 .global HAL_I2C_Slave_Receive 2768 .syntax unified 2769 .thumb 2770 .thumb_func 2772 HAL_I2C_Slave_Receive: 2773 .LVL174: 2774 .LFB336: 1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2775 .loc 1 1499 1 is_stmt 1 view -0 2776 .cfi_startproc 2777 @ args = 0, pretend = 0, frame = 0 2778 @ frame_needed = 0, uses_anonymous_args = 0 1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2779 .loc 1 1499 1 is_stmt 0 view .LVU908 ARM GAS /tmp/ccbUHtu7.s page 184 2780 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2781 .LCFI31: 2782 .cfi_def_cfa_offset 24 2783 .cfi_offset 4, -24 2784 .cfi_offset 5, -20 2785 .cfi_offset 6, -16 2786 .cfi_offset 7, -12 2787 .cfi_offset 8, -8 2788 .cfi_offset 14, -4 2789 0004 82B0 sub sp, sp, #8 2790 .LCFI32: 2791 .cfi_def_cfa_offset 32 2792 0006 1D46 mov r5, r3 1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2793 .loc 1 1500 3 is_stmt 1 view .LVU909 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2794 .loc 1 1502 3 view .LVU910 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2795 .loc 1 1502 11 is_stmt 0 view .LVU911 2796 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2797 .LVL175: 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2798 .loc 1 1502 11 view .LVU912 2799 000c DBB2 uxtb r3, r3 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2800 .loc 1 1502 6 view .LVU913 2801 000e 202B cmp r3, #32 2802 0010 40F0AF80 bne .L215 2803 0014 0446 mov r4, r0 2804 0016 0E46 mov r6, r1 2805 0018 9046 mov r8, r2 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2806 .loc 1 1504 5 is_stmt 1 view .LVU914 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2807 .loc 1 1504 8 is_stmt 0 view .LVU915 2808 001a 61B3 cbz r1, .L206 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2809 .loc 1 1504 25 discriminator 1 view .LVU916 2810 001c 5AB3 cbz r2, .L206 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2811 .loc 1 1510 5 is_stmt 1 view .LVU917 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2812 .loc 1 1510 5 view .LVU918 2813 001e 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2814 0022 012B cmp r3, #1 2815 0024 00F0A980 beq .L216 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2816 .loc 1 1510 5 discriminator 2 view .LVU919 2817 0028 0123 movs r3, #1 2818 002a 80F84030 strb r3, [r0, #64] 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2819 .loc 1 1510 5 discriminator 2 view .LVU920 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2820 .loc 1 1513 5 discriminator 2 view .LVU921 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2821 .loc 1 1513 17 is_stmt 0 discriminator 2 view .LVU922 2822 002e FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccbUHtu7.s page 185 2823 .LVL176: 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2824 .loc 1 1513 17 discriminator 2 view .LVU923 2825 0032 0746 mov r7, r0 2826 .LVL177: 1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2827 .loc 1 1515 5 is_stmt 1 discriminator 2 view .LVU924 1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2828 .loc 1 1515 21 is_stmt 0 discriminator 2 view .LVU925 2829 0034 2223 movs r3, #34 2830 0036 84F84130 strb r3, [r4, #65] 1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2831 .loc 1 1516 5 is_stmt 1 discriminator 2 view .LVU926 1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2832 .loc 1 1516 21 is_stmt 0 discriminator 2 view .LVU927 2833 003a 2023 movs r3, #32 2834 003c 84F84230 strb r3, [r4, #66] 1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2835 .loc 1 1517 5 is_stmt 1 discriminator 2 view .LVU928 1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2836 .loc 1 1517 21 is_stmt 0 discriminator 2 view .LVU929 2837 0040 0022 movs r2, #0 2838 0042 6264 str r2, [r4, #68] 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2839 .loc 1 1520 5 is_stmt 1 discriminator 2 view .LVU930 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2840 .loc 1 1520 21 is_stmt 0 discriminator 2 view .LVU931 2841 0044 6662 str r6, [r4, #36] 1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2842 .loc 1 1521 5 is_stmt 1 discriminator 2 view .LVU932 1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2843 .loc 1 1521 21 is_stmt 0 discriminator 2 view .LVU933 2844 0046 A4F82A80 strh r8, [r4, #42] @ movhi 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2845 .loc 1 1522 5 is_stmt 1 discriminator 2 view .LVU934 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2846 .loc 1 1522 26 is_stmt 0 discriminator 2 view .LVU935 2847 004a 638D ldrh r3, [r4, #42] 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2848 .loc 1 1522 20 discriminator 2 view .LVU936 2849 004c 2385 strh r3, [r4, #40] @ movhi 1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2850 .loc 1 1523 5 is_stmt 1 discriminator 2 view .LVU937 1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2851 .loc 1 1523 21 is_stmt 0 discriminator 2 view .LVU938 2852 004e 6263 str r2, [r4, #52] 1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2853 .loc 1 1526 5 is_stmt 1 discriminator 2 view .LVU939 1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2854 .loc 1 1526 9 is_stmt 0 discriminator 2 view .LVU940 2855 0050 2168 ldr r1, [r4] 1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2856 .loc 1 1526 19 discriminator 2 view .LVU941 2857 0052 4B68 ldr r3, [r1, #4] 1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2858 .loc 1 1526 25 discriminator 2 view .LVU942 2859 0054 23F40043 bic r3, r3, #32768 ARM GAS /tmp/ccbUHtu7.s page 186 2860 0058 4B60 str r3, [r1, #4] 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2861 .loc 1 1529 5 is_stmt 1 discriminator 2 view .LVU943 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2862 .loc 1 1529 9 is_stmt 0 discriminator 2 view .LVU944 2863 005a 0090 str r0, [sp] 2864 005c 2B46 mov r3, r5 2865 005e 0821 movs r1, #8 2866 0060 2046 mov r0, r4 2867 .LVL178: 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2868 .loc 1 1529 9 discriminator 2 view .LVU945 2869 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2870 .LVL179: 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2871 .loc 1 1529 8 discriminator 2 view .LVU946 2872 0066 58B1 cbz r0, .L208 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2873 .loc 1 1532 7 is_stmt 1 view .LVU947 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2874 .loc 1 1532 11 is_stmt 0 view .LVU948 2875 0068 2268 ldr r2, [r4] 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2876 .loc 1 1532 21 view .LVU949 2877 006a 5368 ldr r3, [r2, #4] 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2878 .loc 1 1532 27 view .LVU950 2879 006c 43F40043 orr r3, r3, #32768 2880 0070 5360 str r3, [r2, #4] 1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2881 .loc 1 1533 7 is_stmt 1 view .LVU951 1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2882 .loc 1 1533 14 is_stmt 0 view .LVU952 2883 0072 0120 movs r0, #1 2884 0074 7EE0 b .L205 2885 .LVL180: 2886 .L206: 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2887 .loc 1 1506 7 is_stmt 1 view .LVU953 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2888 .loc 1 1506 23 is_stmt 0 view .LVU954 2889 0076 4FF40073 mov r3, #512 2890 007a 6364 str r3, [r4, #68] 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2891 .loc 1 1507 7 is_stmt 1 view .LVU955 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2892 .loc 1 1507 15 is_stmt 0 view .LVU956 2893 007c 0120 movs r0, #1 2894 .LVL181: 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2895 .loc 1 1507 15 view .LVU957 2896 007e 79E0 b .L205 2897 .LVL182: 2898 .L208: 1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2899 .loc 1 1537 5 is_stmt 1 view .LVU958 2900 0080 2368 ldr r3, [r4] ARM GAS /tmp/ccbUHtu7.s page 187 2901 0082 0822 movs r2, #8 2902 0084 DA61 str r2, [r3, #28] 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2903 .loc 1 1540 5 view .LVU959 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2904 .loc 1 1540 9 is_stmt 0 view .LVU960 2905 0086 0097 str r7, [sp] 2906 0088 2B46 mov r3, r5 2907 008a 0122 movs r2, #1 2908 008c 4FF48031 mov r1, #65536 2909 0090 2046 mov r0, r4 2910 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2911 .LVL183: 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2912 .loc 1 1540 8 view .LVU961 2913 0096 D0B1 cbz r0, .L209 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2914 .loc 1 1543 7 is_stmt 1 view .LVU962 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2915 .loc 1 1543 11 is_stmt 0 view .LVU963 2916 0098 2268 ldr r2, [r4] 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2917 .loc 1 1543 21 view .LVU964 2918 009a 5368 ldr r3, [r2, #4] 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2919 .loc 1 1543 27 view .LVU965 2920 009c 43F40043 orr r3, r3, #32768 2921 00a0 5360 str r3, [r2, #4] 1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2922 .loc 1 1544 7 is_stmt 1 view .LVU966 1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2923 .loc 1 1544 14 is_stmt 0 view .LVU967 2924 00a2 0120 movs r0, #1 2925 00a4 66E0 b .L205 2926 .L210: 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2927 .loc 1 1572 7 is_stmt 1 view .LVU968 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2928 .loc 1 1572 38 is_stmt 0 view .LVU969 2929 00a6 2368 ldr r3, [r4] 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2930 .loc 1 1572 48 view .LVU970 2931 00a8 5A6A ldr r2, [r3, #36] 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2932 .loc 1 1572 12 view .LVU971 2933 00aa 636A ldr r3, [r4, #36] 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2934 .loc 1 1572 23 view .LVU972 2935 00ac 1A70 strb r2, [r3] 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2936 .loc 1 1575 7 is_stmt 1 view .LVU973 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2937 .loc 1 1575 11 is_stmt 0 view .LVU974 2938 00ae 636A ldr r3, [r4, #36] 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2939 .loc 1 1575 21 view .LVU975 2940 00b0 0133 adds r3, r3, #1 ARM GAS /tmp/ccbUHtu7.s page 188 2941 00b2 6362 str r3, [r4, #36] 1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2942 .loc 1 1577 7 is_stmt 1 view .LVU976 1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2943 .loc 1 1577 11 is_stmt 0 view .LVU977 2944 00b4 B4F82AC0 ldrh ip, [r4, #42] 2945 00b8 1FFA8CFC uxth ip, ip 1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2946 .loc 1 1577 22 view .LVU978 2947 00bc 0CF1FF3C add ip, ip, #-1 2948 00c0 1FFA8CFC uxth ip, ip 2949 00c4 A4F82AC0 strh ip, [r4, #42] @ movhi 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2950 .loc 1 1578 7 is_stmt 1 view .LVU979 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2951 .loc 1 1578 11 is_stmt 0 view .LVU980 2952 00c8 238D ldrh r3, [r4, #40] 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2953 .loc 1 1578 21 view .LVU981 2954 00ca 013B subs r3, r3, #1 2955 00cc 2385 strh r3, [r4, #40] @ movhi 2956 .L209: 1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2957 .loc 1 1547 28 is_stmt 1 view .LVU982 1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2958 .loc 1 1547 16 is_stmt 0 view .LVU983 2959 00ce 638D ldrh r3, [r4, #42] 2960 00d0 9BB2 uxth r3, r3 1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2961 .loc 1 1547 28 view .LVU984 2962 00d2 03B3 cbz r3, .L218 1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2963 .loc 1 1550 7 is_stmt 1 view .LVU985 1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2964 .loc 1 1550 11 is_stmt 0 view .LVU986 2965 00d4 3A46 mov r2, r7 2966 00d6 2946 mov r1, r5 2967 00d8 2046 mov r0, r4 2968 00da FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2969 .LVL184: 1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2970 .loc 1 1550 10 view .LVU987 2971 00de 0028 cmp r0, #0 2972 00e0 E1D0 beq .L210 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2973 .loc 1 1553 9 is_stmt 1 view .LVU988 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2974 .loc 1 1553 13 is_stmt 0 view .LVU989 2975 00e2 2268 ldr r2, [r4] 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2976 .loc 1 1553 23 view .LVU990 2977 00e4 5368 ldr r3, [r2, #4] 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2978 .loc 1 1553 29 view .LVU991 2979 00e6 43F40043 orr r3, r3, #32768 2980 00ea 5360 str r3, [r2, #4] 1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 189 2981 .loc 1 1556 9 is_stmt 1 view .LVU992 1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2982 .loc 1 1556 13 is_stmt 0 view .LVU993 2983 00ec 2368 ldr r3, [r4] 2984 00ee 9A69 ldr r2, [r3, #24] 1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2985 .loc 1 1556 12 view .LVU994 2986 00f0 12F0040F tst r2, #4 2987 00f4 0DD0 beq .L211 1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2988 .loc 1 1559 11 is_stmt 1 view .LVU995 1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2989 .loc 1 1559 52 is_stmt 0 view .LVU996 2990 00f6 5A6A ldr r2, [r3, #36] 1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2991 .loc 1 1559 16 view .LVU997 2992 00f8 636A ldr r3, [r4, #36] 1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2993 .loc 1 1559 27 view .LVU998 2994 00fa 1A70 strb r2, [r3] 1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2995 .loc 1 1562 11 is_stmt 1 view .LVU999 1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2996 .loc 1 1562 15 is_stmt 0 view .LVU1000 2997 00fc 636A ldr r3, [r4, #36] 1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2998 .loc 1 1562 25 view .LVU1001 2999 00fe 0133 adds r3, r3, #1 3000 0100 6362 str r3, [r4, #36] 1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3001 .loc 1 1564 11 is_stmt 1 view .LVU1002 1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3002 .loc 1 1564 15 is_stmt 0 view .LVU1003 3003 0102 638D ldrh r3, [r4, #42] 3004 0104 9BB2 uxth r3, r3 1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3005 .loc 1 1564 26 view .LVU1004 3006 0106 013B subs r3, r3, #1 3007 0108 9BB2 uxth r3, r3 3008 010a 6385 strh r3, [r4, #42] @ movhi 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3009 .loc 1 1565 11 is_stmt 1 view .LVU1005 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3010 .loc 1 1565 15 is_stmt 0 view .LVU1006 3011 010c 238D ldrh r3, [r4, #40] 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3012 .loc 1 1565 25 view .LVU1007 3013 010e 013B subs r3, r3, #1 3014 0110 2385 strh r3, [r4, #40] @ movhi 3015 .L211: 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3016 .loc 1 1568 9 is_stmt 1 view .LVU1008 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3017 .loc 1 1568 16 is_stmt 0 view .LVU1009 3018 0112 0120 movs r0, #1 3019 0114 2EE0 b .L205 3020 .L218: ARM GAS /tmp/ccbUHtu7.s page 190 1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3021 .loc 1 1582 5 is_stmt 1 view .LVU1010 1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3022 .loc 1 1582 9 is_stmt 0 view .LVU1011 3023 0116 3A46 mov r2, r7 3024 0118 2946 mov r1, r5 3025 011a 2046 mov r0, r4 3026 011c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 3027 .LVL185: 1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3028 .loc 1 1582 8 view .LVU1012 3029 0120 30B1 cbz r0, .L213 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3030 .loc 1 1585 7 is_stmt 1 view .LVU1013 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3031 .loc 1 1585 11 is_stmt 0 view .LVU1014 3032 0122 2268 ldr r2, [r4] 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3033 .loc 1 1585 21 view .LVU1015 3034 0124 5368 ldr r3, [r2, #4] 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3035 .loc 1 1585 27 view .LVU1016 3036 0126 43F40043 orr r3, r3, #32768 3037 012a 5360 str r3, [r2, #4] 1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3038 .loc 1 1586 7 is_stmt 1 view .LVU1017 1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3039 .loc 1 1586 14 is_stmt 0 view .LVU1018 3040 012c 0120 movs r0, #1 3041 012e 21E0 b .L205 3042 .L213: 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3043 .loc 1 1590 5 is_stmt 1 view .LVU1019 3044 0130 2368 ldr r3, [r4] 3045 0132 2022 movs r2, #32 3046 0134 DA61 str r2, [r3, #28] 1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3047 .loc 1 1593 5 view .LVU1020 1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3048 .loc 1 1593 9 is_stmt 0 view .LVU1021 3049 0136 0097 str r7, [sp] 3050 0138 2B46 mov r3, r5 3051 013a 0122 movs r2, #1 3052 013c 4FF40041 mov r1, #32768 3053 0140 2046 mov r0, r4 3054 0142 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3055 .LVL186: 1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3056 .loc 1 1593 8 view .LVU1022 3057 0146 30B1 cbz r0, .L214 1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3058 .loc 1 1596 7 is_stmt 1 view .LVU1023 1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3059 .loc 1 1596 11 is_stmt 0 view .LVU1024 3060 0148 2268 ldr r2, [r4] 1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3061 .loc 1 1596 21 view .LVU1025 ARM GAS /tmp/ccbUHtu7.s page 191 3062 014a 5368 ldr r3, [r2, #4] 1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3063 .loc 1 1596 27 view .LVU1026 3064 014c 43F40043 orr r3, r3, #32768 3065 0150 5360 str r3, [r2, #4] 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3066 .loc 1 1597 7 is_stmt 1 view .LVU1027 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3067 .loc 1 1597 14 is_stmt 0 view .LVU1028 3068 0152 0120 movs r0, #1 3069 0154 0EE0 b .L205 3070 .L214: 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3071 .loc 1 1601 5 is_stmt 1 view .LVU1029 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3072 .loc 1 1601 9 is_stmt 0 view .LVU1030 3073 0156 2268 ldr r2, [r4] 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3074 .loc 1 1601 19 view .LVU1031 3075 0158 5368 ldr r3, [r2, #4] 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3076 .loc 1 1601 25 view .LVU1032 3077 015a 43F40043 orr r3, r3, #32768 3078 015e 5360 str r3, [r2, #4] 1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3079 .loc 1 1603 5 is_stmt 1 view .LVU1033 1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3080 .loc 1 1603 17 is_stmt 0 view .LVU1034 3081 0160 2023 movs r3, #32 3082 0162 84F84130 strb r3, [r4, #65] 1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3083 .loc 1 1604 5 is_stmt 1 view .LVU1035 1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3084 .loc 1 1604 17 is_stmt 0 view .LVU1036 3085 0166 0023 movs r3, #0 3086 0168 84F84230 strb r3, [r4, #66] 1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3087 .loc 1 1607 5 is_stmt 1 view .LVU1037 1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3088 .loc 1 1607 5 view .LVU1038 3089 016c 84F84030 strb r3, [r4, #64] 1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3090 .loc 1 1607 5 view .LVU1039 1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3091 .loc 1 1609 5 view .LVU1040 1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3092 .loc 1 1609 12 is_stmt 0 view .LVU1041 3093 0170 00E0 b .L205 3094 .LVL187: 3095 .L215: 1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3096 .loc 1 1613 12 view .LVU1042 3097 0172 0220 movs r0, #2 3098 .LVL188: 3099 .L205: 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3100 .loc 1 1615 1 view .LVU1043 ARM GAS /tmp/ccbUHtu7.s page 192 3101 0174 02B0 add sp, sp, #8 3102 .LCFI33: 3103 .cfi_remember_state 3104 .cfi_def_cfa_offset 24 3105 @ sp needed 3106 0176 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3107 .LVL189: 3108 .L216: 3109 .LCFI34: 3110 .cfi_restore_state 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3111 .loc 1 1510 5 view .LVU1044 3112 017a 0220 movs r0, #2 3113 .LVL190: 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3114 .loc 1 1510 5 view .LVU1045 3115 017c FAE7 b .L205 3116 .cfi_endproc 3117 .LFE336: 3119 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3120 .align 1 3121 .global HAL_I2C_Master_Transmit_IT 3122 .syntax unified 3123 .thumb 3124 .thumb_func 3126 HAL_I2C_Master_Transmit_IT: 3127 .LVL191: 3128 .LFB337: 1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3129 .loc 1 1629 1 is_stmt 1 view -0 3130 .cfi_startproc 3131 @ args = 0, pretend = 0, frame = 0 3132 @ frame_needed = 0, uses_anonymous_args = 0 1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3133 .loc 1 1629 1 is_stmt 0 view .LVU1047 3134 0000 30B5 push {r4, r5, lr} 3135 .LCFI35: 3136 .cfi_def_cfa_offset 12 3137 .cfi_offset 4, -12 3138 .cfi_offset 5, -8 3139 .cfi_offset 14, -4 3140 0002 83B0 sub sp, sp, #12 3141 .LCFI36: 3142 .cfi_def_cfa_offset 24 3143 0004 0446 mov r4, r0 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3144 .loc 1 1630 3 is_stmt 1 view .LVU1048 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3145 .loc 1 1632 3 view .LVU1049 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3146 .loc 1 1632 11 is_stmt 0 view .LVU1050 3147 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3148 .LVL192: 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3149 .loc 1 1632 11 view .LVU1051 3150 000a C0B2 uxtb r0, r0 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 193 3151 .loc 1 1632 6 view .LVU1052 3152 000c 2028 cmp r0, #32 3153 000e 37D1 bne .L223 1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3154 .loc 1 1634 5 is_stmt 1 view .LVU1053 1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3155 .loc 1 1634 9 is_stmt 0 view .LVU1054 3156 0010 2068 ldr r0, [r4] 3157 0012 8069 ldr r0, [r0, #24] 1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3158 .loc 1 1634 8 view .LVU1055 3159 0014 10F4004F tst r0, #32768 3160 0018 34D1 bne .L224 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3161 .loc 1 1640 5 is_stmt 1 view .LVU1056 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3162 .loc 1 1640 5 view .LVU1057 3163 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3164 001e 0128 cmp r0, #1 3165 0020 32D0 beq .L225 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3166 .loc 1 1640 5 discriminator 2 view .LVU1058 3167 0022 0120 movs r0, #1 3168 0024 84F84000 strb r0, [r4, #64] 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3169 .loc 1 1640 5 discriminator 2 view .LVU1059 1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3170 .loc 1 1642 5 discriminator 2 view .LVU1060 1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3171 .loc 1 1642 23 is_stmt 0 discriminator 2 view .LVU1061 3172 0028 2120 movs r0, #33 3173 002a 84F84100 strb r0, [r4, #65] 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3174 .loc 1 1643 5 is_stmt 1 discriminator 2 view .LVU1062 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3175 .loc 1 1643 23 is_stmt 0 discriminator 2 view .LVU1063 3176 002e 1020 movs r0, #16 3177 0030 84F84200 strb r0, [r4, #66] 1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3178 .loc 1 1644 5 is_stmt 1 discriminator 2 view .LVU1064 1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3179 .loc 1 1644 23 is_stmt 0 discriminator 2 view .LVU1065 3180 0034 0020 movs r0, #0 3181 0036 6064 str r0, [r4, #68] 1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3182 .loc 1 1647 5 is_stmt 1 discriminator 2 view .LVU1066 1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3183 .loc 1 1647 23 is_stmt 0 discriminator 2 view .LVU1067 3184 0038 6262 str r2, [r4, #36] 1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3185 .loc 1 1648 5 is_stmt 1 discriminator 2 view .LVU1068 1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3186 .loc 1 1648 23 is_stmt 0 discriminator 2 view .LVU1069 3187 003a 6385 strh r3, [r4, #42] @ movhi 1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3188 .loc 1 1649 5 is_stmt 1 discriminator 2 view .LVU1070 1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; ARM GAS /tmp/ccbUHtu7.s page 194 3189 .loc 1 1649 23 is_stmt 0 discriminator 2 view .LVU1071 3190 003c 134B ldr r3, .L227 3191 .LVL193: 1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3192 .loc 1 1649 23 discriminator 2 view .LVU1072 3193 003e E362 str r3, [r4, #44] 3194 .LVL194: 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3195 .loc 1 1650 5 is_stmt 1 discriminator 2 view .LVU1073 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3196 .loc 1 1650 23 is_stmt 0 discriminator 2 view .LVU1074 3197 0040 134B ldr r3, .L227+4 3198 0042 6363 str r3, [r4, #52] 1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3199 .loc 1 1652 5 is_stmt 1 discriminator 2 view .LVU1075 1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3200 .loc 1 1652 13 is_stmt 0 discriminator 2 view .LVU1076 3201 0044 638D ldrh r3, [r4, #42] 3202 0046 9BB2 uxth r3, r3 1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3203 .loc 1 1652 8 discriminator 2 view .LVU1077 3204 0048 FF2B cmp r3, #255 3205 004a 14D9 bls .L221 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3206 .loc 1 1654 7 is_stmt 1 view .LVU1078 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3207 .loc 1 1654 22 is_stmt 0 view .LVU1079 3208 004c FF23 movs r3, #255 3209 004e 2385 strh r3, [r4, #40] @ movhi 1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3210 .loc 1 1655 7 is_stmt 1 view .LVU1080 3211 .LVL195: 1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3212 .loc 1 1655 16 is_stmt 0 view .LVU1081 3213 0050 4FF08073 mov r3, #16777216 3214 .LVL196: 3215 .L222: 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3216 .loc 1 1665 5 is_stmt 1 view .LVU1082 3217 0054 0F4A ldr r2, .L227+8 3218 .LVL197: 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3219 .loc 1 1665 5 is_stmt 0 view .LVU1083 3220 0056 0092 str r2, [sp] 3221 .LVL198: 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3222 .loc 1 1665 5 view .LVU1084 3223 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3224 005c 2046 mov r0, r4 3225 005e FFF7FEFF bl I2C_TransferConfig 3226 .LVL199: 1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3227 .loc 1 1668 5 is_stmt 1 view .LVU1085 1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3228 .loc 1 1668 5 view .LVU1086 3229 0062 0025 movs r5, #0 3230 0064 84F84050 strb r5, [r4, #64] ARM GAS /tmp/ccbUHtu7.s page 195 1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3231 .loc 1 1668 5 view .LVU1087 1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3232 .loc 1 1678 5 view .LVU1088 3233 0068 0121 movs r1, #1 3234 006a 2046 mov r0, r4 3235 006c FFF7FEFF bl I2C_Enable_IRQ 3236 .LVL200: 1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3237 .loc 1 1680 5 view .LVU1089 1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3238 .loc 1 1680 12 is_stmt 0 view .LVU1090 3239 0070 2846 mov r0, r5 3240 .LVL201: 3241 .L220: 1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3242 .loc 1 1686 1 view .LVU1091 3243 0072 03B0 add sp, sp, #12 3244 .LCFI37: 3245 .cfi_remember_state 3246 .cfi_def_cfa_offset 12 3247 @ sp needed 3248 0074 30BD pop {r4, r5, pc} 3249 .LVL202: 3250 .L221: 3251 .LCFI38: 3252 .cfi_restore_state 1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3253 .loc 1 1659 7 is_stmt 1 view .LVU1092 1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3254 .loc 1 1659 28 is_stmt 0 view .LVU1093 3255 0076 638D ldrh r3, [r4, #42] 1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3256 .loc 1 1659 22 view .LVU1094 3257 0078 2385 strh r3, [r4, #40] @ movhi 1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3258 .loc 1 1660 7 is_stmt 1 view .LVU1095 3259 .LVL203: 1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3260 .loc 1 1660 16 is_stmt 0 view .LVU1096 3261 007a 4FF00073 mov r3, #33554432 3262 007e E9E7 b .L222 3263 .LVL204: 3264 .L223: 1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3265 .loc 1 1684 12 view .LVU1097 3266 0080 0220 movs r0, #2 3267 0082 F6E7 b .L220 3268 .L224: 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3269 .loc 1 1636 14 view .LVU1098 3270 0084 0220 movs r0, #2 3271 0086 F4E7 b .L220 3272 .L225: 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3273 .loc 1 1640 5 view .LVU1099 3274 0088 0220 movs r0, #2 ARM GAS /tmp/ccbUHtu7.s page 196 3275 008a F2E7 b .L220 3276 .L228: 3277 .align 2 3278 .L227: 3279 008c 0000FFFF .word -65536 3280 0090 00000000 .word I2C_Master_ISR_IT 3281 0094 00200080 .word -2147475456 3282 .cfi_endproc 3283 .LFE337: 3285 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3286 .align 1 3287 .global HAL_I2C_Master_Receive_IT 3288 .syntax unified 3289 .thumb 3290 .thumb_func 3292 HAL_I2C_Master_Receive_IT: 3293 .LVL205: 3294 .LFB338: 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3295 .loc 1 1700 1 is_stmt 1 view -0 3296 .cfi_startproc 3297 @ args = 0, pretend = 0, frame = 0 3298 @ frame_needed = 0, uses_anonymous_args = 0 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3299 .loc 1 1700 1 is_stmt 0 view .LVU1101 3300 0000 30B5 push {r4, r5, lr} 3301 .LCFI39: 3302 .cfi_def_cfa_offset 12 3303 .cfi_offset 4, -12 3304 .cfi_offset 5, -8 3305 .cfi_offset 14, -4 3306 0002 83B0 sub sp, sp, #12 3307 .LCFI40: 3308 .cfi_def_cfa_offset 24 3309 0004 0446 mov r4, r0 1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3310 .loc 1 1701 3 is_stmt 1 view .LVU1102 1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3311 .loc 1 1703 3 view .LVU1103 1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3312 .loc 1 1703 11 is_stmt 0 view .LVU1104 3313 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3314 .LVL206: 1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3315 .loc 1 1703 11 view .LVU1105 3316 000a C0B2 uxtb r0, r0 1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3317 .loc 1 1703 6 view .LVU1106 3318 000c 2028 cmp r0, #32 3319 000e 37D1 bne .L233 1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3320 .loc 1 1705 5 is_stmt 1 view .LVU1107 1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3321 .loc 1 1705 9 is_stmt 0 view .LVU1108 3322 0010 2068 ldr r0, [r4] 3323 0012 8069 ldr r0, [r0, #24] 1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 197 3324 .loc 1 1705 8 view .LVU1109 3325 0014 10F4004F tst r0, #32768 3326 0018 34D1 bne .L234 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3327 .loc 1 1711 5 is_stmt 1 view .LVU1110 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3328 .loc 1 1711 5 view .LVU1111 3329 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3330 001e 0128 cmp r0, #1 3331 0020 32D0 beq .L235 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3332 .loc 1 1711 5 discriminator 2 view .LVU1112 3333 0022 0120 movs r0, #1 3334 0024 84F84000 strb r0, [r4, #64] 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3335 .loc 1 1711 5 discriminator 2 view .LVU1113 1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3336 .loc 1 1713 5 discriminator 2 view .LVU1114 1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3337 .loc 1 1713 23 is_stmt 0 discriminator 2 view .LVU1115 3338 0028 2220 movs r0, #34 3339 002a 84F84100 strb r0, [r4, #65] 1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3340 .loc 1 1714 5 is_stmt 1 discriminator 2 view .LVU1116 1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3341 .loc 1 1714 23 is_stmt 0 discriminator 2 view .LVU1117 3342 002e 1020 movs r0, #16 3343 0030 84F84200 strb r0, [r4, #66] 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3344 .loc 1 1715 5 is_stmt 1 discriminator 2 view .LVU1118 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3345 .loc 1 1715 23 is_stmt 0 discriminator 2 view .LVU1119 3346 0034 0020 movs r0, #0 3347 0036 6064 str r0, [r4, #68] 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3348 .loc 1 1718 5 is_stmt 1 discriminator 2 view .LVU1120 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3349 .loc 1 1718 23 is_stmt 0 discriminator 2 view .LVU1121 3350 0038 6262 str r2, [r4, #36] 1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3351 .loc 1 1719 5 is_stmt 1 discriminator 2 view .LVU1122 1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3352 .loc 1 1719 23 is_stmt 0 discriminator 2 view .LVU1123 3353 003a 6385 strh r3, [r4, #42] @ movhi 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3354 .loc 1 1720 5 is_stmt 1 discriminator 2 view .LVU1124 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3355 .loc 1 1720 23 is_stmt 0 discriminator 2 view .LVU1125 3356 003c 134B ldr r3, .L237 3357 .LVL207: 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3358 .loc 1 1720 23 discriminator 2 view .LVU1126 3359 003e E362 str r3, [r4, #44] 3360 .LVL208: 1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3361 .loc 1 1721 5 is_stmt 1 discriminator 2 view .LVU1127 1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 198 3362 .loc 1 1721 23 is_stmt 0 discriminator 2 view .LVU1128 3363 0040 134B ldr r3, .L237+4 3364 0042 6363 str r3, [r4, #52] 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3365 .loc 1 1723 5 is_stmt 1 discriminator 2 view .LVU1129 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3366 .loc 1 1723 13 is_stmt 0 discriminator 2 view .LVU1130 3367 0044 638D ldrh r3, [r4, #42] 3368 0046 9BB2 uxth r3, r3 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3369 .loc 1 1723 8 discriminator 2 view .LVU1131 3370 0048 FF2B cmp r3, #255 3371 004a 14D9 bls .L231 1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3372 .loc 1 1725 7 is_stmt 1 view .LVU1132 1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3373 .loc 1 1725 22 is_stmt 0 view .LVU1133 3374 004c FF23 movs r3, #255 3375 004e 2385 strh r3, [r4, #40] @ movhi 1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3376 .loc 1 1726 7 is_stmt 1 view .LVU1134 3377 .LVL209: 1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3378 .loc 1 1726 16 is_stmt 0 view .LVU1135 3379 0050 4FF08073 mov r3, #16777216 3380 .LVL210: 3381 .L232: 1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3382 .loc 1 1736 5 is_stmt 1 view .LVU1136 3383 0054 0F4A ldr r2, .L237+8 3384 .LVL211: 1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3385 .loc 1 1736 5 is_stmt 0 view .LVU1137 3386 0056 0092 str r2, [sp] 3387 .LVL212: 1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3388 .loc 1 1736 5 view .LVU1138 3389 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3390 005c 2046 mov r0, r4 3391 005e FFF7FEFF bl I2C_TransferConfig 3392 .LVL213: 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3393 .loc 1 1739 5 is_stmt 1 view .LVU1139 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3394 .loc 1 1739 5 view .LVU1140 3395 0062 0025 movs r5, #0 3396 0064 84F84050 strb r5, [r4, #64] 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3397 .loc 1 1739 5 view .LVU1141 1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3398 .loc 1 1749 5 view .LVU1142 3399 0068 0221 movs r1, #2 3400 006a 2046 mov r0, r4 3401 006c FFF7FEFF bl I2C_Enable_IRQ 3402 .LVL214: 1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3403 .loc 1 1751 5 view .LVU1143 ARM GAS /tmp/ccbUHtu7.s page 199 1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3404 .loc 1 1751 12 is_stmt 0 view .LVU1144 3405 0070 2846 mov r0, r5 3406 .LVL215: 3407 .L230: 1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3408 .loc 1 1757 1 view .LVU1145 3409 0072 03B0 add sp, sp, #12 3410 .LCFI41: 3411 .cfi_remember_state 3412 .cfi_def_cfa_offset 12 3413 @ sp needed 3414 0074 30BD pop {r4, r5, pc} 3415 .LVL216: 3416 .L231: 3417 .LCFI42: 3418 .cfi_restore_state 1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3419 .loc 1 1730 7 is_stmt 1 view .LVU1146 1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3420 .loc 1 1730 28 is_stmt 0 view .LVU1147 3421 0076 638D ldrh r3, [r4, #42] 1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3422 .loc 1 1730 22 view .LVU1148 3423 0078 2385 strh r3, [r4, #40] @ movhi 1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3424 .loc 1 1731 7 is_stmt 1 view .LVU1149 3425 .LVL217: 1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3426 .loc 1 1731 16 is_stmt 0 view .LVU1150 3427 007a 4FF00073 mov r3, #33554432 3428 007e E9E7 b .L232 3429 .LVL218: 3430 .L233: 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3431 .loc 1 1755 12 view .LVU1151 3432 0080 0220 movs r0, #2 3433 0082 F6E7 b .L230 3434 .L234: 1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3435 .loc 1 1707 14 view .LVU1152 3436 0084 0220 movs r0, #2 3437 0086 F4E7 b .L230 3438 .L235: 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3439 .loc 1 1711 5 view .LVU1153 3440 0088 0220 movs r0, #2 3441 008a F2E7 b .L230 3442 .L238: 3443 .align 2 3444 .L237: 3445 008c 0000FFFF .word -65536 3446 0090 00000000 .word I2C_Master_ISR_IT 3447 0094 00240080 .word -2147474432 3448 .cfi_endproc 3449 .LFE338: 3451 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits ARM GAS /tmp/ccbUHtu7.s page 200 3452 .align 1 3453 .global HAL_I2C_Slave_Transmit_IT 3454 .syntax unified 3455 .thumb 3456 .thumb_func 3458 HAL_I2C_Slave_Transmit_IT: 3459 .LVL219: 3460 .LFB339: 1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3461 .loc 1 1768 1 is_stmt 1 view -0 3462 .cfi_startproc 3463 @ args = 0, pretend = 0, frame = 0 3464 @ frame_needed = 0, uses_anonymous_args = 0 1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3465 .loc 1 1768 1 is_stmt 0 view .LVU1155 3466 0000 38B5 push {r3, r4, r5, lr} 3467 .LCFI43: 3468 .cfi_def_cfa_offset 16 3469 .cfi_offset 3, -16 3470 .cfi_offset 4, -12 3471 .cfi_offset 5, -8 3472 .cfi_offset 14, -4 1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3473 .loc 1 1769 3 is_stmt 1 view .LVU1156 1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3474 .loc 1 1769 11 is_stmt 0 view .LVU1157 3475 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3476 0006 DBB2 uxtb r3, r3 1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3477 .loc 1 1769 6 view .LVU1158 3478 0008 202B cmp r3, #32 3479 000a 23D1 bne .L241 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3480 .loc 1 1772 5 is_stmt 1 view .LVU1159 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3481 .loc 1 1772 5 view .LVU1160 3482 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3483 0010 012B cmp r3, #1 3484 0012 21D0 beq .L242 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3485 .loc 1 1772 5 discriminator 2 view .LVU1161 3486 0014 0123 movs r3, #1 3487 0016 80F84030 strb r3, [r0, #64] 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3488 .loc 1 1772 5 discriminator 2 view .LVU1162 1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3489 .loc 1 1774 5 discriminator 2 view .LVU1163 1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3490 .loc 1 1774 23 is_stmt 0 discriminator 2 view .LVU1164 3491 001a 2123 movs r3, #33 3492 001c 80F84130 strb r3, [r0, #65] 1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3493 .loc 1 1775 5 is_stmt 1 discriminator 2 view .LVU1165 1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3494 .loc 1 1775 23 is_stmt 0 discriminator 2 view .LVU1166 3495 0020 2023 movs r3, #32 3496 0022 80F84230 strb r3, [r0, #66] ARM GAS /tmp/ccbUHtu7.s page 201 1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3497 .loc 1 1776 5 is_stmt 1 discriminator 2 view .LVU1167 1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3498 .loc 1 1776 23 is_stmt 0 discriminator 2 view .LVU1168 3499 0026 0024 movs r4, #0 3500 0028 4464 str r4, [r0, #68] 1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3501 .loc 1 1779 5 is_stmt 1 discriminator 2 view .LVU1169 1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3502 .loc 1 1779 9 is_stmt 0 discriminator 2 view .LVU1170 3503 002a 0568 ldr r5, [r0] 1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3504 .loc 1 1779 19 discriminator 2 view .LVU1171 3505 002c 6B68 ldr r3, [r5, #4] 1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3506 .loc 1 1779 25 discriminator 2 view .LVU1172 3507 002e 23F40043 bic r3, r3, #32768 3508 0032 6B60 str r3, [r5, #4] 1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3509 .loc 1 1782 5 is_stmt 1 discriminator 2 view .LVU1173 1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3510 .loc 1 1782 23 is_stmt 0 discriminator 2 view .LVU1174 3511 0034 4162 str r1, [r0, #36] 1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3512 .loc 1 1783 5 is_stmt 1 discriminator 2 view .LVU1175 1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3513 .loc 1 1783 23 is_stmt 0 discriminator 2 view .LVU1176 3514 0036 4285 strh r2, [r0, #42] @ movhi 1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3515 .loc 1 1784 5 is_stmt 1 discriminator 2 view .LVU1177 1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3516 .loc 1 1784 29 is_stmt 0 discriminator 2 view .LVU1178 3517 0038 438D ldrh r3, [r0, #42] 1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3518 .loc 1 1784 23 discriminator 2 view .LVU1179 3519 003a 0385 strh r3, [r0, #40] @ movhi 1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3520 .loc 1 1785 5 is_stmt 1 discriminator 2 view .LVU1180 1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3521 .loc 1 1785 23 is_stmt 0 discriminator 2 view .LVU1181 3522 003c 074B ldr r3, .L244 3523 003e C362 str r3, [r0, #44] 1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3524 .loc 1 1786 5 is_stmt 1 discriminator 2 view .LVU1182 1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3525 .loc 1 1786 23 is_stmt 0 discriminator 2 view .LVU1183 3526 0040 074B ldr r3, .L244+4 3527 0042 4363 str r3, [r0, #52] 1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3528 .loc 1 1789 5 is_stmt 1 discriminator 2 view .LVU1184 1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3529 .loc 1 1789 5 discriminator 2 view .LVU1185 3530 0044 80F84040 strb r4, [r0, #64] 1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3531 .loc 1 1789 5 discriminator 2 view .LVU1186 1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3532 .loc 1 1799 5 discriminator 2 view .LVU1187 ARM GAS /tmp/ccbUHtu7.s page 202 3533 0048 48F20101 movw r1, #32769 3534 .LVL220: 1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3535 .loc 1 1799 5 is_stmt 0 discriminator 2 view .LVU1188 3536 004c FFF7FEFF bl I2C_Enable_IRQ 3537 .LVL221: 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3538 .loc 1 1801 5 is_stmt 1 discriminator 2 view .LVU1189 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3539 .loc 1 1801 12 is_stmt 0 discriminator 2 view .LVU1190 3540 0050 2046 mov r0, r4 3541 .L240: 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3542 .loc 1 1807 1 view .LVU1191 3543 0052 38BD pop {r3, r4, r5, pc} 3544 .LVL222: 3545 .L241: 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3546 .loc 1 1805 12 view .LVU1192 3547 0054 0220 movs r0, #2 3548 .LVL223: 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3549 .loc 1 1805 12 view .LVU1193 3550 0056 FCE7 b .L240 3551 .LVL224: 3552 .L242: 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3553 .loc 1 1772 5 view .LVU1194 3554 0058 0220 movs r0, #2 3555 .LVL225: 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3556 .loc 1 1772 5 view .LVU1195 3557 005a FAE7 b .L240 3558 .L245: 3559 .align 2 3560 .L244: 3561 005c 0000FFFF .word -65536 3562 0060 00000000 .word I2C_Slave_ISR_IT 3563 .cfi_endproc 3564 .LFE339: 3566 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3567 .align 1 3568 .global HAL_I2C_Slave_Receive_IT 3569 .syntax unified 3570 .thumb 3571 .thumb_func 3573 HAL_I2C_Slave_Receive_IT: 3574 .LVL226: 3575 .LFB340: 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3576 .loc 1 1818 1 is_stmt 1 view -0 3577 .cfi_startproc 3578 @ args = 0, pretend = 0, frame = 0 3579 @ frame_needed = 0, uses_anonymous_args = 0 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3580 .loc 1 1818 1 is_stmt 0 view .LVU1197 3581 0000 38B5 push {r3, r4, r5, lr} ARM GAS /tmp/ccbUHtu7.s page 203 3582 .LCFI44: 3583 .cfi_def_cfa_offset 16 3584 .cfi_offset 3, -16 3585 .cfi_offset 4, -12 3586 .cfi_offset 5, -8 3587 .cfi_offset 14, -4 1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3588 .loc 1 1819 3 is_stmt 1 view .LVU1198 1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3589 .loc 1 1819 11 is_stmt 0 view .LVU1199 3590 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3591 0006 DBB2 uxtb r3, r3 1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3592 .loc 1 1819 6 view .LVU1200 3593 0008 202B cmp r3, #32 3594 000a 23D1 bne .L248 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3595 .loc 1 1822 5 is_stmt 1 view .LVU1201 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3596 .loc 1 1822 5 view .LVU1202 3597 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3598 0010 012B cmp r3, #1 3599 0012 21D0 beq .L249 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3600 .loc 1 1822 5 discriminator 2 view .LVU1203 3601 0014 0123 movs r3, #1 3602 0016 80F84030 strb r3, [r0, #64] 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3603 .loc 1 1822 5 discriminator 2 view .LVU1204 1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3604 .loc 1 1824 5 discriminator 2 view .LVU1205 1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3605 .loc 1 1824 23 is_stmt 0 discriminator 2 view .LVU1206 3606 001a 2223 movs r3, #34 3607 001c 80F84130 strb r3, [r0, #65] 1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3608 .loc 1 1825 5 is_stmt 1 discriminator 2 view .LVU1207 1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3609 .loc 1 1825 23 is_stmt 0 discriminator 2 view .LVU1208 3610 0020 2023 movs r3, #32 3611 0022 80F84230 strb r3, [r0, #66] 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3612 .loc 1 1826 5 is_stmt 1 discriminator 2 view .LVU1209 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3613 .loc 1 1826 23 is_stmt 0 discriminator 2 view .LVU1210 3614 0026 0024 movs r4, #0 3615 0028 4464 str r4, [r0, #68] 1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3616 .loc 1 1829 5 is_stmt 1 discriminator 2 view .LVU1211 1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3617 .loc 1 1829 9 is_stmt 0 discriminator 2 view .LVU1212 3618 002a 0568 ldr r5, [r0] 1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3619 .loc 1 1829 19 discriminator 2 view .LVU1213 3620 002c 6B68 ldr r3, [r5, #4] 1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3621 .loc 1 1829 25 discriminator 2 view .LVU1214 ARM GAS /tmp/ccbUHtu7.s page 204 3622 002e 23F40043 bic r3, r3, #32768 3623 0032 6B60 str r3, [r5, #4] 1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3624 .loc 1 1832 5 is_stmt 1 discriminator 2 view .LVU1215 1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3625 .loc 1 1832 23 is_stmt 0 discriminator 2 view .LVU1216 3626 0034 4162 str r1, [r0, #36] 1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3627 .loc 1 1833 5 is_stmt 1 discriminator 2 view .LVU1217 1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3628 .loc 1 1833 23 is_stmt 0 discriminator 2 view .LVU1218 3629 0036 4285 strh r2, [r0, #42] @ movhi 1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3630 .loc 1 1834 5 is_stmt 1 discriminator 2 view .LVU1219 1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3631 .loc 1 1834 29 is_stmt 0 discriminator 2 view .LVU1220 3632 0038 438D ldrh r3, [r0, #42] 1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3633 .loc 1 1834 23 discriminator 2 view .LVU1221 3634 003a 0385 strh r3, [r0, #40] @ movhi 1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3635 .loc 1 1835 5 is_stmt 1 discriminator 2 view .LVU1222 1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3636 .loc 1 1835 23 is_stmt 0 discriminator 2 view .LVU1223 3637 003c 074B ldr r3, .L251 3638 003e C362 str r3, [r0, #44] 1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3639 .loc 1 1836 5 is_stmt 1 discriminator 2 view .LVU1224 1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3640 .loc 1 1836 23 is_stmt 0 discriminator 2 view .LVU1225 3641 0040 074B ldr r3, .L251+4 3642 0042 4363 str r3, [r0, #52] 1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3643 .loc 1 1839 5 is_stmt 1 discriminator 2 view .LVU1226 1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3644 .loc 1 1839 5 discriminator 2 view .LVU1227 3645 0044 80F84040 strb r4, [r0, #64] 1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3646 .loc 1 1839 5 discriminator 2 view .LVU1228 1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3647 .loc 1 1849 5 discriminator 2 view .LVU1229 3648 0048 48F20201 movw r1, #32770 3649 .LVL227: 1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3650 .loc 1 1849 5 is_stmt 0 discriminator 2 view .LVU1230 3651 004c FFF7FEFF bl I2C_Enable_IRQ 3652 .LVL228: 1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3653 .loc 1 1851 5 is_stmt 1 discriminator 2 view .LVU1231 1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3654 .loc 1 1851 12 is_stmt 0 discriminator 2 view .LVU1232 3655 0050 2046 mov r0, r4 3656 .L247: 1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3657 .loc 1 1857 1 view .LVU1233 3658 0052 38BD pop {r3, r4, r5, pc} 3659 .LVL229: ARM GAS /tmp/ccbUHtu7.s page 205 3660 .L248: 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3661 .loc 1 1855 12 view .LVU1234 3662 0054 0220 movs r0, #2 3663 .LVL230: 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3664 .loc 1 1855 12 view .LVU1235 3665 0056 FCE7 b .L247 3666 .LVL231: 3667 .L249: 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3668 .loc 1 1822 5 view .LVU1236 3669 0058 0220 movs r0, #2 3670 .LVL232: 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3671 .loc 1 1822 5 view .LVU1237 3672 005a FAE7 b .L247 3673 .L252: 3674 .align 2 3675 .L251: 3676 005c 0000FFFF .word -65536 3677 0060 00000000 .word I2C_Slave_ISR_IT 3678 .cfi_endproc 3679 .LFE340: 3681 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3682 .align 1 3683 .global HAL_I2C_Master_Transmit_DMA 3684 .syntax unified 3685 .thumb 3686 .thumb_func 3688 HAL_I2C_Master_Transmit_DMA: 3689 .LVL233: 3690 .LFB341: 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3691 .loc 1 1871 1 is_stmt 1 view -0 3692 .cfi_startproc 3693 @ args = 0, pretend = 0, frame = 0 3694 @ frame_needed = 0, uses_anonymous_args = 0 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3695 .loc 1 1871 1 is_stmt 0 view .LVU1239 3696 0000 70B5 push {r4, r5, r6, lr} 3697 .LCFI45: 3698 .cfi_def_cfa_offset 16 3699 .cfi_offset 4, -16 3700 .cfi_offset 5, -12 3701 .cfi_offset 6, -8 3702 .cfi_offset 14, -4 3703 0002 82B0 sub sp, sp, #8 3704 .LCFI46: 3705 .cfi_def_cfa_offset 24 3706 0004 0446 mov r4, r0 1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3707 .loc 1 1872 3 is_stmt 1 view .LVU1240 1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3708 .loc 1 1873 3 view .LVU1241 1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3709 .loc 1 1875 3 view .LVU1242 ARM GAS /tmp/ccbUHtu7.s page 206 1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3710 .loc 1 1875 11 is_stmt 0 view .LVU1243 3711 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3712 .LVL234: 1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3713 .loc 1 1875 11 view .LVU1244 3714 000a C0B2 uxtb r0, r0 1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3715 .loc 1 1875 6 view .LVU1245 3716 000c 2028 cmp r0, #32 3717 000e 40F08D80 bne .L262 3718 0012 0D46 mov r5, r1 3719 0014 1146 mov r1, r2 3720 .LVL235: 1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3721 .loc 1 1877 5 is_stmt 1 view .LVU1246 1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3722 .loc 1 1877 9 is_stmt 0 view .LVU1247 3723 0016 2268 ldr r2, [r4] 3724 .LVL236: 1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3725 .loc 1 1877 9 view .LVU1248 3726 0018 9269 ldr r2, [r2, #24] 1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3727 .loc 1 1877 8 view .LVU1249 3728 001a 12F4004F tst r2, #32768 3729 001e 40F08880 bne .L263 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3730 .loc 1 1883 5 is_stmt 1 view .LVU1250 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3731 .loc 1 1883 5 view .LVU1251 3732 0022 94F84020 ldrb r2, [r4, #64] @ zero_extendqisi2 3733 0026 012A cmp r2, #1 3734 0028 00F08580 beq .L264 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3735 .loc 1 1883 5 discriminator 2 view .LVU1252 3736 002c 0122 movs r2, #1 3737 002e 84F84020 strb r2, [r4, #64] 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3738 .loc 1 1883 5 discriminator 2 view .LVU1253 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3739 .loc 1 1885 5 discriminator 2 view .LVU1254 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3740 .loc 1 1885 23 is_stmt 0 discriminator 2 view .LVU1255 3741 0032 2122 movs r2, #33 3742 0034 84F84120 strb r2, [r4, #65] 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3743 .loc 1 1886 5 is_stmt 1 discriminator 2 view .LVU1256 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3744 .loc 1 1886 23 is_stmt 0 discriminator 2 view .LVU1257 3745 0038 1022 movs r2, #16 3746 003a 84F84220 strb r2, [r4, #66] 1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3747 .loc 1 1887 5 is_stmt 1 discriminator 2 view .LVU1258 1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3748 .loc 1 1887 23 is_stmt 0 discriminator 2 view .LVU1259 3749 003e 0022 movs r2, #0 ARM GAS /tmp/ccbUHtu7.s page 207 3750 0040 6264 str r2, [r4, #68] 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3751 .loc 1 1890 5 is_stmt 1 discriminator 2 view .LVU1260 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3752 .loc 1 1890 23 is_stmt 0 discriminator 2 view .LVU1261 3753 0042 6162 str r1, [r4, #36] 1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3754 .loc 1 1891 5 is_stmt 1 discriminator 2 view .LVU1262 1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3755 .loc 1 1891 23 is_stmt 0 discriminator 2 view .LVU1263 3756 0044 6385 strh r3, [r4, #42] @ movhi 1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3757 .loc 1 1892 5 is_stmt 1 discriminator 2 view .LVU1264 1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3758 .loc 1 1892 23 is_stmt 0 discriminator 2 view .LVU1265 3759 0046 3D4B ldr r3, .L268 3760 .LVL237: 1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3761 .loc 1 1892 23 discriminator 2 view .LVU1266 3762 0048 E362 str r3, [r4, #44] 3763 .LVL238: 1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3764 .loc 1 1893 5 is_stmt 1 discriminator 2 view .LVU1267 1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3765 .loc 1 1893 23 is_stmt 0 discriminator 2 view .LVU1268 3766 004a 3D4B ldr r3, .L268+4 3767 004c 6363 str r3, [r4, #52] 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3768 .loc 1 1895 5 is_stmt 1 discriminator 2 view .LVU1269 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3769 .loc 1 1895 13 is_stmt 0 discriminator 2 view .LVU1270 3770 004e 638D ldrh r3, [r4, #42] 3771 0050 9BB2 uxth r3, r3 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3772 .loc 1 1895 8 discriminator 2 view .LVU1271 3773 0052 FF2B cmp r3, #255 3774 0054 27D9 bls .L255 1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3775 .loc 1 1897 7 is_stmt 1 view .LVU1272 1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3776 .loc 1 1897 22 is_stmt 0 view .LVU1273 3777 0056 FF23 movs r3, #255 3778 0058 2385 strh r3, [r4, #40] @ movhi 1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3779 .loc 1 1898 7 is_stmt 1 view .LVU1274 3780 .LVL239: 1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3781 .loc 1 1898 16 is_stmt 0 view .LVU1275 3782 005a 4FF08076 mov r6, #16777216 3783 .LVL240: 3784 .L256: 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3785 .loc 1 1906 5 is_stmt 1 view .LVU1276 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3786 .loc 1 1906 13 is_stmt 0 view .LVU1277 3787 005e 228D ldrh r2, [r4, #40] 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 208 3788 .loc 1 1906 8 view .LVU1278 3789 0060 002A cmp r2, #0 3790 0062 4FD0 beq .L257 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3791 .loc 1 1908 7 is_stmt 1 view .LVU1279 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3792 .loc 1 1908 15 is_stmt 0 view .LVU1280 3793 0064 A36B ldr r3, [r4, #56] 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3794 .loc 1 1908 10 view .LVU1281 3795 0066 1BB3 cbz r3, .L258 1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3796 .loc 1 1911 9 is_stmt 1 view .LVU1282 1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3797 .loc 1 1911 40 is_stmt 0 view .LVU1283 3798 0068 364A ldr r2, .L268+8 3799 006a DA62 str r2, [r3, #44] 1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3800 .loc 1 1914 9 is_stmt 1 view .LVU1284 1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3801 .loc 1 1914 13 is_stmt 0 view .LVU1285 3802 006c A36B ldr r3, [r4, #56] 1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3803 .loc 1 1914 41 view .LVU1286 3804 006e 364A ldr r2, .L268+12 3805 0070 5A63 str r2, [r3, #52] 1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3806 .loc 1 1917 9 is_stmt 1 view .LVU1287 1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3807 .loc 1 1917 13 is_stmt 0 view .LVU1288 3808 0072 A26B ldr r2, [r4, #56] 1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3809 .loc 1 1917 44 view .LVU1289 3810 0074 0023 movs r3, #0 3811 0076 1363 str r3, [r2, #48] 1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3812 .loc 1 1918 9 is_stmt 1 view .LVU1290 1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3813 .loc 1 1918 13 is_stmt 0 view .LVU1291 3814 0078 A26B ldr r2, [r4, #56] 1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3815 .loc 1 1918 41 view .LVU1292 3816 007a 9363 str r3, [r2, #56] 1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3817 .loc 1 1921 9 is_stmt 1 view .LVU1293 1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3818 .loc 1 1921 88 is_stmt 0 view .LVU1294 3819 007c 2268 ldr r2, [r4] 1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3820 .loc 1 1921 25 view .LVU1295 3821 007e 238D ldrh r3, [r4, #40] 3822 0080 2832 adds r2, r2, #40 3823 0082 A06B ldr r0, [r4, #56] 3824 0084 FFF7FEFF bl HAL_DMA_Start_IT 3825 .LVL241: 1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3826 .loc 1 1939 7 is_stmt 1 view .LVU1296 ARM GAS /tmp/ccbUHtu7.s page 209 1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3827 .loc 1 1939 10 is_stmt 0 view .LVU1297 3828 0088 00B3 cbz r0, .L267 1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3829 .loc 1 1963 9 is_stmt 1 view .LVU1298 1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3830 .loc 1 1963 25 is_stmt 0 view .LVU1299 3831 008a 2023 movs r3, #32 3832 008c 84F84130 strb r3, [r4, #65] 1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3833 .loc 1 1964 9 is_stmt 1 view .LVU1300 1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3834 .loc 1 1964 25 is_stmt 0 view .LVU1301 3835 0090 0022 movs r2, #0 3836 0092 84F84220 strb r2, [r4, #66] 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3837 .loc 1 1967 9 is_stmt 1 view .LVU1302 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3838 .loc 1 1967 13 is_stmt 0 view .LVU1303 3839 0096 636C ldr r3, [r4, #68] 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3840 .loc 1 1967 25 view .LVU1304 3841 0098 43F01003 orr r3, r3, #16 3842 009c 6364 str r3, [r4, #68] 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3843 .loc 1 1970 9 is_stmt 1 view .LVU1305 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3844 .loc 1 1970 9 view .LVU1306 3845 009e 84F84020 strb r2, [r4, #64] 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3846 .loc 1 1970 9 view .LVU1307 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3847 .loc 1 1972 9 view .LVU1308 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3848 .loc 1 1972 16 is_stmt 0 view .LVU1309 3849 00a2 0120 movs r0, #1 3850 .LVL242: 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3851 .loc 1 1972 16 view .LVU1310 3852 00a4 43E0 b .L254 3853 .LVL243: 3854 .L255: 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3855 .loc 1 1902 7 is_stmt 1 view .LVU1311 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3856 .loc 1 1902 28 is_stmt 0 view .LVU1312 3857 00a6 638D ldrh r3, [r4, #42] 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3858 .loc 1 1902 22 view .LVU1313 3859 00a8 2385 strh r3, [r4, #40] @ movhi 1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3860 .loc 1 1903 7 is_stmt 1 view .LVU1314 3861 .LVL244: 1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3862 .loc 1 1903 16 is_stmt 0 view .LVU1315 3863 00aa 4FF00076 mov r6, #33554432 3864 00ae D6E7 b .L256 ARM GAS /tmp/ccbUHtu7.s page 210 3865 .LVL245: 3866 .L258: 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3867 .loc 1 1927 9 is_stmt 1 view .LVU1316 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3868 .loc 1 1927 25 is_stmt 0 view .LVU1317 3869 00b0 2023 movs r3, #32 3870 00b2 84F84130 strb r3, [r4, #65] 1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3871 .loc 1 1928 9 is_stmt 1 view .LVU1318 1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3872 .loc 1 1928 25 is_stmt 0 view .LVU1319 3873 00b6 0022 movs r2, #0 3874 00b8 84F84220 strb r2, [r4, #66] 1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3875 .loc 1 1931 9 is_stmt 1 view .LVU1320 1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3876 .loc 1 1931 13 is_stmt 0 view .LVU1321 3877 00bc 636C ldr r3, [r4, #68] 1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3878 .loc 1 1931 25 view .LVU1322 3879 00be 43F08003 orr r3, r3, #128 3880 00c2 6364 str r3, [r4, #68] 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3881 .loc 1 1934 9 is_stmt 1 view .LVU1323 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3882 .loc 1 1934 9 view .LVU1324 3883 00c4 84F84020 strb r2, [r4, #64] 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3884 .loc 1 1934 9 view .LVU1325 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3885 .loc 1 1936 9 view .LVU1326 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3886 .loc 1 1936 16 is_stmt 0 view .LVU1327 3887 00c8 0120 movs r0, #1 3888 00ca 30E0 b .L254 3889 .LVL246: 3890 .L267: 1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3891 .loc 1 1943 9 is_stmt 1 view .LVU1328 3892 00cc 1F4B ldr r3, .L268+16 3893 00ce 0093 str r3, [sp] 3894 00d0 3346 mov r3, r6 3895 00d2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3896 00d6 2946 mov r1, r5 3897 00d8 2046 mov r0, r4 3898 .LVL247: 1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3899 .loc 1 1943 9 is_stmt 0 view .LVU1329 3900 00da FFF7FEFF bl I2C_TransferConfig 3901 .LVL248: 1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3902 .loc 1 1946 9 is_stmt 1 view .LVU1330 1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3903 .loc 1 1946 13 is_stmt 0 view .LVU1331 3904 00de 638D ldrh r3, [r4, #42] 3905 00e0 9BB2 uxth r3, r3 ARM GAS /tmp/ccbUHtu7.s page 211 1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3906 .loc 1 1946 32 view .LVU1332 3907 00e2 228D ldrh r2, [r4, #40] 1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3908 .loc 1 1946 25 view .LVU1333 3909 00e4 9B1A subs r3, r3, r2 3910 00e6 9BB2 uxth r3, r3 3911 00e8 6385 strh r3, [r4, #42] @ movhi 1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3912 .loc 1 1949 9 is_stmt 1 view .LVU1334 1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3913 .loc 1 1949 9 view .LVU1335 3914 00ea 0023 movs r3, #0 3915 00ec 84F84030 strb r3, [r4, #64] 1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3916 .loc 1 1949 9 view .LVU1336 1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3917 .loc 1 1955 9 view .LVU1337 3918 00f0 1021 movs r1, #16 3919 00f2 2046 mov r0, r4 3920 00f4 FFF7FEFF bl I2C_Enable_IRQ 3921 .LVL249: 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3922 .loc 1 1958 9 view .LVU1338 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3923 .loc 1 1958 13 is_stmt 0 view .LVU1339 3924 00f8 2268 ldr r2, [r4] 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3925 .loc 1 1958 23 view .LVU1340 3926 00fa 1368 ldr r3, [r2] 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3927 .loc 1 1958 29 view .LVU1341 3928 00fc 43F48043 orr r3, r3, #16384 3929 0100 1360 str r3, [r2] 3930 0102 11E0 b .L261 3931 .LVL250: 3932 .L257: 1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3933 .loc 1 1978 7 is_stmt 1 view .LVU1342 1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3934 .loc 1 1978 21 is_stmt 0 view .LVU1343 3935 0104 124B ldr r3, .L268+20 3936 0106 6363 str r3, [r4, #52] 1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3937 .loc 1 1982 7 is_stmt 1 view .LVU1344 3938 0108 104B ldr r3, .L268+16 3939 010a 0093 str r3, [sp] 3940 010c 4FF00073 mov r3, #33554432 3941 0110 D2B2 uxtb r2, r2 3942 0112 2946 mov r1, r5 3943 .LVL251: 1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3944 .loc 1 1982 7 is_stmt 0 view .LVU1345 3945 0114 2046 mov r0, r4 3946 0116 FFF7FEFF bl I2C_TransferConfig 3947 .LVL252: 1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 212 3948 .loc 1 1986 7 is_stmt 1 view .LVU1346 1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3949 .loc 1 1986 7 view .LVU1347 3950 011a 0023 movs r3, #0 3951 011c 84F84030 strb r3, [r4, #64] 1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3952 .loc 1 1986 7 view .LVU1348 1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3953 .loc 1 1995 7 view .LVU1349 3954 0120 0121 movs r1, #1 3955 0122 2046 mov r0, r4 3956 0124 FFF7FEFF bl I2C_Enable_IRQ 3957 .LVL253: 3958 .L261: 1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3959 .loc 1 1998 5 view .LVU1350 1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3960 .loc 1 1998 12 is_stmt 0 view .LVU1351 3961 0128 0020 movs r0, #0 3962 012a 00E0 b .L254 3963 .LVL254: 3964 .L262: 2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3965 .loc 1 2002 12 view .LVU1352 3966 012c 0220 movs r0, #2 3967 .LVL255: 3968 .L254: 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3969 .loc 1 2004 1 view .LVU1353 3970 012e 02B0 add sp, sp, #8 3971 .LCFI47: 3972 .cfi_remember_state 3973 .cfi_def_cfa_offset 16 3974 @ sp needed 3975 0130 70BD pop {r4, r5, r6, pc} 3976 .LVL256: 3977 .L263: 3978 .LCFI48: 3979 .cfi_restore_state 1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3980 .loc 1 1879 14 view .LVU1354 3981 0132 0220 movs r0, #2 3982 0134 FBE7 b .L254 3983 .L264: 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3984 .loc 1 1883 5 view .LVU1355 3985 0136 0220 movs r0, #2 3986 0138 F9E7 b .L254 3987 .L269: 3988 013a 00BF .align 2 3989 .L268: 3990 013c 0000FFFF .word -65536 3991 0140 00000000 .word I2C_Master_ISR_DMA 3992 0144 00000000 .word I2C_DMAMasterTransmitCplt 3993 0148 00000000 .word I2C_DMAError 3994 014c 00200080 .word -2147475456 3995 0150 00000000 .word I2C_Master_ISR_IT ARM GAS /tmp/ccbUHtu7.s page 213 3996 .cfi_endproc 3997 .LFE341: 3999 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4000 .align 1 4001 .global HAL_I2C_Master_Receive_DMA 4002 .syntax unified 4003 .thumb 4004 .thumb_func 4006 HAL_I2C_Master_Receive_DMA: 4007 .LVL257: 4008 .LFB342: 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 4009 .loc 1 2018 1 is_stmt 1 view -0 4010 .cfi_startproc 4011 @ args = 0, pretend = 0, frame = 0 4012 @ frame_needed = 0, uses_anonymous_args = 0 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 4013 .loc 1 2018 1 is_stmt 0 view .LVU1357 4014 0000 70B5 push {r4, r5, r6, lr} 4015 .LCFI49: 4016 .cfi_def_cfa_offset 16 4017 .cfi_offset 4, -16 4018 .cfi_offset 5, -12 4019 .cfi_offset 6, -8 4020 .cfi_offset 14, -4 4021 0002 82B0 sub sp, sp, #8 4022 .LCFI50: 4023 .cfi_def_cfa_offset 24 4024 0004 0446 mov r4, r0 2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4025 .loc 1 2019 3 is_stmt 1 view .LVU1358 2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4026 .loc 1 2020 3 view .LVU1359 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4027 .loc 1 2022 3 view .LVU1360 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4028 .loc 1 2022 11 is_stmt 0 view .LVU1361 4029 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4030 .LVL258: 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4031 .loc 1 2022 11 view .LVU1362 4032 000a C0B2 uxtb r0, r0 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4033 .loc 1 2022 6 view .LVU1363 4034 000c 2028 cmp r0, #32 4035 000e 40F08C80 bne .L279 4036 0012 0D46 mov r5, r1 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4037 .loc 1 2024 5 is_stmt 1 view .LVU1364 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4038 .loc 1 2024 9 is_stmt 0 view .LVU1365 4039 0014 2168 ldr r1, [r4] 4040 .LVL259: 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4041 .loc 1 2024 9 view .LVU1366 4042 0016 8969 ldr r1, [r1, #24] 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 214 4043 .loc 1 2024 8 view .LVU1367 4044 0018 11F4004F tst r1, #32768 4045 001c 40F08880 bne .L280 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4046 .loc 1 2030 5 is_stmt 1 view .LVU1368 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4047 .loc 1 2030 5 view .LVU1369 4048 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 4049 0024 0129 cmp r1, #1 4050 0026 00F08580 beq .L281 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4051 .loc 1 2030 5 discriminator 2 view .LVU1370 4052 002a 0121 movs r1, #1 4053 002c 84F84010 strb r1, [r4, #64] 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4054 .loc 1 2030 5 discriminator 2 view .LVU1371 2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4055 .loc 1 2032 5 discriminator 2 view .LVU1372 2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4056 .loc 1 2032 23 is_stmt 0 discriminator 2 view .LVU1373 4057 0030 2221 movs r1, #34 4058 0032 84F84110 strb r1, [r4, #65] 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4059 .loc 1 2033 5 is_stmt 1 discriminator 2 view .LVU1374 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4060 .loc 1 2033 23 is_stmt 0 discriminator 2 view .LVU1375 4061 0036 1021 movs r1, #16 4062 0038 84F84210 strb r1, [r4, #66] 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4063 .loc 1 2034 5 is_stmt 1 discriminator 2 view .LVU1376 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4064 .loc 1 2034 23 is_stmt 0 discriminator 2 view .LVU1377 4065 003c 0021 movs r1, #0 4066 003e 6164 str r1, [r4, #68] 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4067 .loc 1 2037 5 is_stmt 1 discriminator 2 view .LVU1378 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4068 .loc 1 2037 23 is_stmt 0 discriminator 2 view .LVU1379 4069 0040 6262 str r2, [r4, #36] 2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4070 .loc 1 2038 5 is_stmt 1 discriminator 2 view .LVU1380 2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4071 .loc 1 2038 23 is_stmt 0 discriminator 2 view .LVU1381 4072 0042 6385 strh r3, [r4, #42] @ movhi 2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4073 .loc 1 2039 5 is_stmt 1 discriminator 2 view .LVU1382 2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4074 .loc 1 2039 23 is_stmt 0 discriminator 2 view .LVU1383 4075 0044 3C4B ldr r3, .L285 4076 .LVL260: 2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4077 .loc 1 2039 23 discriminator 2 view .LVU1384 4078 0046 E362 str r3, [r4, #44] 4079 .LVL261: 2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4080 .loc 1 2040 5 is_stmt 1 discriminator 2 view .LVU1385 2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 215 4081 .loc 1 2040 23 is_stmt 0 discriminator 2 view .LVU1386 4082 0048 3C4B ldr r3, .L285+4 4083 004a 6363 str r3, [r4, #52] 2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4084 .loc 1 2042 5 is_stmt 1 discriminator 2 view .LVU1387 2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4085 .loc 1 2042 13 is_stmt 0 discriminator 2 view .LVU1388 4086 004c 638D ldrh r3, [r4, #42] 4087 004e 9BB2 uxth r3, r3 2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4088 .loc 1 2042 8 discriminator 2 view .LVU1389 4089 0050 FF2B cmp r3, #255 4090 0052 27D9 bls .L272 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4091 .loc 1 2044 7 is_stmt 1 view .LVU1390 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4092 .loc 1 2044 22 is_stmt 0 view .LVU1391 4093 0054 FF23 movs r3, #255 4094 0056 2385 strh r3, [r4, #40] @ movhi 2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4095 .loc 1 2045 7 is_stmt 1 view .LVU1392 4096 .LVL262: 2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4097 .loc 1 2045 16 is_stmt 0 view .LVU1393 4098 0058 4FF08076 mov r6, #16777216 4099 .LVL263: 4100 .L273: 2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4101 .loc 1 2053 5 is_stmt 1 view .LVU1394 2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4102 .loc 1 2053 13 is_stmt 0 view .LVU1395 4103 005c 218D ldrh r1, [r4, #40] 2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4104 .loc 1 2053 8 view .LVU1396 4105 005e 0029 cmp r1, #0 4106 0060 4FD0 beq .L274 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4107 .loc 1 2055 7 is_stmt 1 view .LVU1397 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4108 .loc 1 2055 15 is_stmt 0 view .LVU1398 4109 0062 E36B ldr r3, [r4, #60] 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4110 .loc 1 2055 10 view .LVU1399 4111 0064 1BB3 cbz r3, .L275 2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4112 .loc 1 2058 9 is_stmt 1 view .LVU1400 2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4113 .loc 1 2058 40 is_stmt 0 view .LVU1401 4114 0066 3649 ldr r1, .L285+8 4115 0068 D962 str r1, [r3, #44] 2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4116 .loc 1 2061 9 is_stmt 1 view .LVU1402 2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4117 .loc 1 2061 13 is_stmt 0 view .LVU1403 4118 006a E36B ldr r3, [r4, #60] 2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4119 .loc 1 2061 41 view .LVU1404 ARM GAS /tmp/ccbUHtu7.s page 216 4120 006c 3549 ldr r1, .L285+12 4121 006e 5963 str r1, [r3, #52] 2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4122 .loc 1 2064 9 is_stmt 1 view .LVU1405 2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4123 .loc 1 2064 13 is_stmt 0 view .LVU1406 4124 0070 E16B ldr r1, [r4, #60] 2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4125 .loc 1 2064 44 view .LVU1407 4126 0072 0023 movs r3, #0 4127 0074 0B63 str r3, [r1, #48] 2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4128 .loc 1 2065 9 is_stmt 1 view .LVU1408 2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4129 .loc 1 2065 13 is_stmt 0 view .LVU1409 4130 0076 E16B ldr r1, [r4, #60] 2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4131 .loc 1 2065 41 view .LVU1410 4132 0078 8B63 str r3, [r1, #56] 2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4133 .loc 1 2068 9 is_stmt 1 view .LVU1411 2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4134 .loc 1 2068 71 is_stmt 0 view .LVU1412 4135 007a 2168 ldr r1, [r4] 2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4136 .loc 1 2068 25 view .LVU1413 4137 007c 238D ldrh r3, [r4, #40] 4138 007e 2431 adds r1, r1, #36 4139 0080 E06B ldr r0, [r4, #60] 4140 0082 FFF7FEFF bl HAL_DMA_Start_IT 4141 .LVL264: 2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4142 .loc 1 2086 7 is_stmt 1 view .LVU1414 2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4143 .loc 1 2086 10 is_stmt 0 view .LVU1415 4144 0086 00B3 cbz r0, .L284 2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4145 .loc 1 2110 9 is_stmt 1 view .LVU1416 2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4146 .loc 1 2110 25 is_stmt 0 view .LVU1417 4147 0088 2023 movs r3, #32 4148 008a 84F84130 strb r3, [r4, #65] 2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4149 .loc 1 2111 9 is_stmt 1 view .LVU1418 2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4150 .loc 1 2111 25 is_stmt 0 view .LVU1419 4151 008e 0022 movs r2, #0 4152 0090 84F84220 strb r2, [r4, #66] 2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4153 .loc 1 2114 9 is_stmt 1 view .LVU1420 2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4154 .loc 1 2114 13 is_stmt 0 view .LVU1421 4155 0094 636C ldr r3, [r4, #68] 2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4156 .loc 1 2114 25 view .LVU1422 4157 0096 43F01003 orr r3, r3, #16 4158 009a 6364 str r3, [r4, #68] ARM GAS /tmp/ccbUHtu7.s page 217 2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4159 .loc 1 2117 9 is_stmt 1 view .LVU1423 2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4160 .loc 1 2117 9 view .LVU1424 4161 009c 84F84020 strb r2, [r4, #64] 2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4162 .loc 1 2117 9 view .LVU1425 2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4163 .loc 1 2119 9 view .LVU1426 2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4164 .loc 1 2119 16 is_stmt 0 view .LVU1427 4165 00a0 0120 movs r0, #1 4166 .LVL265: 2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4167 .loc 1 2119 16 view .LVU1428 4168 00a2 43E0 b .L271 4169 .LVL266: 4170 .L272: 2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4171 .loc 1 2049 7 is_stmt 1 view .LVU1429 2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4172 .loc 1 2049 28 is_stmt 0 view .LVU1430 4173 00a4 638D ldrh r3, [r4, #42] 2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4174 .loc 1 2049 22 view .LVU1431 4175 00a6 2385 strh r3, [r4, #40] @ movhi 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4176 .loc 1 2050 7 is_stmt 1 view .LVU1432 4177 .LVL267: 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4178 .loc 1 2050 16 is_stmt 0 view .LVU1433 4179 00a8 4FF00076 mov r6, #33554432 4180 00ac D6E7 b .L273 4181 .LVL268: 4182 .L275: 2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4183 .loc 1 2074 9 is_stmt 1 view .LVU1434 2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4184 .loc 1 2074 25 is_stmt 0 view .LVU1435 4185 00ae 2023 movs r3, #32 4186 00b0 84F84130 strb r3, [r4, #65] 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4187 .loc 1 2075 9 is_stmt 1 view .LVU1436 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4188 .loc 1 2075 25 is_stmt 0 view .LVU1437 4189 00b4 0022 movs r2, #0 4190 .LVL269: 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4191 .loc 1 2075 25 view .LVU1438 4192 00b6 84F84220 strb r2, [r4, #66] 2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4193 .loc 1 2078 9 is_stmt 1 view .LVU1439 2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4194 .loc 1 2078 13 is_stmt 0 view .LVU1440 4195 00ba 636C ldr r3, [r4, #68] 2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4196 .loc 1 2078 25 view .LVU1441 ARM GAS /tmp/ccbUHtu7.s page 218 4197 00bc 43F08003 orr r3, r3, #128 4198 00c0 6364 str r3, [r4, #68] 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4199 .loc 1 2081 9 is_stmt 1 view .LVU1442 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4200 .loc 1 2081 9 view .LVU1443 4201 00c2 84F84020 strb r2, [r4, #64] 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4202 .loc 1 2081 9 view .LVU1444 2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4203 .loc 1 2083 9 view .LVU1445 2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4204 .loc 1 2083 16 is_stmt 0 view .LVU1446 4205 00c6 0120 movs r0, #1 4206 00c8 30E0 b .L271 4207 .LVL270: 4208 .L284: 2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4209 .loc 1 2090 9 is_stmt 1 view .LVU1447 4210 00ca 1F4B ldr r3, .L285+16 4211 00cc 0093 str r3, [sp] 4212 00ce 3346 mov r3, r6 4213 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 4214 00d4 2946 mov r1, r5 4215 00d6 2046 mov r0, r4 4216 .LVL271: 2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4217 .loc 1 2090 9 is_stmt 0 view .LVU1448 4218 00d8 FFF7FEFF bl I2C_TransferConfig 4219 .LVL272: 2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4220 .loc 1 2093 9 is_stmt 1 view .LVU1449 2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4221 .loc 1 2093 13 is_stmt 0 view .LVU1450 4222 00dc 638D ldrh r3, [r4, #42] 4223 00de 9BB2 uxth r3, r3 2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4224 .loc 1 2093 32 view .LVU1451 4225 00e0 228D ldrh r2, [r4, #40] 2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4226 .loc 1 2093 25 view .LVU1452 4227 00e2 9B1A subs r3, r3, r2 4228 00e4 9BB2 uxth r3, r3 4229 00e6 6385 strh r3, [r4, #42] @ movhi 2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4230 .loc 1 2096 9 is_stmt 1 view .LVU1453 2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4231 .loc 1 2096 9 view .LVU1454 4232 00e8 0023 movs r3, #0 4233 00ea 84F84030 strb r3, [r4, #64] 2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4234 .loc 1 2096 9 view .LVU1455 2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4235 .loc 1 2102 9 view .LVU1456 4236 00ee 1021 movs r1, #16 4237 00f0 2046 mov r0, r4 4238 00f2 FFF7FEFF bl I2C_Enable_IRQ ARM GAS /tmp/ccbUHtu7.s page 219 4239 .LVL273: 2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4240 .loc 1 2105 9 view .LVU1457 2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4241 .loc 1 2105 13 is_stmt 0 view .LVU1458 4242 00f6 2268 ldr r2, [r4] 2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4243 .loc 1 2105 23 view .LVU1459 4244 00f8 1368 ldr r3, [r2] 2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4245 .loc 1 2105 29 view .LVU1460 4246 00fa 43F40043 orr r3, r3, #32768 4247 00fe 1360 str r3, [r2] 4248 0100 11E0 b .L278 4249 .LVL274: 4250 .L274: 2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4251 .loc 1 2125 7 is_stmt 1 view .LVU1461 2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4252 .loc 1 2125 21 is_stmt 0 view .LVU1462 4253 0102 124B ldr r3, .L285+20 4254 0104 6363 str r3, [r4, #52] 2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4255 .loc 1 2129 7 is_stmt 1 view .LVU1463 4256 0106 104B ldr r3, .L285+16 4257 0108 0093 str r3, [sp] 4258 010a 4FF00073 mov r3, #33554432 4259 010e CAB2 uxtb r2, r1 4260 .LVL275: 2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4261 .loc 1 2129 7 is_stmt 0 view .LVU1464 4262 0110 2946 mov r1, r5 4263 0112 2046 mov r0, r4 4264 0114 FFF7FEFF bl I2C_TransferConfig 4265 .LVL276: 2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4266 .loc 1 2133 7 is_stmt 1 view .LVU1465 2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4267 .loc 1 2133 7 view .LVU1466 4268 0118 0023 movs r3, #0 4269 011a 84F84030 strb r3, [r4, #64] 2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4270 .loc 1 2133 7 view .LVU1467 2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4271 .loc 1 2142 7 view .LVU1468 4272 011e 0121 movs r1, #1 4273 0120 2046 mov r0, r4 4274 0122 FFF7FEFF bl I2C_Enable_IRQ 4275 .LVL277: 4276 .L278: 2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4277 .loc 1 2145 5 view .LVU1469 2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4278 .loc 1 2145 12 is_stmt 0 view .LVU1470 4279 0126 0020 movs r0, #0 4280 0128 00E0 b .L271 4281 .LVL278: ARM GAS /tmp/ccbUHtu7.s page 220 4282 .L279: 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4283 .loc 1 2149 12 view .LVU1471 4284 012a 0220 movs r0, #2 4285 .LVL279: 4286 .L271: 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4287 .loc 1 2151 1 view .LVU1472 4288 012c 02B0 add sp, sp, #8 4289 .LCFI51: 4290 .cfi_remember_state 4291 .cfi_def_cfa_offset 16 4292 @ sp needed 4293 012e 70BD pop {r4, r5, r6, pc} 4294 .LVL280: 4295 .L280: 4296 .LCFI52: 4297 .cfi_restore_state 2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4298 .loc 1 2026 14 view .LVU1473 4299 0130 0220 movs r0, #2 4300 0132 FBE7 b .L271 4301 .L281: 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4302 .loc 1 2030 5 view .LVU1474 4303 0134 0220 movs r0, #2 4304 0136 F9E7 b .L271 4305 .L286: 4306 .align 2 4307 .L285: 4308 0138 0000FFFF .word -65536 4309 013c 00000000 .word I2C_Master_ISR_DMA 4310 0140 00000000 .word I2C_DMAMasterReceiveCplt 4311 0144 00000000 .word I2C_DMAError 4312 0148 00240080 .word -2147474432 4313 014c 00000000 .word I2C_Master_ISR_IT 4314 .cfi_endproc 4315 .LFE342: 4317 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4318 .align 1 4319 .global HAL_I2C_Slave_Transmit_DMA 4320 .syntax unified 4321 .thumb 4322 .thumb_func 4324 HAL_I2C_Slave_Transmit_DMA: 4325 .LVL281: 4326 .LFB343: 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4327 .loc 1 2162 1 is_stmt 1 view -0 4328 .cfi_startproc 4329 @ args = 0, pretend = 0, frame = 0 4330 @ frame_needed = 0, uses_anonymous_args = 0 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4331 .loc 1 2162 1 is_stmt 0 view .LVU1476 4332 0000 38B5 push {r3, r4, r5, lr} 4333 .LCFI53: 4334 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccbUHtu7.s page 221 4335 .cfi_offset 3, -16 4336 .cfi_offset 4, -12 4337 .cfi_offset 5, -8 4338 .cfi_offset 14, -4 2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4339 .loc 1 2163 3 is_stmt 1 view .LVU1477 2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4340 .loc 1 2165 3 view .LVU1478 2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4341 .loc 1 2165 11 is_stmt 0 view .LVU1479 4342 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4343 0006 DBB2 uxtb r3, r3 2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4344 .loc 1 2165 6 view .LVU1480 4345 0008 202B cmp r3, #32 4346 000a 63D1 bne .L294 4347 000c 0446 mov r4, r0 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4348 .loc 1 2167 5 is_stmt 1 view .LVU1481 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4349 .loc 1 2167 8 is_stmt 0 view .LVU1482 4350 000e 0029 cmp r1, #0 4351 0010 3AD0 beq .L289 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4352 .loc 1 2167 25 discriminator 1 view .LVU1483 4353 0012 002A cmp r2, #0 4354 0014 38D0 beq .L289 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4355 .loc 1 2173 5 is_stmt 1 view .LVU1484 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4356 .loc 1 2173 5 view .LVU1485 4357 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4358 001a 012B cmp r3, #1 4359 001c 5DD0 beq .L295 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4360 .loc 1 2173 5 discriminator 2 view .LVU1486 4361 001e 0123 movs r3, #1 4362 0020 80F84030 strb r3, [r0, #64] 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4363 .loc 1 2173 5 discriminator 2 view .LVU1487 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4364 .loc 1 2175 5 discriminator 2 view .LVU1488 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4365 .loc 1 2175 23 is_stmt 0 discriminator 2 view .LVU1489 4366 0024 2123 movs r3, #33 4367 0026 80F84130 strb r3, [r0, #65] 2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4368 .loc 1 2176 5 is_stmt 1 discriminator 2 view .LVU1490 2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4369 .loc 1 2176 23 is_stmt 0 discriminator 2 view .LVU1491 4370 002a 2023 movs r3, #32 4371 002c 80F84230 strb r3, [r0, #66] 2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4372 .loc 1 2177 5 is_stmt 1 discriminator 2 view .LVU1492 2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4373 .loc 1 2177 23 is_stmt 0 discriminator 2 view .LVU1493 4374 0030 0023 movs r3, #0 ARM GAS /tmp/ccbUHtu7.s page 222 4375 0032 4364 str r3, [r0, #68] 2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4376 .loc 1 2180 5 is_stmt 1 discriminator 2 view .LVU1494 2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4377 .loc 1 2180 23 is_stmt 0 discriminator 2 view .LVU1495 4378 0034 4162 str r1, [r0, #36] 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4379 .loc 1 2181 5 is_stmt 1 discriminator 2 view .LVU1496 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4380 .loc 1 2181 23 is_stmt 0 discriminator 2 view .LVU1497 4381 0036 4285 strh r2, [r0, #42] @ movhi 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4382 .loc 1 2182 5 is_stmt 1 discriminator 2 view .LVU1498 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4383 .loc 1 2182 29 is_stmt 0 discriminator 2 view .LVU1499 4384 0038 438D ldrh r3, [r0, #42] 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4385 .loc 1 2182 23 discriminator 2 view .LVU1500 4386 003a 0385 strh r3, [r0, #40] @ movhi 2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4387 .loc 1 2183 5 is_stmt 1 discriminator 2 view .LVU1501 2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4388 .loc 1 2183 23 is_stmt 0 discriminator 2 view .LVU1502 4389 003c 284B ldr r3, .L299 4390 003e C362 str r3, [r0, #44] 2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4391 .loc 1 2184 5 is_stmt 1 discriminator 2 view .LVU1503 2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4392 .loc 1 2184 23 is_stmt 0 discriminator 2 view .LVU1504 4393 0040 284B ldr r3, .L299+4 4394 0042 4363 str r3, [r0, #52] 2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4395 .loc 1 2186 5 is_stmt 1 discriminator 2 view .LVU1505 2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4396 .loc 1 2186 13 is_stmt 0 discriminator 2 view .LVU1506 4397 0044 836B ldr r3, [r0, #56] 2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4398 .loc 1 2186 8 discriminator 2 view .LVU1507 4399 0046 23B3 cbz r3, .L291 2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4400 .loc 1 2189 7 is_stmt 1 view .LVU1508 2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4401 .loc 1 2189 38 is_stmt 0 view .LVU1509 4402 0048 274A ldr r2, .L299+8 4403 .LVL282: 2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4404 .loc 1 2189 38 view .LVU1510 4405 004a DA62 str r2, [r3, #44] 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4406 .loc 1 2192 7 is_stmt 1 view .LVU1511 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4407 .loc 1 2192 11 is_stmt 0 view .LVU1512 4408 004c 836B ldr r3, [r0, #56] 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4409 .loc 1 2192 39 view .LVU1513 4410 004e 274A ldr r2, .L299+12 4411 0050 5A63 str r2, [r3, #52] ARM GAS /tmp/ccbUHtu7.s page 223 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4412 .loc 1 2195 7 is_stmt 1 view .LVU1514 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4413 .loc 1 2195 11 is_stmt 0 view .LVU1515 4414 0052 826B ldr r2, [r0, #56] 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4415 .loc 1 2195 42 view .LVU1516 4416 0054 0023 movs r3, #0 4417 0056 1363 str r3, [r2, #48] 2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4418 .loc 1 2196 7 is_stmt 1 view .LVU1517 2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4419 .loc 1 2196 11 is_stmt 0 view .LVU1518 4420 0058 826B ldr r2, [r0, #56] 2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4421 .loc 1 2196 39 view .LVU1519 4422 005a 9363 str r3, [r2, #56] 2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4423 .loc 1 2199 7 is_stmt 1 view .LVU1520 2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4424 .loc 1 2199 86 is_stmt 0 view .LVU1521 4425 005c 0268 ldr r2, [r0] 2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4426 .loc 1 2199 23 view .LVU1522 4427 005e 038D ldrh r3, [r0, #40] 4428 0060 2832 adds r2, r2, #40 4429 0062 806B ldr r0, [r0, #56] 4430 .LVL283: 2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4431 .loc 1 2199 23 view .LVU1523 4432 0064 FFF7FEFF bl HAL_DMA_Start_IT 4433 .LVL284: 2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4434 .loc 1 2217 5 is_stmt 1 view .LVU1524 2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4435 .loc 1 2217 8 is_stmt 0 view .LVU1525 4436 0068 0546 mov r5, r0 4437 006a 00B3 cbz r0, .L298 2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4438 .loc 1 2237 7 is_stmt 1 view .LVU1526 2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4439 .loc 1 2237 23 is_stmt 0 view .LVU1527 4440 006c 2823 movs r3, #40 4441 006e 84F84130 strb r3, [r4, #65] 2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4442 .loc 1 2238 7 is_stmt 1 view .LVU1528 2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4443 .loc 1 2238 23 is_stmt 0 view .LVU1529 4444 0072 0022 movs r2, #0 4445 0074 84F84220 strb r2, [r4, #66] 2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4446 .loc 1 2241 7 is_stmt 1 view .LVU1530 2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4447 .loc 1 2241 11 is_stmt 0 view .LVU1531 4448 0078 636C ldr r3, [r4, #68] 2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4449 .loc 1 2241 23 view .LVU1532 ARM GAS /tmp/ccbUHtu7.s page 224 4450 007a 43F01003 orr r3, r3, #16 4451 007e 6364 str r3, [r4, #68] 2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4452 .loc 1 2244 7 is_stmt 1 view .LVU1533 2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4453 .loc 1 2244 7 view .LVU1534 4454 0080 84F84020 strb r2, [r4, #64] 2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4455 .loc 1 2244 7 view .LVU1535 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4456 .loc 1 2246 7 view .LVU1536 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4457 .loc 1 2246 14 is_stmt 0 view .LVU1537 4458 0084 0125 movs r5, #1 4459 0086 26E0 b .L288 4460 .LVL285: 4461 .L289: 2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4462 .loc 1 2169 7 is_stmt 1 view .LVU1538 2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4463 .loc 1 2169 23 is_stmt 0 view .LVU1539 4464 0088 4FF40073 mov r3, #512 4465 008c 6364 str r3, [r4, #68] 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4466 .loc 1 2170 7 is_stmt 1 view .LVU1540 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4467 .loc 1 2170 15 is_stmt 0 view .LVU1541 4468 008e 0125 movs r5, #1 4469 0090 21E0 b .L288 4470 .L291: 2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4471 .loc 1 2205 7 is_stmt 1 view .LVU1542 2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4472 .loc 1 2205 23 is_stmt 0 view .LVU1543 4473 0092 2823 movs r3, #40 4474 0094 80F84130 strb r3, [r0, #65] 2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4475 .loc 1 2206 7 is_stmt 1 view .LVU1544 2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4476 .loc 1 2206 23 is_stmt 0 view .LVU1545 4477 0098 0022 movs r2, #0 4478 .LVL286: 2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4479 .loc 1 2206 23 view .LVU1546 4480 009a 80F84220 strb r2, [r0, #66] 2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4481 .loc 1 2209 7 is_stmt 1 view .LVU1547 2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4482 .loc 1 2209 11 is_stmt 0 view .LVU1548 4483 009e 436C ldr r3, [r0, #68] 2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4484 .loc 1 2209 23 view .LVU1549 4485 00a0 43F08003 orr r3, r3, #128 4486 00a4 4364 str r3, [r0, #68] 2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4487 .loc 1 2212 7 is_stmt 1 view .LVU1550 2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 225 4488 .loc 1 2212 7 view .LVU1551 4489 00a6 80F84020 strb r2, [r0, #64] 2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4490 .loc 1 2212 7 view .LVU1552 2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4491 .loc 1 2214 7 view .LVU1553 2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4492 .loc 1 2214 14 is_stmt 0 view .LVU1554 4493 00aa 0125 movs r5, #1 4494 00ac 13E0 b .L288 4495 .LVL287: 4496 .L298: 2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4497 .loc 1 2220 7 is_stmt 1 view .LVU1555 2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4498 .loc 1 2220 11 is_stmt 0 view .LVU1556 4499 00ae 2268 ldr r2, [r4] 2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4500 .loc 1 2220 21 view .LVU1557 4501 00b0 5368 ldr r3, [r2, #4] 2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4502 .loc 1 2220 27 view .LVU1558 4503 00b2 23F40043 bic r3, r3, #32768 4504 00b6 5360 str r3, [r2, #4] 2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4505 .loc 1 2223 7 is_stmt 1 view .LVU1559 2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4506 .loc 1 2223 7 view .LVU1560 4507 00b8 0023 movs r3, #0 4508 00ba 84F84030 strb r3, [r4, #64] 2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4509 .loc 1 2223 7 view .LVU1561 2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4510 .loc 1 2229 7 view .LVU1562 4511 00be 4FF40041 mov r1, #32768 4512 00c2 2046 mov r0, r4 4513 .LVL288: 2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4514 .loc 1 2229 7 is_stmt 0 view .LVU1563 4515 00c4 FFF7FEFF bl I2C_Enable_IRQ 4516 .LVL289: 2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4517 .loc 1 2232 7 is_stmt 1 view .LVU1564 2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4518 .loc 1 2232 11 is_stmt 0 view .LVU1565 4519 00c8 2268 ldr r2, [r4] 2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4520 .loc 1 2232 21 view .LVU1566 4521 00ca 1368 ldr r3, [r2] 2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4522 .loc 1 2232 27 view .LVU1567 4523 00cc 43F48043 orr r3, r3, #16384 4524 00d0 1360 str r3, [r2] 2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4525 .loc 1 2249 5 is_stmt 1 view .LVU1568 2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4526 .loc 1 2249 12 is_stmt 0 view .LVU1569 ARM GAS /tmp/ccbUHtu7.s page 226 4527 00d2 00E0 b .L288 4528 .LVL290: 4529 .L294: 2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4530 .loc 1 2253 12 view .LVU1570 4531 00d4 0225 movs r5, #2 4532 .LVL291: 4533 .L288: 2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4534 .loc 1 2255 1 view .LVU1571 4535 00d6 2846 mov r0, r5 4536 00d8 38BD pop {r3, r4, r5, pc} 4537 .LVL292: 4538 .L295: 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4539 .loc 1 2173 5 view .LVU1572 4540 00da 0225 movs r5, #2 4541 00dc FBE7 b .L288 4542 .L300: 4543 00de 00BF .align 2 4544 .L299: 4545 00e0 0000FFFF .word -65536 4546 00e4 00000000 .word I2C_Slave_ISR_DMA 4547 00e8 00000000 .word I2C_DMASlaveTransmitCplt 4548 00ec 00000000 .word I2C_DMAError 4549 .cfi_endproc 4550 .LFE343: 4552 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4553 .align 1 4554 .global HAL_I2C_Slave_Receive_DMA 4555 .syntax unified 4556 .thumb 4557 .thumb_func 4559 HAL_I2C_Slave_Receive_DMA: 4560 .LVL293: 4561 .LFB344: 2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4562 .loc 1 2266 1 is_stmt 1 view -0 4563 .cfi_startproc 4564 @ args = 0, pretend = 0, frame = 0 4565 @ frame_needed = 0, uses_anonymous_args = 0 2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4566 .loc 1 2266 1 is_stmt 0 view .LVU1574 4567 0000 38B5 push {r3, r4, r5, lr} 4568 .LCFI54: 4569 .cfi_def_cfa_offset 16 4570 .cfi_offset 3, -16 4571 .cfi_offset 4, -12 4572 .cfi_offset 5, -8 4573 .cfi_offset 14, -4 2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4574 .loc 1 2267 3 is_stmt 1 view .LVU1575 2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4575 .loc 1 2269 3 view .LVU1576 2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4576 .loc 1 2269 11 is_stmt 0 view .LVU1577 4577 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/ccbUHtu7.s page 227 4578 0006 DBB2 uxtb r3, r3 2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4579 .loc 1 2269 6 view .LVU1578 4580 0008 202B cmp r3, #32 4581 000a 65D1 bne .L308 4582 000c 0446 mov r4, r0 2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4583 .loc 1 2271 5 is_stmt 1 view .LVU1579 2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4584 .loc 1 2271 8 is_stmt 0 view .LVU1580 4585 000e 0029 cmp r1, #0 4586 0010 3CD0 beq .L303 2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4587 .loc 1 2271 25 discriminator 1 view .LVU1581 4588 0012 002A cmp r2, #0 4589 0014 3AD0 beq .L303 2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4590 .loc 1 2277 5 is_stmt 1 view .LVU1582 2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4591 .loc 1 2277 5 view .LVU1583 4592 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4593 001a 012B cmp r3, #1 4594 001c 5FD0 beq .L309 2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4595 .loc 1 2277 5 discriminator 2 view .LVU1584 4596 001e 0123 movs r3, #1 4597 0020 80F84030 strb r3, [r0, #64] 2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4598 .loc 1 2277 5 discriminator 2 view .LVU1585 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4599 .loc 1 2279 5 discriminator 2 view .LVU1586 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4600 .loc 1 2279 23 is_stmt 0 discriminator 2 view .LVU1587 4601 0024 2223 movs r3, #34 4602 0026 80F84130 strb r3, [r0, #65] 2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4603 .loc 1 2280 5 is_stmt 1 discriminator 2 view .LVU1588 2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4604 .loc 1 2280 23 is_stmt 0 discriminator 2 view .LVU1589 4605 002a 2023 movs r3, #32 4606 002c 80F84230 strb r3, [r0, #66] 2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4607 .loc 1 2281 5 is_stmt 1 discriminator 2 view .LVU1590 2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4608 .loc 1 2281 23 is_stmt 0 discriminator 2 view .LVU1591 4609 0030 0023 movs r3, #0 4610 0032 4364 str r3, [r0, #68] 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4611 .loc 1 2284 5 is_stmt 1 discriminator 2 view .LVU1592 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4612 .loc 1 2284 23 is_stmt 0 discriminator 2 view .LVU1593 4613 0034 4162 str r1, [r0, #36] 2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4614 .loc 1 2285 5 is_stmt 1 discriminator 2 view .LVU1594 2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4615 .loc 1 2285 23 is_stmt 0 discriminator 2 view .LVU1595 4616 0036 4285 strh r2, [r0, #42] @ movhi ARM GAS /tmp/ccbUHtu7.s page 228 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4617 .loc 1 2286 5 is_stmt 1 discriminator 2 view .LVU1596 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4618 .loc 1 2286 29 is_stmt 0 discriminator 2 view .LVU1597 4619 0038 438D ldrh r3, [r0, #42] 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4620 .loc 1 2286 23 discriminator 2 view .LVU1598 4621 003a 0385 strh r3, [r0, #40] @ movhi 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4622 .loc 1 2287 5 is_stmt 1 discriminator 2 view .LVU1599 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4623 .loc 1 2287 23 is_stmt 0 discriminator 2 view .LVU1600 4624 003c 294B ldr r3, .L313 4625 003e C362 str r3, [r0, #44] 2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4626 .loc 1 2288 5 is_stmt 1 discriminator 2 view .LVU1601 2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4627 .loc 1 2288 23 is_stmt 0 discriminator 2 view .LVU1602 4628 0040 294B ldr r3, .L313+4 4629 0042 4363 str r3, [r0, #52] 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4630 .loc 1 2290 5 is_stmt 1 discriminator 2 view .LVU1603 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4631 .loc 1 2290 13 is_stmt 0 discriminator 2 view .LVU1604 4632 0044 C36B ldr r3, [r0, #60] 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4633 .loc 1 2290 8 discriminator 2 view .LVU1605 4634 0046 33B3 cbz r3, .L305 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4635 .loc 1 2293 7 is_stmt 1 view .LVU1606 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4636 .loc 1 2293 38 is_stmt 0 view .LVU1607 4637 0048 284A ldr r2, .L313+8 4638 .LVL294: 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4639 .loc 1 2293 38 view .LVU1608 4640 004a DA62 str r2, [r3, #44] 2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4641 .loc 1 2296 7 is_stmt 1 view .LVU1609 2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4642 .loc 1 2296 11 is_stmt 0 view .LVU1610 4643 004c C36B ldr r3, [r0, #60] 2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4644 .loc 1 2296 39 view .LVU1611 4645 004e 284A ldr r2, .L313+12 4646 0050 5A63 str r2, [r3, #52] 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4647 .loc 1 2299 7 is_stmt 1 view .LVU1612 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4648 .loc 1 2299 11 is_stmt 0 view .LVU1613 4649 0052 C26B ldr r2, [r0, #60] 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4650 .loc 1 2299 42 view .LVU1614 4651 0054 0023 movs r3, #0 4652 0056 1363 str r3, [r2, #48] 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4653 .loc 1 2300 7 is_stmt 1 view .LVU1615 ARM GAS /tmp/ccbUHtu7.s page 229 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4654 .loc 1 2300 11 is_stmt 0 view .LVU1616 4655 0058 C26B ldr r2, [r0, #60] 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4656 .loc 1 2300 39 view .LVU1617 4657 005a 9363 str r3, [r2, #56] 2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4658 .loc 1 2303 7 is_stmt 1 view .LVU1618 2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4659 .loc 1 2303 69 is_stmt 0 view .LVU1619 4660 005c 0068 ldr r0, [r0] 4661 .LVL295: 2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4662 .loc 1 2303 23 view .LVU1620 4663 005e 238D ldrh r3, [r4, #40] 4664 0060 0A46 mov r2, r1 4665 0062 00F12401 add r1, r0, #36 4666 .LVL296: 2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4667 .loc 1 2303 23 view .LVU1621 4668 0066 E06B ldr r0, [r4, #60] 4669 0068 FFF7FEFF bl HAL_DMA_Start_IT 4670 .LVL297: 2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4671 .loc 1 2321 5 is_stmt 1 view .LVU1622 2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4672 .loc 1 2321 8 is_stmt 0 view .LVU1623 4673 006c 0546 mov r5, r0 4674 006e 00B3 cbz r0, .L312 2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4675 .loc 1 2341 7 is_stmt 1 view .LVU1624 2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4676 .loc 1 2341 23 is_stmt 0 view .LVU1625 4677 0070 2823 movs r3, #40 4678 0072 84F84130 strb r3, [r4, #65] 2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4679 .loc 1 2342 7 is_stmt 1 view .LVU1626 2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4680 .loc 1 2342 23 is_stmt 0 view .LVU1627 4681 0076 0022 movs r2, #0 4682 0078 84F84220 strb r2, [r4, #66] 2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4683 .loc 1 2345 7 is_stmt 1 view .LVU1628 2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4684 .loc 1 2345 11 is_stmt 0 view .LVU1629 4685 007c 636C ldr r3, [r4, #68] 2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4686 .loc 1 2345 23 view .LVU1630 4687 007e 43F01003 orr r3, r3, #16 4688 0082 6364 str r3, [r4, #68] 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4689 .loc 1 2348 7 is_stmt 1 view .LVU1631 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4690 .loc 1 2348 7 view .LVU1632 4691 0084 84F84020 strb r2, [r4, #64] 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4692 .loc 1 2348 7 view .LVU1633 ARM GAS /tmp/ccbUHtu7.s page 230 2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4693 .loc 1 2350 7 view .LVU1634 2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4694 .loc 1 2350 14 is_stmt 0 view .LVU1635 4695 0088 0125 movs r5, #1 4696 008a 26E0 b .L302 4697 .LVL298: 4698 .L303: 2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4699 .loc 1 2273 7 is_stmt 1 view .LVU1636 2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4700 .loc 1 2273 23 is_stmt 0 view .LVU1637 4701 008c 4FF40073 mov r3, #512 4702 0090 6364 str r3, [r4, #68] 2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4703 .loc 1 2274 7 is_stmt 1 view .LVU1638 2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4704 .loc 1 2274 15 is_stmt 0 view .LVU1639 4705 0092 0125 movs r5, #1 4706 0094 21E0 b .L302 4707 .L305: 2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4708 .loc 1 2309 7 is_stmt 1 view .LVU1640 2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4709 .loc 1 2309 23 is_stmt 0 view .LVU1641 4710 0096 2823 movs r3, #40 4711 0098 80F84130 strb r3, [r0, #65] 2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4712 .loc 1 2310 7 is_stmt 1 view .LVU1642 2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4713 .loc 1 2310 23 is_stmt 0 view .LVU1643 4714 009c 0022 movs r2, #0 4715 .LVL299: 2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4716 .loc 1 2310 23 view .LVU1644 4717 009e 80F84220 strb r2, [r0, #66] 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4718 .loc 1 2313 7 is_stmt 1 view .LVU1645 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4719 .loc 1 2313 11 is_stmt 0 view .LVU1646 4720 00a2 436C ldr r3, [r0, #68] 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4721 .loc 1 2313 23 view .LVU1647 4722 00a4 43F08003 orr r3, r3, #128 4723 00a8 4364 str r3, [r0, #68] 2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4724 .loc 1 2316 7 is_stmt 1 view .LVU1648 2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4725 .loc 1 2316 7 view .LVU1649 4726 00aa 80F84020 strb r2, [r0, #64] 2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4727 .loc 1 2316 7 view .LVU1650 2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4728 .loc 1 2318 7 view .LVU1651 2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4729 .loc 1 2318 14 is_stmt 0 view .LVU1652 4730 00ae 0125 movs r5, #1 ARM GAS /tmp/ccbUHtu7.s page 231 4731 00b0 13E0 b .L302 4732 .LVL300: 4733 .L312: 2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4734 .loc 1 2324 7 is_stmt 1 view .LVU1653 2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4735 .loc 1 2324 11 is_stmt 0 view .LVU1654 4736 00b2 2268 ldr r2, [r4] 2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4737 .loc 1 2324 21 view .LVU1655 4738 00b4 5368 ldr r3, [r2, #4] 2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4739 .loc 1 2324 27 view .LVU1656 4740 00b6 23F40043 bic r3, r3, #32768 4741 00ba 5360 str r3, [r2, #4] 2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4742 .loc 1 2327 7 is_stmt 1 view .LVU1657 2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4743 .loc 1 2327 7 view .LVU1658 4744 00bc 0023 movs r3, #0 4745 00be 84F84030 strb r3, [r4, #64] 2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4746 .loc 1 2327 7 view .LVU1659 2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4747 .loc 1 2333 7 view .LVU1660 4748 00c2 4FF40041 mov r1, #32768 4749 00c6 2046 mov r0, r4 4750 .LVL301: 2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4751 .loc 1 2333 7 is_stmt 0 view .LVU1661 4752 00c8 FFF7FEFF bl I2C_Enable_IRQ 4753 .LVL302: 2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4754 .loc 1 2336 7 is_stmt 1 view .LVU1662 2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4755 .loc 1 2336 11 is_stmt 0 view .LVU1663 4756 00cc 2268 ldr r2, [r4] 2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4757 .loc 1 2336 21 view .LVU1664 4758 00ce 1368 ldr r3, [r2] 2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4759 .loc 1 2336 27 view .LVU1665 4760 00d0 43F40043 orr r3, r3, #32768 4761 00d4 1360 str r3, [r2] 2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4762 .loc 1 2353 5 is_stmt 1 view .LVU1666 2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4763 .loc 1 2353 12 is_stmt 0 view .LVU1667 4764 00d6 00E0 b .L302 4765 .LVL303: 4766 .L308: 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4767 .loc 1 2357 12 view .LVU1668 4768 00d8 0225 movs r5, #2 4769 .LVL304: 4770 .L302: 2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** ARM GAS /tmp/ccbUHtu7.s page 232 4771 .loc 1 2359 1 view .LVU1669 4772 00da 2846 mov r0, r5 4773 00dc 38BD pop {r3, r4, r5, pc} 4774 .LVL305: 4775 .L309: 2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4776 .loc 1 2277 5 view .LVU1670 4777 00de 0225 movs r5, #2 4778 00e0 FBE7 b .L302 4779 .L314: 4780 00e2 00BF .align 2 4781 .L313: 4782 00e4 0000FFFF .word -65536 4783 00e8 00000000 .word I2C_Slave_ISR_DMA 4784 00ec 00000000 .word I2C_DMASlaveReceiveCplt 4785 00f0 00000000 .word I2C_DMAError 4786 .cfi_endproc 4787 .LFE344: 4789 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 4790 .align 1 4791 .global HAL_I2C_Mem_Write 4792 .syntax unified 4793 .thumb 4794 .thumb_func 4796 HAL_I2C_Mem_Write: 4797 .LVL306: 4798 .LFB345: 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 4799 .loc 1 2375 1 is_stmt 1 view -0 4800 .cfi_startproc 4801 @ args = 12, pretend = 0, frame = 0 4802 @ frame_needed = 0, uses_anonymous_args = 0 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 4803 .loc 1 2375 1 is_stmt 0 view .LVU1672 4804 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 4805 .LCFI55: 4806 .cfi_def_cfa_offset 36 4807 .cfi_offset 4, -36 4808 .cfi_offset 5, -32 4809 .cfi_offset 6, -28 4810 .cfi_offset 7, -24 4811 .cfi_offset 8, -20 4812 .cfi_offset 9, -16 4813 .cfi_offset 10, -12 4814 .cfi_offset 11, -8 4815 .cfi_offset 14, -4 4816 0004 83B0 sub sp, sp, #12 4817 .LCFI56: 4818 .cfi_def_cfa_offset 48 4819 0006 0E46 mov r6, r1 4820 0008 BDF834A0 ldrh r10, [sp, #52] 4821 000c 0E9D ldr r5, [sp, #56] 2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4822 .loc 1 2376 3 is_stmt 1 view .LVU1673 2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4823 .loc 1 2379 3 view .LVU1674 2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 233 4824 .loc 1 2381 3 view .LVU1675 2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4825 .loc 1 2381 11 is_stmt 0 view .LVU1676 4826 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 4827 .LVL307: 2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4828 .loc 1 2381 11 view .LVU1677 4829 0012 C9B2 uxtb r1, r1 2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4830 .loc 1 2381 6 view .LVU1678 4831 0014 2029 cmp r1, #32 4832 0016 40F0BB80 bne .L325 4833 001a 0446 mov r4, r0 4834 001c 9046 mov r8, r2 4835 001e 9946 mov r9, r3 2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4836 .loc 1 2383 5 is_stmt 1 view .LVU1679 2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4837 .loc 1 2383 8 is_stmt 0 view .LVU1680 4838 0020 0C9B ldr r3, [sp, #48] 4839 .LVL308: 2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4840 .loc 1 2383 8 view .LVU1681 4841 0022 CBB1 cbz r3, .L317 2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4842 .loc 1 2383 25 discriminator 1 view .LVU1682 4843 0024 BAF1000F cmp r10, #0 4844 0028 16D0 beq .L317 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4845 .loc 1 2390 5 is_stmt 1 view .LVU1683 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4846 .loc 1 2390 5 view .LVU1684 4847 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4848 002e 012B cmp r3, #1 4849 0030 00F0B280 beq .L326 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4850 .loc 1 2390 5 discriminator 2 view .LVU1685 4851 0034 4FF0010B mov fp, #1 4852 0038 80F840B0 strb fp, [r0, #64] 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4853 .loc 1 2390 5 discriminator 2 view .LVU1686 2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4854 .loc 1 2393 5 discriminator 2 view .LVU1687 2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4855 .loc 1 2393 17 is_stmt 0 discriminator 2 view .LVU1688 4856 003c FFF7FEFF bl HAL_GetTick 4857 .LVL309: 2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4858 .loc 1 2393 17 discriminator 2 view .LVU1689 4859 0040 0746 mov r7, r0 4860 .LVL310: 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4861 .loc 1 2395 5 is_stmt 1 discriminator 2 view .LVU1690 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4862 .loc 1 2395 9 is_stmt 0 discriminator 2 view .LVU1691 4863 0042 0090 str r0, [sp] 4864 0044 1923 movs r3, #25 ARM GAS /tmp/ccbUHtu7.s page 234 4865 0046 5A46 mov r2, fp 4866 0048 4FF40041 mov r1, #32768 4867 004c 2046 mov r0, r4 4868 .LVL311: 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4869 .loc 1 2395 9 discriminator 2 view .LVU1692 4870 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4871 .LVL312: 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4872 .loc 1 2395 8 discriminator 2 view .LVU1693 4873 0052 30B1 cbz r0, .L332 2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4874 .loc 1 2397 14 view .LVU1694 4875 0054 0120 movs r0, #1 4876 0056 9CE0 b .L316 4877 .LVL313: 4878 .L317: 2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4879 .loc 1 2385 7 is_stmt 1 view .LVU1695 2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4880 .loc 1 2385 23 is_stmt 0 view .LVU1696 4881 0058 4FF40073 mov r3, #512 4882 005c 6364 str r3, [r4, #68] 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4883 .loc 1 2386 7 is_stmt 1 view .LVU1697 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4884 .loc 1 2386 15 is_stmt 0 view .LVU1698 4885 005e 0120 movs r0, #1 4886 .LVL314: 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4887 .loc 1 2386 15 view .LVU1699 4888 0060 97E0 b .L316 4889 .LVL315: 4890 .L332: 2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4891 .loc 1 2400 5 is_stmt 1 view .LVU1700 2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4892 .loc 1 2400 21 is_stmt 0 view .LVU1701 4893 0062 2123 movs r3, #33 4894 0064 84F84130 strb r3, [r4, #65] 2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4895 .loc 1 2401 5 is_stmt 1 view .LVU1702 2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4896 .loc 1 2401 21 is_stmt 0 view .LVU1703 4897 0068 4023 movs r3, #64 4898 006a 84F84230 strb r3, [r4, #66] 2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4899 .loc 1 2402 5 is_stmt 1 view .LVU1704 2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4900 .loc 1 2402 21 is_stmt 0 view .LVU1705 4901 006e 0023 movs r3, #0 4902 0070 6364 str r3, [r4, #68] 2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4903 .loc 1 2405 5 is_stmt 1 view .LVU1706 2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4904 .loc 1 2405 21 is_stmt 0 view .LVU1707 4905 0072 0C9A ldr r2, [sp, #48] ARM GAS /tmp/ccbUHtu7.s page 235 4906 0074 6262 str r2, [r4, #36] 2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 4907 .loc 1 2406 5 is_stmt 1 view .LVU1708 2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 4908 .loc 1 2406 21 is_stmt 0 view .LVU1709 4909 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4910 .loc 1 2407 5 is_stmt 1 view .LVU1710 2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4911 .loc 1 2407 21 is_stmt 0 view .LVU1711 4912 007a 6363 str r3, [r4, #52] 2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4913 .loc 1 2410 5 is_stmt 1 view .LVU1712 2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4914 .loc 1 2410 9 is_stmt 0 view .LVU1713 4915 007c 0197 str r7, [sp, #4] 4916 007e 0095 str r5, [sp] 4917 0080 4B46 mov r3, r9 4918 0082 4246 mov r2, r8 4919 0084 3146 mov r1, r6 4920 0086 2046 mov r0, r4 4921 0088 FFF7FEFF bl I2C_RequestMemoryWrite 4922 .LVL316: 2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4923 .loc 1 2410 8 view .LVU1714 4924 008c 70B9 cbnz r0, .L333 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4925 .loc 1 2418 5 is_stmt 1 view .LVU1715 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4926 .loc 1 2418 13 is_stmt 0 view .LVU1716 4927 008e 638D ldrh r3, [r4, #42] 4928 0090 9BB2 uxth r3, r3 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4929 .loc 1 2418 8 view .LVU1717 4930 0092 FF2B cmp r3, #255 4931 0094 0FD9 bls .L320 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 4932 .loc 1 2420 7 is_stmt 1 view .LVU1718 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 4933 .loc 1 2420 22 is_stmt 0 view .LVU1719 4934 0096 FF22 movs r2, #255 4935 0098 2285 strh r2, [r4, #40] @ movhi 2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4936 .loc 1 2421 7 is_stmt 1 view .LVU1720 4937 009a 0023 movs r3, #0 4938 009c 0093 str r3, [sp] 4939 009e 4FF08073 mov r3, #16777216 4940 00a2 3146 mov r1, r6 4941 00a4 2046 mov r0, r4 4942 00a6 FFF7FEFF bl I2C_TransferConfig 4943 .LVL317: 4944 00aa 21E0 b .L324 4945 .L333: 2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4946 .loc 1 2413 7 view .LVU1721 2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4947 .loc 1 2413 7 view .LVU1722 ARM GAS /tmp/ccbUHtu7.s page 236 4948 00ac 0023 movs r3, #0 4949 00ae 84F84030 strb r3, [r4, #64] 2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4950 .loc 1 2413 7 view .LVU1723 2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4951 .loc 1 2414 7 view .LVU1724 2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4952 .loc 1 2414 14 is_stmt 0 view .LVU1725 4953 00b2 5846 mov r0, fp 4954 00b4 6DE0 b .L316 4955 .L320: 2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4956 .loc 1 2425 7 is_stmt 1 view .LVU1726 2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4957 .loc 1 2425 28 is_stmt 0 view .LVU1727 4958 00b6 628D ldrh r2, [r4, #42] 4959 00b8 92B2 uxth r2, r2 2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4960 .loc 1 2425 22 view .LVU1728 4961 00ba 2285 strh r2, [r4, #40] @ movhi 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4962 .loc 1 2426 7 is_stmt 1 view .LVU1729 4963 00bc 0023 movs r3, #0 4964 00be 0093 str r3, [sp] 4965 00c0 4FF00073 mov r3, #33554432 4966 00c4 D2B2 uxtb r2, r2 4967 00c6 3146 mov r1, r6 4968 00c8 2046 mov r0, r4 4969 00ca FFF7FEFF bl I2C_TransferConfig 4970 .LVL318: 4971 00ce 0FE0 b .L324 4972 .L323: 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 4973 .loc 1 2462 11 view .LVU1730 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 4974 .loc 1 2462 32 is_stmt 0 view .LVU1731 4975 00d0 628D ldrh r2, [r4, #42] 4976 00d2 92B2 uxth r2, r2 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 4977 .loc 1 2462 26 view .LVU1732 4978 00d4 2285 strh r2, [r4, #40] @ movhi 2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 4979 .loc 1 2463 11 is_stmt 1 view .LVU1733 4980 00d6 0023 movs r3, #0 4981 00d8 0093 str r3, [sp] 4982 00da 4FF00073 mov r3, #33554432 4983 00de D2B2 uxtb r2, r2 4984 00e0 3146 mov r1, r6 4985 00e2 2046 mov r0, r4 4986 00e4 FFF7FEFF bl I2C_TransferConfig 4987 .LVL319: 4988 .L322: 2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4989 .loc 1 2468 30 view .LVU1734 2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4990 .loc 1 2468 18 is_stmt 0 view .LVU1735 4991 00e8 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccbUHtu7.s page 237 4992 00ea 9BB2 uxth r3, r3 2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4993 .loc 1 2468 30 view .LVU1736 4994 00ec 002B cmp r3, #0 4995 00ee 33D0 beq .L334 4996 .L324: 2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4997 .loc 1 2429 5 is_stmt 1 view .LVU1737 2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4998 .loc 1 2432 7 view .LVU1738 2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4999 .loc 1 2432 11 is_stmt 0 view .LVU1739 5000 00f0 3A46 mov r2, r7 5001 00f2 2946 mov r1, r5 5002 00f4 2046 mov r0, r4 5003 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5004 .LVL320: 2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5005 .loc 1 2432 10 view .LVU1740 5006 00fa 0028 cmp r0, #0 5007 00fc 4ED1 bne .L328 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5008 .loc 1 2438 7 is_stmt 1 view .LVU1741 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5009 .loc 1 2438 35 is_stmt 0 view .LVU1742 5010 00fe 626A ldr r2, [r4, #36] 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5011 .loc 1 2438 11 view .LVU1743 5012 0100 2368 ldr r3, [r4] 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5013 .loc 1 2438 30 view .LVU1744 5014 0102 1278 ldrb r2, [r2] @ zero_extendqisi2 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5015 .loc 1 2438 28 view .LVU1745 5016 0104 9A62 str r2, [r3, #40] 2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5017 .loc 1 2441 7 is_stmt 1 view .LVU1746 2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5018 .loc 1 2441 11 is_stmt 0 view .LVU1747 5019 0106 636A ldr r3, [r4, #36] 2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5020 .loc 1 2441 21 view .LVU1748 5021 0108 0133 adds r3, r3, #1 5022 010a 6362 str r3, [r4, #36] 2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5023 .loc 1 2443 7 is_stmt 1 view .LVU1749 2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5024 .loc 1 2443 11 is_stmt 0 view .LVU1750 5025 010c 638D ldrh r3, [r4, #42] 5026 010e 9BB2 uxth r3, r3 2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5027 .loc 1 2443 22 view .LVU1751 5028 0110 013B subs r3, r3, #1 5029 0112 9BB2 uxth r3, r3 5030 0114 6385 strh r3, [r4, #42] @ movhi 2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5031 .loc 1 2444 7 is_stmt 1 view .LVU1752 ARM GAS /tmp/ccbUHtu7.s page 238 2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5032 .loc 1 2444 11 is_stmt 0 view .LVU1753 5033 0116 238D ldrh r3, [r4, #40] 2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5034 .loc 1 2444 21 view .LVU1754 5035 0118 013B subs r3, r3, #1 5036 011a 9BB2 uxth r3, r3 5037 011c 2385 strh r3, [r4, #40] @ movhi 2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5038 .loc 1 2446 7 is_stmt 1 view .LVU1755 2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5039 .loc 1 2446 16 is_stmt 0 view .LVU1756 5040 011e 628D ldrh r2, [r4, #42] 5041 0120 92B2 uxth r2, r2 2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5042 .loc 1 2446 10 view .LVU1757 5043 0122 002A cmp r2, #0 5044 0124 E0D0 beq .L322 2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5045 .loc 1 2446 35 discriminator 1 view .LVU1758 5046 0126 002B cmp r3, #0 5047 0128 DED1 bne .L322 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5048 .loc 1 2449 9 is_stmt 1 view .LVU1759 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5049 .loc 1 2449 13 is_stmt 0 view .LVU1760 5050 012a 0097 str r7, [sp] 5051 012c 2B46 mov r3, r5 5052 012e 0022 movs r2, #0 5053 0130 8021 movs r1, #128 5054 0132 2046 mov r0, r4 5055 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5056 .LVL321: 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5057 .loc 1 2449 12 view .LVU1761 5058 0138 90BB cbnz r0, .L329 2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5059 .loc 1 2454 9 is_stmt 1 view .LVU1762 2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5060 .loc 1 2454 17 is_stmt 0 view .LVU1763 5061 013a 638D ldrh r3, [r4, #42] 5062 013c 9BB2 uxth r3, r3 2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5063 .loc 1 2454 12 view .LVU1764 5064 013e FF2B cmp r3, #255 5065 0140 C6D9 bls .L323 2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5066 .loc 1 2456 11 is_stmt 1 view .LVU1765 2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5067 .loc 1 2456 26 is_stmt 0 view .LVU1766 5068 0142 FF22 movs r2, #255 5069 0144 2285 strh r2, [r4, #40] @ movhi 2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5070 .loc 1 2457 11 is_stmt 1 view .LVU1767 5071 0146 0023 movs r3, #0 5072 0148 0093 str r3, [sp] 5073 014a 4FF08073 mov r3, #16777216 ARM GAS /tmp/ccbUHtu7.s page 239 5074 014e 3146 mov r1, r6 5075 0150 2046 mov r0, r4 5076 0152 FFF7FEFF bl I2C_TransferConfig 5077 .LVL322: 5078 0156 C7E7 b .L322 5079 .L334: 2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5080 .loc 1 2472 5 view .LVU1768 2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5081 .loc 1 2472 9 is_stmt 0 view .LVU1769 5082 0158 3A46 mov r2, r7 5083 015a 2946 mov r1, r5 5084 015c 2046 mov r0, r4 5085 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5086 .LVL323: 2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5087 .loc 1 2472 8 view .LVU1770 5088 0162 F8B9 cbnz r0, .L330 2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5089 .loc 1 2478 5 is_stmt 1 view .LVU1771 5090 0164 2368 ldr r3, [r4] 5091 0166 2022 movs r2, #32 5092 0168 DA61 str r2, [r3, #28] 2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5093 .loc 1 2481 5 view .LVU1772 5094 016a 2168 ldr r1, [r4] 5095 016c 4B68 ldr r3, [r1, #4] 5096 016e 23F0FF73 bic r3, r3, #33423360 5097 0172 23F48B33 bic r3, r3, #71168 5098 0176 23F4FF73 bic r3, r3, #510 5099 017a 23F00103 bic r3, r3, #1 5100 017e 4B60 str r3, [r1, #4] 2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5101 .loc 1 2483 5 view .LVU1773 2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5102 .loc 1 2483 17 is_stmt 0 view .LVU1774 5103 0180 84F84120 strb r2, [r4, #65] 2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5104 .loc 1 2484 5 is_stmt 1 view .LVU1775 2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5105 .loc 1 2484 17 is_stmt 0 view .LVU1776 5106 0184 0023 movs r3, #0 5107 0186 84F84230 strb r3, [r4, #66] 2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5108 .loc 1 2487 5 is_stmt 1 view .LVU1777 2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5109 .loc 1 2487 5 view .LVU1778 5110 018a 84F84030 strb r3, [r4, #64] 2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5111 .loc 1 2487 5 view .LVU1779 2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5112 .loc 1 2489 5 view .LVU1780 2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5113 .loc 1 2489 12 is_stmt 0 view .LVU1781 5114 018e 00E0 b .L316 5115 .LVL324: 5116 .L325: ARM GAS /tmp/ccbUHtu7.s page 240 2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5117 .loc 1 2493 12 view .LVU1782 5118 0190 0220 movs r0, #2 5119 .LVL325: 5120 .L316: 2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5121 .loc 1 2495 1 view .LVU1783 5122 0192 03B0 add sp, sp, #12 5123 .LCFI57: 5124 .cfi_remember_state 5125 .cfi_def_cfa_offset 36 5126 @ sp needed 5127 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5128 .LVL326: 5129 .L326: 5130 .LCFI58: 5131 .cfi_restore_state 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5132 .loc 1 2390 5 view .LVU1784 5133 0198 0220 movs r0, #2 5134 .LVL327: 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5135 .loc 1 2390 5 view .LVU1785 5136 019a FAE7 b .L316 5137 .LVL328: 5138 .L328: 2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5139 .loc 1 2434 16 view .LVU1786 5140 019c 0120 movs r0, #1 5141 019e F8E7 b .L316 5142 .L329: 2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5143 .loc 1 2451 18 view .LVU1787 5144 01a0 0120 movs r0, #1 5145 01a2 F6E7 b .L316 5146 .L330: 2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5147 .loc 1 2474 14 view .LVU1788 5148 01a4 0120 movs r0, #1 5149 01a6 F4E7 b .L316 5150 .cfi_endproc 5151 .LFE345: 5153 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5154 .align 1 5155 .global HAL_I2C_Mem_Read 5156 .syntax unified 5157 .thumb 5158 .thumb_func 5160 HAL_I2C_Mem_Read: 5161 .LVL329: 5162 .LFB346: 2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5163 .loc 1 2512 1 is_stmt 1 view -0 5164 .cfi_startproc 5165 @ args = 12, pretend = 0, frame = 0 5166 @ frame_needed = 0, uses_anonymous_args = 0 2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; ARM GAS /tmp/ccbUHtu7.s page 241 5167 .loc 1 2512 1 is_stmt 0 view .LVU1790 5168 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5169 .LCFI59: 5170 .cfi_def_cfa_offset 36 5171 .cfi_offset 4, -36 5172 .cfi_offset 5, -32 5173 .cfi_offset 6, -28 5174 .cfi_offset 7, -24 5175 .cfi_offset 8, -20 5176 .cfi_offset 9, -16 5177 .cfi_offset 10, -12 5178 .cfi_offset 11, -8 5179 .cfi_offset 14, -4 5180 0004 83B0 sub sp, sp, #12 5181 .LCFI60: 5182 .cfi_def_cfa_offset 48 5183 0006 0E46 mov r6, r1 5184 0008 BDF834A0 ldrh r10, [sp, #52] 5185 000c 0E9D ldr r5, [sp, #56] 2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5186 .loc 1 2513 3 is_stmt 1 view .LVU1791 2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5187 .loc 1 2516 3 view .LVU1792 2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5188 .loc 1 2518 3 view .LVU1793 2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5189 .loc 1 2518 11 is_stmt 0 view .LVU1794 5190 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5191 .LVL330: 2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5192 .loc 1 2518 11 view .LVU1795 5193 0012 C9B2 uxtb r1, r1 2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5194 .loc 1 2518 6 view .LVU1796 5195 0014 2029 cmp r1, #32 5196 0016 40F0BC80 bne .L345 5197 001a 0446 mov r4, r0 5198 001c 9046 mov r8, r2 5199 001e 9946 mov r9, r3 2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5200 .loc 1 2520 5 is_stmt 1 view .LVU1797 2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5201 .loc 1 2520 8 is_stmt 0 view .LVU1798 5202 0020 0C9B ldr r3, [sp, #48] 5203 .LVL331: 2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5204 .loc 1 2520 8 view .LVU1799 5205 0022 CBB1 cbz r3, .L337 2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5206 .loc 1 2520 25 discriminator 1 view .LVU1800 5207 0024 BAF1000F cmp r10, #0 5208 0028 16D0 beq .L337 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5209 .loc 1 2527 5 is_stmt 1 view .LVU1801 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5210 .loc 1 2527 5 view .LVU1802 5211 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 ARM GAS /tmp/ccbUHtu7.s page 242 5212 002e 012B cmp r3, #1 5213 0030 00F0B380 beq .L346 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5214 .loc 1 2527 5 discriminator 2 view .LVU1803 5215 0034 4FF0010B mov fp, #1 5216 0038 80F840B0 strb fp, [r0, #64] 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5217 .loc 1 2527 5 discriminator 2 view .LVU1804 2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5218 .loc 1 2530 5 discriminator 2 view .LVU1805 2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5219 .loc 1 2530 17 is_stmt 0 discriminator 2 view .LVU1806 5220 003c FFF7FEFF bl HAL_GetTick 5221 .LVL332: 2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5222 .loc 1 2530 17 discriminator 2 view .LVU1807 5223 0040 0746 mov r7, r0 5224 .LVL333: 2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5225 .loc 1 2532 5 is_stmt 1 discriminator 2 view .LVU1808 2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5226 .loc 1 2532 9 is_stmt 0 discriminator 2 view .LVU1809 5227 0042 0090 str r0, [sp] 5228 0044 1923 movs r3, #25 5229 0046 5A46 mov r2, fp 5230 0048 4FF40041 mov r1, #32768 5231 004c 2046 mov r0, r4 5232 .LVL334: 2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5233 .loc 1 2532 9 discriminator 2 view .LVU1810 5234 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5235 .LVL335: 2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5236 .loc 1 2532 8 discriminator 2 view .LVU1811 5237 0052 30B1 cbz r0, .L352 2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5238 .loc 1 2534 14 view .LVU1812 5239 0054 0120 movs r0, #1 5240 0056 9DE0 b .L336 5241 .LVL336: 5242 .L337: 2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5243 .loc 1 2522 7 is_stmt 1 view .LVU1813 2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5244 .loc 1 2522 23 is_stmt 0 view .LVU1814 5245 0058 4FF40073 mov r3, #512 5246 005c 6364 str r3, [r4, #68] 2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5247 .loc 1 2523 7 is_stmt 1 view .LVU1815 2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5248 .loc 1 2523 15 is_stmt 0 view .LVU1816 5249 005e 0120 movs r0, #1 5250 .LVL337: 2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5251 .loc 1 2523 15 view .LVU1817 5252 0060 98E0 b .L336 5253 .LVL338: ARM GAS /tmp/ccbUHtu7.s page 243 5254 .L352: 2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5255 .loc 1 2537 5 is_stmt 1 view .LVU1818 2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5256 .loc 1 2537 21 is_stmt 0 view .LVU1819 5257 0062 2223 movs r3, #34 5258 0064 84F84130 strb r3, [r4, #65] 2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5259 .loc 1 2538 5 is_stmt 1 view .LVU1820 2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5260 .loc 1 2538 21 is_stmt 0 view .LVU1821 5261 0068 4023 movs r3, #64 5262 006a 84F84230 strb r3, [r4, #66] 2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5263 .loc 1 2539 5 is_stmt 1 view .LVU1822 2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5264 .loc 1 2539 21 is_stmt 0 view .LVU1823 5265 006e 0023 movs r3, #0 5266 0070 6364 str r3, [r4, #68] 2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5267 .loc 1 2542 5 is_stmt 1 view .LVU1824 2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5268 .loc 1 2542 21 is_stmt 0 view .LVU1825 5269 0072 0C9A ldr r2, [sp, #48] 5270 0074 6262 str r2, [r4, #36] 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5271 .loc 1 2543 5 is_stmt 1 view .LVU1826 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5272 .loc 1 2543 21 is_stmt 0 view .LVU1827 5273 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5274 .loc 1 2544 5 is_stmt 1 view .LVU1828 2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5275 .loc 1 2544 21 is_stmt 0 view .LVU1829 5276 007a 6363 str r3, [r4, #52] 2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5277 .loc 1 2547 5 is_stmt 1 view .LVU1830 2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5278 .loc 1 2547 9 is_stmt 0 view .LVU1831 5279 007c 0197 str r7, [sp, #4] 5280 007e 0095 str r5, [sp] 5281 0080 4B46 mov r3, r9 5282 0082 4246 mov r2, r8 5283 0084 3146 mov r1, r6 5284 0086 2046 mov r0, r4 5285 0088 FFF7FEFF bl I2C_RequestMemoryRead 5286 .LVL339: 2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5287 .loc 1 2547 8 view .LVU1832 5288 008c 70B9 cbnz r0, .L353 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5289 .loc 1 2556 5 is_stmt 1 view .LVU1833 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5290 .loc 1 2556 13 is_stmt 0 view .LVU1834 5291 008e 638D ldrh r3, [r4, #42] 5292 0090 9BB2 uxth r3, r3 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 244 5293 .loc 1 2556 8 view .LVU1835 5294 0092 FF2B cmp r3, #255 5295 0094 0FD9 bls .L340 2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5296 .loc 1 2558 7 is_stmt 1 view .LVU1836 2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5297 .loc 1 2558 22 is_stmt 0 view .LVU1837 5298 0096 FF22 movs r2, #255 5299 0098 2285 strh r2, [r4, #40] @ movhi 2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5300 .loc 1 2559 7 is_stmt 1 view .LVU1838 5301 009a 444B ldr r3, .L355 5302 009c 0093 str r3, [sp] 5303 009e 4FF08073 mov r3, #16777216 5304 00a2 3146 mov r1, r6 5305 00a4 2046 mov r0, r4 5306 00a6 FFF7FEFF bl I2C_TransferConfig 5307 .LVL340: 5308 00aa 21E0 b .L344 5309 .L353: 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5310 .loc 1 2550 7 view .LVU1839 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5311 .loc 1 2550 7 view .LVU1840 5312 00ac 0023 movs r3, #0 5313 00ae 84F84030 strb r3, [r4, #64] 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5314 .loc 1 2550 7 view .LVU1841 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5315 .loc 1 2551 7 view .LVU1842 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5316 .loc 1 2551 14 is_stmt 0 view .LVU1843 5317 00b2 5846 mov r0, fp 5318 00b4 6EE0 b .L336 5319 .L340: 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5320 .loc 1 2564 7 is_stmt 1 view .LVU1844 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5321 .loc 1 2564 28 is_stmt 0 view .LVU1845 5322 00b6 628D ldrh r2, [r4, #42] 5323 00b8 92B2 uxth r2, r2 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5324 .loc 1 2564 22 view .LVU1846 5325 00ba 2285 strh r2, [r4, #40] @ movhi 2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5326 .loc 1 2565 7 is_stmt 1 view .LVU1847 5327 00bc 3B4B ldr r3, .L355 5328 00be 0093 str r3, [sp] 5329 00c0 4FF00073 mov r3, #33554432 5330 00c4 D2B2 uxtb r2, r2 5331 00c6 3146 mov r1, r6 5332 00c8 2046 mov r0, r4 5333 00ca FFF7FEFF bl I2C_TransferConfig 5334 .LVL341: 5335 00ce 0FE0 b .L344 5336 .L343: 2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, ARM GAS /tmp/ccbUHtu7.s page 245 5337 .loc 1 2602 11 view .LVU1848 2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5338 .loc 1 2602 32 is_stmt 0 view .LVU1849 5339 00d0 628D ldrh r2, [r4, #42] 5340 00d2 92B2 uxth r2, r2 2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5341 .loc 1 2602 26 view .LVU1850 5342 00d4 2285 strh r2, [r4, #40] @ movhi 2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5343 .loc 1 2603 11 is_stmt 1 view .LVU1851 5344 00d6 0023 movs r3, #0 5345 00d8 0093 str r3, [sp] 5346 00da 4FF00073 mov r3, #33554432 5347 00de D2B2 uxtb r2, r2 5348 00e0 3146 mov r1, r6 5349 00e2 2046 mov r0, r4 5350 00e4 FFF7FEFF bl I2C_TransferConfig 5351 .LVL342: 5352 .L342: 2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5353 .loc 1 2607 30 view .LVU1852 2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5354 .loc 1 2607 18 is_stmt 0 view .LVU1853 5355 00e8 638D ldrh r3, [r4, #42] 5356 00ea 9BB2 uxth r3, r3 2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5357 .loc 1 2607 30 view .LVU1854 5358 00ec 002B cmp r3, #0 5359 00ee 34D0 beq .L354 5360 .L344: 2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5361 .loc 1 2569 5 is_stmt 1 view .LVU1855 2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5362 .loc 1 2572 7 view .LVU1856 2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5363 .loc 1 2572 11 is_stmt 0 view .LVU1857 5364 00f0 0097 str r7, [sp] 5365 00f2 2B46 mov r3, r5 5366 00f4 0022 movs r2, #0 5367 00f6 0421 movs r1, #4 5368 00f8 2046 mov r0, r4 5369 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5370 .LVL343: 2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5371 .loc 1 2572 10 view .LVU1858 5372 00fe 0028 cmp r0, #0 5373 0100 4DD1 bne .L348 2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5374 .loc 1 2578 7 is_stmt 1 view .LVU1859 2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5375 .loc 1 2578 38 is_stmt 0 view .LVU1860 5376 0102 2368 ldr r3, [r4] 2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5377 .loc 1 2578 48 view .LVU1861 5378 0104 5A6A ldr r2, [r3, #36] 2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5379 .loc 1 2578 12 view .LVU1862 ARM GAS /tmp/ccbUHtu7.s page 246 5380 0106 636A ldr r3, [r4, #36] 2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5381 .loc 1 2578 23 view .LVU1863 5382 0108 1A70 strb r2, [r3] 2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5383 .loc 1 2581 7 is_stmt 1 view .LVU1864 2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5384 .loc 1 2581 11 is_stmt 0 view .LVU1865 5385 010a 636A ldr r3, [r4, #36] 2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5386 .loc 1 2581 21 view .LVU1866 5387 010c 0133 adds r3, r3, #1 5388 010e 6362 str r3, [r4, #36] 2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5389 .loc 1 2583 7 is_stmt 1 view .LVU1867 2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5390 .loc 1 2583 11 is_stmt 0 view .LVU1868 5391 0110 228D ldrh r2, [r4, #40] 2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5392 .loc 1 2583 21 view .LVU1869 5393 0112 013A subs r2, r2, #1 5394 0114 92B2 uxth r2, r2 5395 0116 2285 strh r2, [r4, #40] @ movhi 2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5396 .loc 1 2584 7 is_stmt 1 view .LVU1870 2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5397 .loc 1 2584 11 is_stmt 0 view .LVU1871 5398 0118 638D ldrh r3, [r4, #42] 5399 011a 9BB2 uxth r3, r3 2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5400 .loc 1 2584 22 view .LVU1872 5401 011c 013B subs r3, r3, #1 5402 011e 9BB2 uxth r3, r3 5403 0120 6385 strh r3, [r4, #42] @ movhi 2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5404 .loc 1 2586 7 is_stmt 1 view .LVU1873 2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5405 .loc 1 2586 16 is_stmt 0 view .LVU1874 5406 0122 638D ldrh r3, [r4, #42] 5407 0124 9BB2 uxth r3, r3 2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5408 .loc 1 2586 10 view .LVU1875 5409 0126 002B cmp r3, #0 5410 0128 DED0 beq .L342 2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5411 .loc 1 2586 35 discriminator 1 view .LVU1876 5412 012a 002A cmp r2, #0 5413 012c DCD1 bne .L342 2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5414 .loc 1 2589 9 is_stmt 1 view .LVU1877 2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5415 .loc 1 2589 13 is_stmt 0 view .LVU1878 5416 012e 0097 str r7, [sp] 5417 0130 2B46 mov r3, r5 5418 0132 8021 movs r1, #128 5419 0134 2046 mov r0, r4 5420 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout ARM GAS /tmp/ccbUHtu7.s page 247 5421 .LVL344: 2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5422 .loc 1 2589 12 view .LVU1879 5423 013a 90BB cbnz r0, .L349 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5424 .loc 1 2594 9 is_stmt 1 view .LVU1880 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5425 .loc 1 2594 17 is_stmt 0 view .LVU1881 5426 013c 638D ldrh r3, [r4, #42] 5427 013e 9BB2 uxth r3, r3 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5428 .loc 1 2594 12 view .LVU1882 5429 0140 FF2B cmp r3, #255 5430 0142 C5D9 bls .L343 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5431 .loc 1 2596 11 is_stmt 1 view .LVU1883 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5432 .loc 1 2596 26 is_stmt 0 view .LVU1884 5433 0144 FF22 movs r2, #255 5434 0146 2285 strh r2, [r4, #40] @ movhi 2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5435 .loc 1 2597 11 is_stmt 1 view .LVU1885 5436 0148 0023 movs r3, #0 5437 014a 0093 str r3, [sp] 5438 014c 4FF08073 mov r3, #16777216 5439 0150 3146 mov r1, r6 5440 0152 2046 mov r0, r4 5441 0154 FFF7FEFF bl I2C_TransferConfig 5442 .LVL345: 5443 0158 C6E7 b .L342 5444 .L354: 2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5445 .loc 1 2611 5 view .LVU1886 2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5446 .loc 1 2611 9 is_stmt 0 view .LVU1887 5447 015a 3A46 mov r2, r7 5448 015c 2946 mov r1, r5 5449 015e 2046 mov r0, r4 5450 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5451 .LVL346: 2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5452 .loc 1 2611 8 view .LVU1888 5453 0164 F8B9 cbnz r0, .L350 2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5454 .loc 1 2617 5 is_stmt 1 view .LVU1889 5455 0166 2368 ldr r3, [r4] 5456 0168 2022 movs r2, #32 5457 016a DA61 str r2, [r3, #28] 2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5458 .loc 1 2620 5 view .LVU1890 5459 016c 2168 ldr r1, [r4] 5460 016e 4B68 ldr r3, [r1, #4] 5461 0170 23F0FF73 bic r3, r3, #33423360 5462 0174 23F48B33 bic r3, r3, #71168 5463 0178 23F4FF73 bic r3, r3, #510 5464 017c 23F00103 bic r3, r3, #1 5465 0180 4B60 str r3, [r1, #4] ARM GAS /tmp/ccbUHtu7.s page 248 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5466 .loc 1 2622 5 view .LVU1891 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5467 .loc 1 2622 17 is_stmt 0 view .LVU1892 5468 0182 84F84120 strb r2, [r4, #65] 2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5469 .loc 1 2623 5 is_stmt 1 view .LVU1893 2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5470 .loc 1 2623 17 is_stmt 0 view .LVU1894 5471 0186 0023 movs r3, #0 5472 0188 84F84230 strb r3, [r4, #66] 2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5473 .loc 1 2626 5 is_stmt 1 view .LVU1895 2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5474 .loc 1 2626 5 view .LVU1896 5475 018c 84F84030 strb r3, [r4, #64] 2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5476 .loc 1 2626 5 view .LVU1897 2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5477 .loc 1 2628 5 view .LVU1898 2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5478 .loc 1 2628 12 is_stmt 0 view .LVU1899 5479 0190 00E0 b .L336 5480 .LVL347: 5481 .L345: 2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5482 .loc 1 2632 12 view .LVU1900 5483 0192 0220 movs r0, #2 5484 .LVL348: 5485 .L336: 2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5486 .loc 1 2634 1 view .LVU1901 5487 0194 03B0 add sp, sp, #12 5488 .LCFI61: 5489 .cfi_remember_state 5490 .cfi_def_cfa_offset 36 5491 @ sp needed 5492 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5493 .LVL349: 5494 .L346: 5495 .LCFI62: 5496 .cfi_restore_state 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5497 .loc 1 2527 5 view .LVU1902 5498 019a 0220 movs r0, #2 5499 .LVL350: 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5500 .loc 1 2527 5 view .LVU1903 5501 019c FAE7 b .L336 5502 .LVL351: 5503 .L348: 2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5504 .loc 1 2574 16 view .LVU1904 5505 019e 0120 movs r0, #1 5506 01a0 F8E7 b .L336 5507 .L349: 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 249 5508 .loc 1 2591 18 view .LVU1905 5509 01a2 0120 movs r0, #1 5510 01a4 F6E7 b .L336 5511 .L350: 2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5512 .loc 1 2613 14 view .LVU1906 5513 01a6 0120 movs r0, #1 5514 01a8 F4E7 b .L336 5515 .L356: 5516 01aa 00BF .align 2 5517 .L355: 5518 01ac 00240080 .word -2147474432 5519 .cfi_endproc 5520 .LFE346: 5522 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5523 .align 1 5524 .global HAL_I2C_Mem_Write_IT 5525 .syntax unified 5526 .thumb 5527 .thumb_func 5529 HAL_I2C_Mem_Write_IT: 5530 .LVL352: 5531 .LFB347: 2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5532 .loc 1 2649 1 is_stmt 1 view -0 5533 .cfi_startproc 5534 @ args = 8, pretend = 0, frame = 0 5535 @ frame_needed = 0, uses_anonymous_args = 0 2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5536 .loc 1 2649 1 is_stmt 0 view .LVU1908 5537 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 5538 .LCFI63: 5539 .cfi_def_cfa_offset 24 5540 .cfi_offset 4, -24 5541 .cfi_offset 5, -20 5542 .cfi_offset 6, -16 5543 .cfi_offset 7, -12 5544 .cfi_offset 8, -8 5545 .cfi_offset 14, -4 5546 0004 82B0 sub sp, sp, #8 5547 .LCFI64: 5548 .cfi_def_cfa_offset 32 5549 0006 0446 mov r4, r0 5550 0008 BDF82480 ldrh r8, [sp, #36] 2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 5551 .loc 1 2650 3 is_stmt 1 view .LVU1909 2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5552 .loc 1 2651 3 view .LVU1910 2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5553 .loc 1 2654 3 view .LVU1911 2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5554 .loc 1 2656 3 view .LVU1912 2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5555 .loc 1 2656 11 is_stmt 0 view .LVU1913 5556 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5557 .LVL353: 2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 250 5558 .loc 1 2656 11 view .LVU1914 5559 0010 C0B2 uxtb r0, r0 2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5560 .loc 1 2656 6 view .LVU1915 5561 0012 2028 cmp r0, #32 5562 0014 58D1 bne .L364 5563 0016 0D46 mov r5, r1 5564 0018 1746 mov r7, r2 5565 001a 1E46 mov r6, r3 2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5566 .loc 1 2658 5 is_stmt 1 view .LVU1916 2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5567 .loc 1 2658 8 is_stmt 0 view .LVU1917 5568 001c 089B ldr r3, [sp, #32] 5569 .LVL354: 2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5570 .loc 1 2658 8 view .LVU1918 5571 001e 002B cmp r3, #0 5572 0020 38D0 beq .L359 2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5573 .loc 1 2658 25 discriminator 1 view .LVU1919 5574 0022 B8F1000F cmp r8, #0 5575 0026 35D0 beq .L359 2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5576 .loc 1 2664 5 is_stmt 1 view .LVU1920 2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5577 .loc 1 2664 9 is_stmt 0 view .LVU1921 5578 0028 2368 ldr r3, [r4] 5579 002a 9B69 ldr r3, [r3, #24] 2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5580 .loc 1 2664 8 view .LVU1922 5581 002c 13F4004F tst r3, #32768 5582 0030 4FD1 bne .L365 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5583 .loc 1 2670 5 is_stmt 1 view .LVU1923 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5584 .loc 1 2670 5 view .LVU1924 5585 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 5586 0036 012B cmp r3, #1 5587 0038 4DD0 beq .L366 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5588 .loc 1 2670 5 discriminator 2 view .LVU1925 5589 003a 0123 movs r3, #1 5590 003c 84F84030 strb r3, [r4, #64] 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5591 .loc 1 2670 5 discriminator 2 view .LVU1926 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5592 .loc 1 2673 5 discriminator 2 view .LVU1927 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5593 .loc 1 2673 17 is_stmt 0 discriminator 2 view .LVU1928 5594 0040 FFF7FEFF bl HAL_GetTick 5595 .LVL355: 2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5596 .loc 1 2675 5 is_stmt 1 discriminator 2 view .LVU1929 2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5597 .loc 1 2675 23 is_stmt 0 discriminator 2 view .LVU1930 5598 0044 2123 movs r3, #33 ARM GAS /tmp/ccbUHtu7.s page 251 5599 0046 84F84130 strb r3, [r4, #65] 2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5600 .loc 1 2676 5 is_stmt 1 discriminator 2 view .LVU1931 2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5601 .loc 1 2676 23 is_stmt 0 discriminator 2 view .LVU1932 5602 004a 4023 movs r3, #64 5603 004c 84F84230 strb r3, [r4, #66] 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5604 .loc 1 2677 5 is_stmt 1 discriminator 2 view .LVU1933 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5605 .loc 1 2677 23 is_stmt 0 discriminator 2 view .LVU1934 5606 0050 0023 movs r3, #0 5607 0052 6364 str r3, [r4, #68] 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5608 .loc 1 2680 5 is_stmt 1 discriminator 2 view .LVU1935 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5609 .loc 1 2680 23 is_stmt 0 discriminator 2 view .LVU1936 5610 0054 089B ldr r3, [sp, #32] 5611 0056 6362 str r3, [r4, #36] 2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5612 .loc 1 2681 5 is_stmt 1 discriminator 2 view .LVU1937 2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5613 .loc 1 2681 23 is_stmt 0 discriminator 2 view .LVU1938 5614 0058 A4F82A80 strh r8, [r4, #42] @ movhi 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5615 .loc 1 2682 5 is_stmt 1 discriminator 2 view .LVU1939 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5616 .loc 1 2682 23 is_stmt 0 discriminator 2 view .LVU1940 5617 005c 1F4B ldr r3, .L368 5618 005e E362 str r3, [r4, #44] 2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5619 .loc 1 2683 5 is_stmt 1 discriminator 2 view .LVU1941 2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5620 .loc 1 2683 23 is_stmt 0 discriminator 2 view .LVU1942 5621 0060 1F4B ldr r3, .L368+4 5622 0062 6363 str r3, [r4, #52] 2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5623 .loc 1 2685 5 is_stmt 1 discriminator 2 view .LVU1943 2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5624 .loc 1 2685 13 is_stmt 0 discriminator 2 view .LVU1944 5625 0064 638D ldrh r3, [r4, #42] 5626 0066 9BB2 uxth r3, r3 2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5627 .loc 1 2685 8 discriminator 2 view .LVU1945 5628 0068 FF2B cmp r3, #255 5629 006a 18D9 bls .L361 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5630 .loc 1 2687 7 is_stmt 1 view .LVU1946 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5631 .loc 1 2687 22 is_stmt 0 view .LVU1947 5632 006c FF23 movs r3, #255 5633 006e 2385 strh r3, [r4, #40] @ movhi 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5634 .loc 1 2688 7 is_stmt 1 view .LVU1948 5635 .LVL356: 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5636 .loc 1 2688 16 is_stmt 0 view .LVU1949 ARM GAS /tmp/ccbUHtu7.s page 252 5637 0070 4FF08078 mov r8, #16777216 5638 .LVL357: 5639 .L362: 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 5640 .loc 1 2697 5 is_stmt 1 view .LVU1950 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 5641 .loc 1 2697 9 is_stmt 0 view .LVU1951 5642 0074 0190 str r0, [sp, #4] 5643 0076 1923 movs r3, #25 5644 0078 0093 str r3, [sp] 5645 007a 3346 mov r3, r6 5646 007c 3A46 mov r2, r7 5647 007e 2946 mov r1, r5 5648 0080 2046 mov r0, r4 5649 .LVL358: 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 5650 .loc 1 2697 9 view .LVU1952 5651 0082 FFF7FEFF bl I2C_RequestMemoryWrite 5652 .LVL359: 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 5653 .loc 1 2697 8 view .LVU1953 5654 0086 0646 mov r6, r0 5655 0088 70B1 cbz r0, .L363 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5656 .loc 1 2701 7 is_stmt 1 view .LVU1954 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5657 .loc 1 2701 7 view .LVU1955 5658 008a 0023 movs r3, #0 5659 008c 84F84030 strb r3, [r4, #64] 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5660 .loc 1 2701 7 view .LVU1956 2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5661 .loc 1 2702 7 view .LVU1957 2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5662 .loc 1 2702 14 is_stmt 0 view .LVU1958 5663 0090 0126 movs r6, #1 5664 0092 1AE0 b .L358 5665 .LVL360: 5666 .L359: 2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5667 .loc 1 2660 7 is_stmt 1 view .LVU1959 2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5668 .loc 1 2660 23 is_stmt 0 view .LVU1960 5669 0094 4FF40073 mov r3, #512 5670 0098 6364 str r3, [r4, #68] 2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5671 .loc 1 2661 7 is_stmt 1 view .LVU1961 2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5672 .loc 1 2661 15 is_stmt 0 view .LVU1962 5673 009a 0126 movs r6, #1 5674 009c 15E0 b .L358 5675 .LVL361: 5676 .L361: 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5677 .loc 1 2692 7 is_stmt 1 view .LVU1963 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5678 .loc 1 2692 28 is_stmt 0 view .LVU1964 ARM GAS /tmp/ccbUHtu7.s page 253 5679 009e 638D ldrh r3, [r4, #42] 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5680 .loc 1 2692 22 view .LVU1965 5681 00a0 2385 strh r3, [r4, #40] @ movhi 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5682 .loc 1 2693 7 is_stmt 1 view .LVU1966 5683 .LVL362: 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5684 .loc 1 2693 16 is_stmt 0 view .LVU1967 5685 00a2 4FF00078 mov r8, #33554432 5686 00a6 E5E7 b .L362 5687 .LVL363: 5688 .L363: 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5689 .loc 1 2706 5 is_stmt 1 view .LVU1968 5690 00a8 0027 movs r7, #0 5691 00aa 0097 str r7, [sp] 5692 00ac 4346 mov r3, r8 5693 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 5694 00b2 2946 mov r1, r5 5695 00b4 2046 mov r0, r4 5696 00b6 FFF7FEFF bl I2C_TransferConfig 5697 .LVL364: 2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5698 .loc 1 2709 5 view .LVU1969 2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5699 .loc 1 2709 5 view .LVU1970 5700 00ba 84F84070 strb r7, [r4, #64] 2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5701 .loc 1 2709 5 view .LVU1971 2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5702 .loc 1 2719 5 view .LVU1972 5703 00be 0121 movs r1, #1 5704 00c0 2046 mov r0, r4 5705 00c2 FFF7FEFF bl I2C_Enable_IRQ 5706 .LVL365: 2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5707 .loc 1 2721 5 view .LVU1973 2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5708 .loc 1 2721 12 is_stmt 0 view .LVU1974 5709 00c6 00E0 b .L358 5710 .LVL366: 5711 .L364: 2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5712 .loc 1 2725 12 view .LVU1975 5713 00c8 0226 movs r6, #2 5714 .LVL367: 5715 .L358: 2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5716 .loc 1 2727 1 view .LVU1976 5717 00ca 3046 mov r0, r6 5718 00cc 02B0 add sp, sp, #8 5719 .LCFI65: 5720 .cfi_remember_state 5721 .cfi_def_cfa_offset 24 5722 @ sp needed 5723 00ce BDE8F081 pop {r4, r5, r6, r7, r8, pc} ARM GAS /tmp/ccbUHtu7.s page 254 5724 .LVL368: 5725 .L365: 5726 .LCFI66: 5727 .cfi_restore_state 2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5728 .loc 1 2666 14 view .LVU1977 5729 00d2 0226 movs r6, #2 5730 00d4 F9E7 b .L358 5731 .L366: 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5732 .loc 1 2670 5 view .LVU1978 5733 00d6 0226 movs r6, #2 5734 00d8 F7E7 b .L358 5735 .L369: 5736 00da 00BF .align 2 5737 .L368: 5738 00dc 0000FFFF .word -65536 5739 00e0 00000000 .word I2C_Master_ISR_IT 5740 .cfi_endproc 5741 .LFE347: 5743 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 5744 .align 1 5745 .global HAL_I2C_Mem_Read_IT 5746 .syntax unified 5747 .thumb 5748 .thumb_func 5750 HAL_I2C_Mem_Read_IT: 5751 .LVL369: 5752 .LFB348: 2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5753 .loc 1 2743 1 is_stmt 1 view -0 5754 .cfi_startproc 5755 @ args = 8, pretend = 0, frame = 0 5756 @ frame_needed = 0, uses_anonymous_args = 0 2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5757 .loc 1 2743 1 is_stmt 0 view .LVU1980 5758 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 5759 .LCFI67: 5760 .cfi_def_cfa_offset 24 5761 .cfi_offset 4, -24 5762 .cfi_offset 5, -20 5763 .cfi_offset 6, -16 5764 .cfi_offset 7, -12 5765 .cfi_offset 8, -8 5766 .cfi_offset 14, -4 5767 0004 82B0 sub sp, sp, #8 5768 .LCFI68: 5769 .cfi_def_cfa_offset 32 5770 0006 0446 mov r4, r0 5771 0008 BDF82480 ldrh r8, [sp, #36] 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 5772 .loc 1 2744 3 is_stmt 1 view .LVU1981 2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5773 .loc 1 2745 3 view .LVU1982 2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5774 .loc 1 2748 3 view .LVU1983 2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 255 5775 .loc 1 2750 3 view .LVU1984 2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5776 .loc 1 2750 11 is_stmt 0 view .LVU1985 5777 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5778 .LVL370: 2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5779 .loc 1 2750 11 view .LVU1986 5780 0010 C0B2 uxtb r0, r0 2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5781 .loc 1 2750 6 view .LVU1987 5782 0012 2028 cmp r0, #32 5783 0014 59D1 bne .L377 5784 0016 0D46 mov r5, r1 5785 0018 1746 mov r7, r2 5786 001a 1E46 mov r6, r3 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5787 .loc 1 2752 5 is_stmt 1 view .LVU1988 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5788 .loc 1 2752 8 is_stmt 0 view .LVU1989 5789 001c 089B ldr r3, [sp, #32] 5790 .LVL371: 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5791 .loc 1 2752 8 view .LVU1990 5792 001e 002B cmp r3, #0 5793 0020 38D0 beq .L372 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5794 .loc 1 2752 25 discriminator 1 view .LVU1991 5795 0022 B8F1000F cmp r8, #0 5796 0026 35D0 beq .L372 2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5797 .loc 1 2758 5 is_stmt 1 view .LVU1992 2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5798 .loc 1 2758 9 is_stmt 0 view .LVU1993 5799 0028 2368 ldr r3, [r4] 5800 002a 9B69 ldr r3, [r3, #24] 2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5801 .loc 1 2758 8 view .LVU1994 5802 002c 13F4004F tst r3, #32768 5803 0030 50D1 bne .L378 2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5804 .loc 1 2764 5 is_stmt 1 view .LVU1995 2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5805 .loc 1 2764 5 view .LVU1996 5806 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 5807 0036 012B cmp r3, #1 5808 0038 4ED0 beq .L379 2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5809 .loc 1 2764 5 discriminator 2 view .LVU1997 5810 003a 0123 movs r3, #1 5811 003c 84F84030 strb r3, [r4, #64] 2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5812 .loc 1 2764 5 discriminator 2 view .LVU1998 2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5813 .loc 1 2767 5 discriminator 2 view .LVU1999 2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5814 .loc 1 2767 17 is_stmt 0 discriminator 2 view .LVU2000 5815 0040 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccbUHtu7.s page 256 5816 .LVL372: 2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5817 .loc 1 2769 5 is_stmt 1 discriminator 2 view .LVU2001 2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5818 .loc 1 2769 23 is_stmt 0 discriminator 2 view .LVU2002 5819 0044 2223 movs r3, #34 5820 0046 84F84130 strb r3, [r4, #65] 2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5821 .loc 1 2770 5 is_stmt 1 discriminator 2 view .LVU2003 2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5822 .loc 1 2770 23 is_stmt 0 discriminator 2 view .LVU2004 5823 004a 4023 movs r3, #64 5824 004c 84F84230 strb r3, [r4, #66] 2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5825 .loc 1 2771 5 is_stmt 1 discriminator 2 view .LVU2005 2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5826 .loc 1 2771 23 is_stmt 0 discriminator 2 view .LVU2006 5827 0050 0023 movs r3, #0 5828 0052 6364 str r3, [r4, #68] 2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5829 .loc 1 2774 5 is_stmt 1 discriminator 2 view .LVU2007 2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5830 .loc 1 2774 23 is_stmt 0 discriminator 2 view .LVU2008 5831 0054 089B ldr r3, [sp, #32] 5832 0056 6362 str r3, [r4, #36] 2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5833 .loc 1 2775 5 is_stmt 1 discriminator 2 view .LVU2009 2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5834 .loc 1 2775 23 is_stmt 0 discriminator 2 view .LVU2010 5835 0058 A4F82A80 strh r8, [r4, #42] @ movhi 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5836 .loc 1 2776 5 is_stmt 1 discriminator 2 view .LVU2011 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5837 .loc 1 2776 23 is_stmt 0 discriminator 2 view .LVU2012 5838 005c 1F4B ldr r3, .L381 5839 005e E362 str r3, [r4, #44] 2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5840 .loc 1 2777 5 is_stmt 1 discriminator 2 view .LVU2013 2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5841 .loc 1 2777 23 is_stmt 0 discriminator 2 view .LVU2014 5842 0060 1F4B ldr r3, .L381+4 5843 0062 6363 str r3, [r4, #52] 2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5844 .loc 1 2779 5 is_stmt 1 discriminator 2 view .LVU2015 2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5845 .loc 1 2779 13 is_stmt 0 discriminator 2 view .LVU2016 5846 0064 638D ldrh r3, [r4, #42] 5847 0066 9BB2 uxth r3, r3 2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5848 .loc 1 2779 8 discriminator 2 view .LVU2017 5849 0068 FF2B cmp r3, #255 5850 006a 18D9 bls .L374 2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5851 .loc 1 2781 7 is_stmt 1 view .LVU2018 2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5852 .loc 1 2781 22 is_stmt 0 view .LVU2019 5853 006c FF23 movs r3, #255 ARM GAS /tmp/ccbUHtu7.s page 257 5854 006e 2385 strh r3, [r4, #40] @ movhi 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5855 .loc 1 2782 7 is_stmt 1 view .LVU2020 5856 .LVL373: 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5857 .loc 1 2782 16 is_stmt 0 view .LVU2021 5858 0070 4FF08078 mov r8, #16777216 5859 .LVL374: 5860 .L375: 2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5861 .loc 1 2791 5 is_stmt 1 view .LVU2022 2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5862 .loc 1 2791 9 is_stmt 0 view .LVU2023 5863 0074 0190 str r0, [sp, #4] 5864 0076 1923 movs r3, #25 5865 0078 0093 str r3, [sp] 5866 007a 3346 mov r3, r6 5867 007c 3A46 mov r2, r7 5868 007e 2946 mov r1, r5 5869 0080 2046 mov r0, r4 5870 .LVL375: 2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5871 .loc 1 2791 9 view .LVU2024 5872 0082 FFF7FEFF bl I2C_RequestMemoryRead 5873 .LVL376: 2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5874 .loc 1 2791 8 view .LVU2025 5875 0086 0646 mov r6, r0 5876 0088 70B1 cbz r0, .L376 2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5877 .loc 1 2794 7 is_stmt 1 view .LVU2026 2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5878 .loc 1 2794 7 view .LVU2027 5879 008a 0023 movs r3, #0 5880 008c 84F84030 strb r3, [r4, #64] 2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5881 .loc 1 2794 7 view .LVU2028 2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5882 .loc 1 2795 7 view .LVU2029 2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5883 .loc 1 2795 14 is_stmt 0 view .LVU2030 5884 0090 0126 movs r6, #1 5885 0092 1BE0 b .L371 5886 .LVL377: 5887 .L372: 2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5888 .loc 1 2754 7 is_stmt 1 view .LVU2031 2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5889 .loc 1 2754 23 is_stmt 0 view .LVU2032 5890 0094 4FF40073 mov r3, #512 5891 0098 6364 str r3, [r4, #68] 2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5892 .loc 1 2755 7 is_stmt 1 view .LVU2033 2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5893 .loc 1 2755 15 is_stmt 0 view .LVU2034 5894 009a 0126 movs r6, #1 5895 009c 16E0 b .L371 ARM GAS /tmp/ccbUHtu7.s page 258 5896 .LVL378: 5897 .L374: 2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5898 .loc 1 2786 7 is_stmt 1 view .LVU2035 2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5899 .loc 1 2786 28 is_stmt 0 view .LVU2036 5900 009e 638D ldrh r3, [r4, #42] 2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5901 .loc 1 2786 22 view .LVU2037 5902 00a0 2385 strh r3, [r4, #40] @ movhi 2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5903 .loc 1 2787 7 is_stmt 1 view .LVU2038 5904 .LVL379: 2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5905 .loc 1 2787 16 is_stmt 0 view .LVU2039 5906 00a2 4FF00078 mov r8, #33554432 5907 00a6 E5E7 b .L375 5908 .LVL380: 5909 .L376: 2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5910 .loc 1 2799 5 is_stmt 1 view .LVU2040 5911 00a8 0E4B ldr r3, .L381+8 5912 00aa 0093 str r3, [sp] 5913 00ac 4346 mov r3, r8 5914 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 5915 00b2 2946 mov r1, r5 5916 00b4 2046 mov r0, r4 5917 00b6 FFF7FEFF bl I2C_TransferConfig 5918 .LVL381: 2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5919 .loc 1 2802 5 view .LVU2041 2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5920 .loc 1 2802 5 view .LVU2042 5921 00ba 0023 movs r3, #0 5922 00bc 84F84030 strb r3, [r4, #64] 2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5923 .loc 1 2802 5 view .LVU2043 2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5924 .loc 1 2812 5 view .LVU2044 5925 00c0 0221 movs r1, #2 5926 00c2 2046 mov r0, r4 5927 00c4 FFF7FEFF bl I2C_Enable_IRQ 5928 .LVL382: 2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5929 .loc 1 2814 5 view .LVU2045 2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5930 .loc 1 2814 12 is_stmt 0 view .LVU2046 5931 00c8 00E0 b .L371 5932 .LVL383: 5933 .L377: 2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5934 .loc 1 2818 12 view .LVU2047 5935 00ca 0226 movs r6, #2 5936 .LVL384: 5937 .L371: 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5938 .loc 1 2820 1 view .LVU2048 ARM GAS /tmp/ccbUHtu7.s page 259 5939 00cc 3046 mov r0, r6 5940 00ce 02B0 add sp, sp, #8 5941 .LCFI69: 5942 .cfi_remember_state 5943 .cfi_def_cfa_offset 24 5944 @ sp needed 5945 00d0 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 5946 .LVL385: 5947 .L378: 5948 .LCFI70: 5949 .cfi_restore_state 2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5950 .loc 1 2760 14 view .LVU2049 5951 00d4 0226 movs r6, #2 5952 00d6 F9E7 b .L371 5953 .L379: 2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5954 .loc 1 2764 5 view .LVU2050 5955 00d8 0226 movs r6, #2 5956 00da F7E7 b .L371 5957 .L382: 5958 .align 2 5959 .L381: 5960 00dc 0000FFFF .word -65536 5961 00e0 00000000 .word I2C_Master_ISR_IT 5962 00e4 00240080 .word -2147474432 5963 .cfi_endproc 5964 .LFE348: 5966 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 5967 .align 1 5968 .global HAL_I2C_Mem_Write_DMA 5969 .syntax unified 5970 .thumb 5971 .thumb_func 5973 HAL_I2C_Mem_Write_DMA: 5974 .LVL386: 5975 .LFB349: 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5976 .loc 1 2835 1 is_stmt 1 view -0 5977 .cfi_startproc 5978 @ args = 8, pretend = 0, frame = 0 5979 @ frame_needed = 0, uses_anonymous_args = 0 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5980 .loc 1 2835 1 is_stmt 0 view .LVU2052 5981 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 5982 .LCFI71: 5983 .cfi_def_cfa_offset 24 5984 .cfi_offset 4, -24 5985 .cfi_offset 5, -20 5986 .cfi_offset 6, -16 5987 .cfi_offset 7, -12 5988 .cfi_offset 8, -8 5989 .cfi_offset 14, -4 5990 0004 82B0 sub sp, sp, #8 5991 .LCFI72: 5992 .cfi_def_cfa_offset 32 5993 0006 0446 mov r4, r0 ARM GAS /tmp/ccbUHtu7.s page 260 5994 0008 BDF82480 ldrh r8, [sp, #36] 2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 5995 .loc 1 2836 3 is_stmt 1 view .LVU2053 2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 5996 .loc 1 2837 3 view .LVU2054 2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5997 .loc 1 2838 3 view .LVU2055 2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5998 .loc 1 2841 3 view .LVU2056 2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5999 .loc 1 2843 3 view .LVU2057 2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6000 .loc 1 2843 11 is_stmt 0 view .LVU2058 6001 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6002 .LVL387: 2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6003 .loc 1 2843 11 view .LVU2059 6004 0010 C0B2 uxtb r0, r0 2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6005 .loc 1 2843 6 view .LVU2060 6006 0012 2028 cmp r0, #32 6007 0014 40F09880 bne .L393 6008 0018 0D46 mov r5, r1 6009 001a 1746 mov r7, r2 6010 001c 1E46 mov r6, r3 2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6011 .loc 1 2845 5 is_stmt 1 view .LVU2061 2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6012 .loc 1 2845 8 is_stmt 0 view .LVU2062 6013 001e 089B ldr r3, [sp, #32] 6014 .LVL388: 2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6015 .loc 1 2845 8 view .LVU2063 6016 0020 002B cmp r3, #0 6017 0022 59D0 beq .L385 2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6018 .loc 1 2845 25 discriminator 1 view .LVU2064 6019 0024 B8F1000F cmp r8, #0 6020 0028 56D0 beq .L385 2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6021 .loc 1 2851 5 is_stmt 1 view .LVU2065 2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6022 .loc 1 2851 9 is_stmt 0 view .LVU2066 6023 002a 2368 ldr r3, [r4] 6024 002c 9B69 ldr r3, [r3, #24] 2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6025 .loc 1 2851 8 view .LVU2067 6026 002e 13F4004F tst r3, #32768 6027 0032 40F08E80 bne .L394 2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6028 .loc 1 2857 5 is_stmt 1 view .LVU2068 2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6029 .loc 1 2857 5 view .LVU2069 6030 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 6031 003a 012B cmp r3, #1 6032 003c 00F08B80 beq .L395 2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 261 6033 .loc 1 2857 5 discriminator 2 view .LVU2070 6034 0040 0123 movs r3, #1 6035 0042 84F84030 strb r3, [r4, #64] 2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6036 .loc 1 2857 5 discriminator 2 view .LVU2071 2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6037 .loc 1 2860 5 discriminator 2 view .LVU2072 2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6038 .loc 1 2860 17 is_stmt 0 discriminator 2 view .LVU2073 6039 0046 FFF7FEFF bl HAL_GetTick 6040 .LVL389: 2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6041 .loc 1 2862 5 is_stmt 1 discriminator 2 view .LVU2074 2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6042 .loc 1 2862 23 is_stmt 0 discriminator 2 view .LVU2075 6043 004a 2123 movs r3, #33 6044 004c 84F84130 strb r3, [r4, #65] 2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6045 .loc 1 2863 5 is_stmt 1 discriminator 2 view .LVU2076 2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6046 .loc 1 2863 23 is_stmt 0 discriminator 2 view .LVU2077 6047 0050 4023 movs r3, #64 6048 0052 84F84230 strb r3, [r4, #66] 2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6049 .loc 1 2864 5 is_stmt 1 discriminator 2 view .LVU2078 2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6050 .loc 1 2864 23 is_stmt 0 discriminator 2 view .LVU2079 6051 0056 0023 movs r3, #0 6052 0058 6364 str r3, [r4, #68] 2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6053 .loc 1 2867 5 is_stmt 1 discriminator 2 view .LVU2080 2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6054 .loc 1 2867 23 is_stmt 0 discriminator 2 view .LVU2081 6055 005a 089B ldr r3, [sp, #32] 6056 005c 6362 str r3, [r4, #36] 2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6057 .loc 1 2868 5 is_stmt 1 discriminator 2 view .LVU2082 2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6058 .loc 1 2868 23 is_stmt 0 discriminator 2 view .LVU2083 6059 005e A4F82A80 strh r8, [r4, #42] @ movhi 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6060 .loc 1 2869 5 is_stmt 1 discriminator 2 view .LVU2084 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6061 .loc 1 2869 23 is_stmt 0 discriminator 2 view .LVU2085 6062 0062 3E4B ldr r3, .L400 6063 0064 E362 str r3, [r4, #44] 2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6064 .loc 1 2870 5 is_stmt 1 discriminator 2 view .LVU2086 2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6065 .loc 1 2870 23 is_stmt 0 discriminator 2 view .LVU2087 6066 0066 3E4B ldr r3, .L400+4 6067 0068 6363 str r3, [r4, #52] 2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6068 .loc 1 2872 5 is_stmt 1 discriminator 2 view .LVU2088 2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6069 .loc 1 2872 13 is_stmt 0 discriminator 2 view .LVU2089 6070 006a 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccbUHtu7.s page 262 6071 006c 9BB2 uxth r3, r3 2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6072 .loc 1 2872 8 discriminator 2 view .LVU2090 6073 006e FF2B cmp r3, #255 6074 0070 37D9 bls .L387 2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6075 .loc 1 2874 7 is_stmt 1 view .LVU2091 2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6076 .loc 1 2874 22 is_stmt 0 view .LVU2092 6077 0072 FF23 movs r3, #255 6078 0074 2385 strh r3, [r4, #40] @ movhi 2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6079 .loc 1 2875 7 is_stmt 1 view .LVU2093 6080 .LVL390: 2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6081 .loc 1 2875 16 is_stmt 0 view .LVU2094 6082 0076 4FF08078 mov r8, #16777216 6083 .LVL391: 6084 .L388: 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 6085 .loc 1 2884 5 is_stmt 1 view .LVU2095 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 6086 .loc 1 2884 9 is_stmt 0 view .LVU2096 6087 007a 0190 str r0, [sp, #4] 6088 007c 1923 movs r3, #25 6089 007e 0093 str r3, [sp] 6090 0080 3346 mov r3, r6 6091 0082 3A46 mov r2, r7 6092 0084 2946 mov r1, r5 6093 0086 2046 mov r0, r4 6094 .LVL392: 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 6095 .loc 1 2884 9 view .LVU2097 6096 0088 FFF7FEFF bl I2C_RequestMemoryWrite 6097 .LVL393: 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** != HAL_OK) 6098 .loc 1 2884 8 view .LVU2098 6099 008c 0028 cmp r0, #0 6100 008e 2DD1 bne .L398 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6101 .loc 1 2893 5 is_stmt 1 view .LVU2099 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6102 .loc 1 2893 13 is_stmt 0 view .LVU2100 6103 0090 A36B ldr r3, [r4, #56] 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6104 .loc 1 2893 8 view .LVU2101 6105 0092 002B cmp r3, #0 6106 0094 2FD0 beq .L390 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6107 .loc 1 2896 7 is_stmt 1 view .LVU2102 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6108 .loc 1 2896 38 is_stmt 0 view .LVU2103 6109 0096 334A ldr r2, .L400+8 6110 0098 DA62 str r2, [r3, #44] 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6111 .loc 1 2899 7 is_stmt 1 view .LVU2104 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 263 6112 .loc 1 2899 11 is_stmt 0 view .LVU2105 6113 009a A36B ldr r3, [r4, #56] 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6114 .loc 1 2899 39 view .LVU2106 6115 009c 324A ldr r2, .L400+12 6116 009e 5A63 str r2, [r3, #52] 2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6117 .loc 1 2902 7 is_stmt 1 view .LVU2107 2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6118 .loc 1 2902 11 is_stmt 0 view .LVU2108 6119 00a0 A26B ldr r2, [r4, #56] 2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6120 .loc 1 2902 42 view .LVU2109 6121 00a2 0023 movs r3, #0 6122 00a4 1363 str r3, [r2, #48] 2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6123 .loc 1 2903 7 is_stmt 1 view .LVU2110 2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6124 .loc 1 2903 11 is_stmt 0 view .LVU2111 6125 00a6 A26B ldr r2, [r4, #56] 2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6126 .loc 1 2903 39 view .LVU2112 6127 00a8 9363 str r3, [r2, #56] 2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6128 .loc 1 2906 7 is_stmt 1 view .LVU2113 2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6129 .loc 1 2906 86 is_stmt 0 view .LVU2114 6130 00aa 2268 ldr r2, [r4] 2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6131 .loc 1 2906 23 view .LVU2115 6132 00ac 238D ldrh r3, [r4, #40] 6133 00ae 2832 adds r2, r2, #40 6134 00b0 0899 ldr r1, [sp, #32] 6135 00b2 A06B ldr r0, [r4, #56] 6136 00b4 FFF7FEFF bl HAL_DMA_Start_IT 6137 .LVL394: 2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6138 .loc 1 2924 5 is_stmt 1 view .LVU2116 2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6139 .loc 1 2924 8 is_stmt 0 view .LVU2117 6140 00b8 0646 mov r6, r0 6141 00ba 50B3 cbz r0, .L399 2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6142 .loc 1 2948 7 is_stmt 1 view .LVU2118 2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6143 .loc 1 2948 23 is_stmt 0 view .LVU2119 6144 00bc 2023 movs r3, #32 6145 00be 84F84130 strb r3, [r4, #65] 2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6146 .loc 1 2949 7 is_stmt 1 view .LVU2120 2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6147 .loc 1 2949 23 is_stmt 0 view .LVU2121 6148 00c2 0022 movs r2, #0 6149 00c4 84F84220 strb r2, [r4, #66] 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6150 .loc 1 2952 7 is_stmt 1 view .LVU2122 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 264 6151 .loc 1 2952 11 is_stmt 0 view .LVU2123 6152 00c8 636C ldr r3, [r4, #68] 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6153 .loc 1 2952 23 view .LVU2124 6154 00ca 43F01003 orr r3, r3, #16 6155 00ce 6364 str r3, [r4, #68] 2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6156 .loc 1 2955 7 is_stmt 1 view .LVU2125 2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6157 .loc 1 2955 7 view .LVU2126 6158 00d0 84F84020 strb r2, [r4, #64] 2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6159 .loc 1 2955 7 view .LVU2127 2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6160 .loc 1 2957 7 view .LVU2128 2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6161 .loc 1 2957 14 is_stmt 0 view .LVU2129 6162 00d4 0126 movs r6, #1 6163 00d6 38E0 b .L384 6164 .LVL395: 6165 .L385: 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6166 .loc 1 2847 7 is_stmt 1 view .LVU2130 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6167 .loc 1 2847 23 is_stmt 0 view .LVU2131 6168 00d8 4FF40073 mov r3, #512 6169 00dc 6364 str r3, [r4, #68] 2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6170 .loc 1 2848 7 is_stmt 1 view .LVU2132 2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6171 .loc 1 2848 15 is_stmt 0 view .LVU2133 6172 00de 0126 movs r6, #1 6173 00e0 33E0 b .L384 6174 .LVL396: 6175 .L387: 2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6176 .loc 1 2879 7 is_stmt 1 view .LVU2134 2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6177 .loc 1 2879 28 is_stmt 0 view .LVU2135 6178 00e2 638D ldrh r3, [r4, #42] 2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6179 .loc 1 2879 22 view .LVU2136 6180 00e4 2385 strh r3, [r4, #40] @ movhi 2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6181 .loc 1 2880 7 is_stmt 1 view .LVU2137 6182 .LVL397: 2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6183 .loc 1 2880 16 is_stmt 0 view .LVU2138 6184 00e6 4FF00078 mov r8, #33554432 6185 00ea C6E7 b .L388 6186 .LVL398: 6187 .L398: 2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6188 .loc 1 2888 7 is_stmt 1 view .LVU2139 2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6189 .loc 1 2888 7 view .LVU2140 6190 00ec 0023 movs r3, #0 ARM GAS /tmp/ccbUHtu7.s page 265 6191 00ee 84F84030 strb r3, [r4, #64] 2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6192 .loc 1 2888 7 view .LVU2141 2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6193 .loc 1 2889 7 view .LVU2142 2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6194 .loc 1 2889 14 is_stmt 0 view .LVU2143 6195 00f2 0126 movs r6, #1 6196 00f4 29E0 b .L384 6197 .L390: 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6198 .loc 1 2912 7 is_stmt 1 view .LVU2144 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6199 .loc 1 2912 23 is_stmt 0 view .LVU2145 6200 00f6 2023 movs r3, #32 6201 00f8 84F84130 strb r3, [r4, #65] 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6202 .loc 1 2913 7 is_stmt 1 view .LVU2146 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6203 .loc 1 2913 23 is_stmt 0 view .LVU2147 6204 00fc 0022 movs r2, #0 6205 00fe 84F84220 strb r2, [r4, #66] 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6206 .loc 1 2916 7 is_stmt 1 view .LVU2148 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6207 .loc 1 2916 11 is_stmt 0 view .LVU2149 6208 0102 636C ldr r3, [r4, #68] 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6209 .loc 1 2916 23 view .LVU2150 6210 0104 43F08003 orr r3, r3, #128 6211 0108 6364 str r3, [r4, #68] 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6212 .loc 1 2919 7 is_stmt 1 view .LVU2151 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6213 .loc 1 2919 7 view .LVU2152 6214 010a 84F84020 strb r2, [r4, #64] 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6215 .loc 1 2919 7 view .LVU2153 2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6216 .loc 1 2921 7 view .LVU2154 2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6217 .loc 1 2921 14 is_stmt 0 view .LVU2155 6218 010e 0126 movs r6, #1 6219 0110 1BE0 b .L384 6220 .LVL399: 6221 .L399: 2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6222 .loc 1 2928 7 is_stmt 1 view .LVU2156 6223 0112 0027 movs r7, #0 6224 0114 0097 str r7, [sp] 6225 0116 4346 mov r3, r8 6226 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 6227 011c 2946 mov r1, r5 6228 011e 2046 mov r0, r4 6229 .LVL400: 2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6230 .loc 1 2928 7 is_stmt 0 view .LVU2157 ARM GAS /tmp/ccbUHtu7.s page 266 6231 0120 FFF7FEFF bl I2C_TransferConfig 6232 .LVL401: 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6233 .loc 1 2931 7 is_stmt 1 view .LVU2158 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6234 .loc 1 2931 11 is_stmt 0 view .LVU2159 6235 0124 638D ldrh r3, [r4, #42] 6236 0126 9BB2 uxth r3, r3 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6237 .loc 1 2931 30 view .LVU2160 6238 0128 228D ldrh r2, [r4, #40] 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6239 .loc 1 2931 23 view .LVU2161 6240 012a 9B1A subs r3, r3, r2 6241 012c 9BB2 uxth r3, r3 6242 012e 6385 strh r3, [r4, #42] @ movhi 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6243 .loc 1 2934 7 is_stmt 1 view .LVU2162 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6244 .loc 1 2934 7 view .LVU2163 6245 0130 84F84070 strb r7, [r4, #64] 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6246 .loc 1 2934 7 view .LVU2164 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6247 .loc 1 2940 7 view .LVU2165 6248 0134 1021 movs r1, #16 6249 0136 2046 mov r0, r4 6250 0138 FFF7FEFF bl I2C_Enable_IRQ 6251 .LVL402: 2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6252 .loc 1 2943 7 view .LVU2166 2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6253 .loc 1 2943 11 is_stmt 0 view .LVU2167 6254 013c 2268 ldr r2, [r4] 2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6255 .loc 1 2943 21 view .LVU2168 6256 013e 1368 ldr r3, [r2] 2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6257 .loc 1 2943 27 view .LVU2169 6258 0140 43F48043 orr r3, r3, #16384 6259 0144 1360 str r3, [r2] 2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6260 .loc 1 2960 5 is_stmt 1 view .LVU2170 2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6261 .loc 1 2960 12 is_stmt 0 view .LVU2171 6262 0146 00E0 b .L384 6263 .LVL403: 6264 .L393: 2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6265 .loc 1 2964 12 view .LVU2172 6266 0148 0226 movs r6, #2 6267 .LVL404: 6268 .L384: 2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6269 .loc 1 2966 1 view .LVU2173 6270 014a 3046 mov r0, r6 6271 014c 02B0 add sp, sp, #8 ARM GAS /tmp/ccbUHtu7.s page 267 6272 .LCFI73: 6273 .cfi_remember_state 6274 .cfi_def_cfa_offset 24 6275 @ sp needed 6276 014e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 6277 .LVL405: 6278 .L394: 6279 .LCFI74: 6280 .cfi_restore_state 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6281 .loc 1 2853 14 view .LVU2174 6282 0152 0226 movs r6, #2 6283 0154 F9E7 b .L384 6284 .L395: 2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6285 .loc 1 2857 5 view .LVU2175 6286 0156 0226 movs r6, #2 6287 0158 F7E7 b .L384 6288 .L401: 6289 015a 00BF .align 2 6290 .L400: 6291 015c 0000FFFF .word -65536 6292 0160 00000000 .word I2C_Master_ISR_DMA 6293 0164 00000000 .word I2C_DMAMasterTransmitCplt 6294 0168 00000000 .word I2C_DMAError 6295 .cfi_endproc 6296 .LFE349: 6298 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6299 .align 1 6300 .global HAL_I2C_Mem_Read_DMA 6301 .syntax unified 6302 .thumb 6303 .thumb_func 6305 HAL_I2C_Mem_Read_DMA: 6306 .LVL406: 6307 .LFB350: 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 6308 .loc 1 2982 1 is_stmt 1 view -0 6309 .cfi_startproc 6310 @ args = 8, pretend = 0, frame = 0 6311 @ frame_needed = 0, uses_anonymous_args = 0 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 6312 .loc 1 2982 1 is_stmt 0 view .LVU2177 6313 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 6314 .LCFI75: 6315 .cfi_def_cfa_offset 24 6316 .cfi_offset 4, -24 6317 .cfi_offset 5, -20 6318 .cfi_offset 6, -16 6319 .cfi_offset 7, -12 6320 .cfi_offset 8, -8 6321 .cfi_offset 14, -4 6322 0004 82B0 sub sp, sp, #8 6323 .LCFI76: 6324 .cfi_def_cfa_offset 32 6325 0006 0446 mov r4, r0 6326 0008 BDF82480 ldrh r8, [sp, #36] ARM GAS /tmp/ccbUHtu7.s page 268 2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 6327 .loc 1 2983 3 is_stmt 1 view .LVU2178 2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6328 .loc 1 2984 3 view .LVU2179 2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6329 .loc 1 2985 3 view .LVU2180 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6330 .loc 1 2988 3 view .LVU2181 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6331 .loc 1 2990 3 view .LVU2182 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6332 .loc 1 2990 11 is_stmt 0 view .LVU2183 6333 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6334 .LVL407: 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6335 .loc 1 2990 11 view .LVU2184 6336 0010 C0B2 uxtb r0, r0 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6337 .loc 1 2990 6 view .LVU2185 6338 0012 2028 cmp r0, #32 6339 0014 40F09980 bne .L412 6340 0018 0D46 mov r5, r1 6341 001a 1746 mov r7, r2 6342 001c 1E46 mov r6, r3 2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6343 .loc 1 2992 5 is_stmt 1 view .LVU2186 2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6344 .loc 1 2992 8 is_stmt 0 view .LVU2187 6345 001e 089B ldr r3, [sp, #32] 6346 .LVL408: 2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6347 .loc 1 2992 8 view .LVU2188 6348 0020 002B cmp r3, #0 6349 0022 59D0 beq .L404 2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6350 .loc 1 2992 25 discriminator 1 view .LVU2189 6351 0024 B8F1000F cmp r8, #0 6352 0028 56D0 beq .L404 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6353 .loc 1 2998 5 is_stmt 1 view .LVU2190 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6354 .loc 1 2998 9 is_stmt 0 view .LVU2191 6355 002a 2368 ldr r3, [r4] 6356 002c 9B69 ldr r3, [r3, #24] 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6357 .loc 1 2998 8 view .LVU2192 6358 002e 13F4004F tst r3, #32768 6359 0032 40F08F80 bne .L413 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6360 .loc 1 3004 5 is_stmt 1 view .LVU2193 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6361 .loc 1 3004 5 view .LVU2194 6362 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 6363 003a 012B cmp r3, #1 6364 003c 00F08C80 beq .L414 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6365 .loc 1 3004 5 discriminator 2 view .LVU2195 ARM GAS /tmp/ccbUHtu7.s page 269 6366 0040 0123 movs r3, #1 6367 0042 84F84030 strb r3, [r4, #64] 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6368 .loc 1 3004 5 discriminator 2 view .LVU2196 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6369 .loc 1 3007 5 discriminator 2 view .LVU2197 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6370 .loc 1 3007 17 is_stmt 0 discriminator 2 view .LVU2198 6371 0046 FFF7FEFF bl HAL_GetTick 6372 .LVL409: 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6373 .loc 1 3009 5 is_stmt 1 discriminator 2 view .LVU2199 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6374 .loc 1 3009 23 is_stmt 0 discriminator 2 view .LVU2200 6375 004a 2223 movs r3, #34 6376 004c 84F84130 strb r3, [r4, #65] 3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6377 .loc 1 3010 5 is_stmt 1 discriminator 2 view .LVU2201 3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6378 .loc 1 3010 23 is_stmt 0 discriminator 2 view .LVU2202 6379 0050 4023 movs r3, #64 6380 0052 84F84230 strb r3, [r4, #66] 3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6381 .loc 1 3011 5 is_stmt 1 discriminator 2 view .LVU2203 3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6382 .loc 1 3011 23 is_stmt 0 discriminator 2 view .LVU2204 6383 0056 0023 movs r3, #0 6384 0058 6364 str r3, [r4, #68] 3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6385 .loc 1 3014 5 is_stmt 1 discriminator 2 view .LVU2205 3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6386 .loc 1 3014 23 is_stmt 0 discriminator 2 view .LVU2206 6387 005a 089B ldr r3, [sp, #32] 6388 005c 6362 str r3, [r4, #36] 3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6389 .loc 1 3015 5 is_stmt 1 discriminator 2 view .LVU2207 3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6390 .loc 1 3015 23 is_stmt 0 discriminator 2 view .LVU2208 6391 005e A4F82A80 strh r8, [r4, #42] @ movhi 3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6392 .loc 1 3016 5 is_stmt 1 discriminator 2 view .LVU2209 3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6393 .loc 1 3016 23 is_stmt 0 discriminator 2 view .LVU2210 6394 0062 3E4B ldr r3, .L419 6395 0064 E362 str r3, [r4, #44] 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6396 .loc 1 3017 5 is_stmt 1 discriminator 2 view .LVU2211 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6397 .loc 1 3017 23 is_stmt 0 discriminator 2 view .LVU2212 6398 0066 3E4B ldr r3, .L419+4 6399 0068 6363 str r3, [r4, #52] 3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6400 .loc 1 3019 5 is_stmt 1 discriminator 2 view .LVU2213 3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6401 .loc 1 3019 13 is_stmt 0 discriminator 2 view .LVU2214 6402 006a 638D ldrh r3, [r4, #42] 6403 006c 9BB2 uxth r3, r3 ARM GAS /tmp/ccbUHtu7.s page 270 3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6404 .loc 1 3019 8 discriminator 2 view .LVU2215 6405 006e FF2B cmp r3, #255 6406 0070 37D9 bls .L406 3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6407 .loc 1 3021 7 is_stmt 1 view .LVU2216 3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6408 .loc 1 3021 22 is_stmt 0 view .LVU2217 6409 0072 FF23 movs r3, #255 6410 0074 2385 strh r3, [r4, #40] @ movhi 3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6411 .loc 1 3022 7 is_stmt 1 view .LVU2218 6412 .LVL410: 3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6413 .loc 1 3022 16 is_stmt 0 view .LVU2219 6414 0076 4FF08078 mov r8, #16777216 6415 .LVL411: 6416 .L407: 3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6417 .loc 1 3031 5 is_stmt 1 view .LVU2220 3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6418 .loc 1 3031 9 is_stmt 0 view .LVU2221 6419 007a 0190 str r0, [sp, #4] 6420 007c 1923 movs r3, #25 6421 007e 0093 str r3, [sp] 6422 0080 3346 mov r3, r6 6423 0082 3A46 mov r2, r7 6424 0084 2946 mov r1, r5 6425 0086 2046 mov r0, r4 6426 .LVL412: 3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6427 .loc 1 3031 9 view .LVU2222 6428 0088 FFF7FEFF bl I2C_RequestMemoryRead 6429 .LVL413: 3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6430 .loc 1 3031 8 view .LVU2223 6431 008c 0028 cmp r0, #0 6432 008e 2DD1 bne .L417 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6433 .loc 1 3038 5 is_stmt 1 view .LVU2224 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6434 .loc 1 3038 13 is_stmt 0 view .LVU2225 6435 0090 E36B ldr r3, [r4, #60] 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6436 .loc 1 3038 8 view .LVU2226 6437 0092 002B cmp r3, #0 6438 0094 2FD0 beq .L409 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6439 .loc 1 3041 7 is_stmt 1 view .LVU2227 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6440 .loc 1 3041 38 is_stmt 0 view .LVU2228 6441 0096 334A ldr r2, .L419+8 6442 0098 DA62 str r2, [r3, #44] 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6443 .loc 1 3044 7 is_stmt 1 view .LVU2229 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6444 .loc 1 3044 11 is_stmt 0 view .LVU2230 ARM GAS /tmp/ccbUHtu7.s page 271 6445 009a E36B ldr r3, [r4, #60] 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6446 .loc 1 3044 39 view .LVU2231 6447 009c 324A ldr r2, .L419+12 6448 009e 5A63 str r2, [r3, #52] 3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6449 .loc 1 3047 7 is_stmt 1 view .LVU2232 3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6450 .loc 1 3047 11 is_stmt 0 view .LVU2233 6451 00a0 E26B ldr r2, [r4, #60] 3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6452 .loc 1 3047 42 view .LVU2234 6453 00a2 0023 movs r3, #0 6454 00a4 1363 str r3, [r2, #48] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6455 .loc 1 3048 7 is_stmt 1 view .LVU2235 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6456 .loc 1 3048 11 is_stmt 0 view .LVU2236 6457 00a6 E26B ldr r2, [r4, #60] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6458 .loc 1 3048 39 view .LVU2237 6459 00a8 9363 str r3, [r2, #56] 3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6460 .loc 1 3051 7 is_stmt 1 view .LVU2238 3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6461 .loc 1 3051 69 is_stmt 0 view .LVU2239 6462 00aa 2168 ldr r1, [r4] 3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6463 .loc 1 3051 23 view .LVU2240 6464 00ac 238D ldrh r3, [r4, #40] 6465 00ae 089A ldr r2, [sp, #32] 6466 00b0 2431 adds r1, r1, #36 6467 00b2 E06B ldr r0, [r4, #60] 6468 00b4 FFF7FEFF bl HAL_DMA_Start_IT 6469 .LVL414: 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6470 .loc 1 3069 5 is_stmt 1 view .LVU2241 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6471 .loc 1 3069 8 is_stmt 0 view .LVU2242 6472 00b8 0646 mov r6, r0 6473 00ba 50B3 cbz r0, .L418 3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6474 .loc 1 3092 7 is_stmt 1 view .LVU2243 3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6475 .loc 1 3092 23 is_stmt 0 view .LVU2244 6476 00bc 2023 movs r3, #32 6477 00be 84F84130 strb r3, [r4, #65] 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6478 .loc 1 3093 7 is_stmt 1 view .LVU2245 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6479 .loc 1 3093 23 is_stmt 0 view .LVU2246 6480 00c2 0022 movs r2, #0 6481 00c4 84F84220 strb r2, [r4, #66] 3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6482 .loc 1 3096 7 is_stmt 1 view .LVU2247 3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6483 .loc 1 3096 11 is_stmt 0 view .LVU2248 ARM GAS /tmp/ccbUHtu7.s page 272 6484 00c8 636C ldr r3, [r4, #68] 3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6485 .loc 1 3096 23 view .LVU2249 6486 00ca 43F01003 orr r3, r3, #16 6487 00ce 6364 str r3, [r4, #68] 3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6488 .loc 1 3099 7 is_stmt 1 view .LVU2250 3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6489 .loc 1 3099 7 view .LVU2251 6490 00d0 84F84020 strb r2, [r4, #64] 3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6491 .loc 1 3099 7 view .LVU2252 3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6492 .loc 1 3101 7 view .LVU2253 3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6493 .loc 1 3101 14 is_stmt 0 view .LVU2254 6494 00d4 0126 movs r6, #1 6495 00d6 39E0 b .L403 6496 .LVL415: 6497 .L404: 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6498 .loc 1 2994 7 is_stmt 1 view .LVU2255 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6499 .loc 1 2994 23 is_stmt 0 view .LVU2256 6500 00d8 4FF40073 mov r3, #512 6501 00dc 6364 str r3, [r4, #68] 2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6502 .loc 1 2995 7 is_stmt 1 view .LVU2257 2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6503 .loc 1 2995 15 is_stmt 0 view .LVU2258 6504 00de 0126 movs r6, #1 6505 00e0 34E0 b .L403 6506 .LVL416: 6507 .L406: 3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6508 .loc 1 3026 7 is_stmt 1 view .LVU2259 3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6509 .loc 1 3026 28 is_stmt 0 view .LVU2260 6510 00e2 638D ldrh r3, [r4, #42] 3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6511 .loc 1 3026 22 view .LVU2261 6512 00e4 2385 strh r3, [r4, #40] @ movhi 3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6513 .loc 1 3027 7 is_stmt 1 view .LVU2262 6514 .LVL417: 3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6515 .loc 1 3027 16 is_stmt 0 view .LVU2263 6516 00e6 4FF00078 mov r8, #33554432 6517 00ea C6E7 b .L407 6518 .LVL418: 6519 .L417: 3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6520 .loc 1 3034 7 is_stmt 1 view .LVU2264 3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6521 .loc 1 3034 7 view .LVU2265 6522 00ec 0023 movs r3, #0 6523 00ee 84F84030 strb r3, [r4, #64] ARM GAS /tmp/ccbUHtu7.s page 273 3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6524 .loc 1 3034 7 view .LVU2266 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6525 .loc 1 3035 7 view .LVU2267 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6526 .loc 1 3035 14 is_stmt 0 view .LVU2268 6527 00f2 0126 movs r6, #1 6528 00f4 2AE0 b .L403 6529 .L409: 3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6530 .loc 1 3057 7 is_stmt 1 view .LVU2269 3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6531 .loc 1 3057 23 is_stmt 0 view .LVU2270 6532 00f6 2023 movs r3, #32 6533 00f8 84F84130 strb r3, [r4, #65] 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6534 .loc 1 3058 7 is_stmt 1 view .LVU2271 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6535 .loc 1 3058 23 is_stmt 0 view .LVU2272 6536 00fc 0022 movs r2, #0 6537 00fe 84F84220 strb r2, [r4, #66] 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6538 .loc 1 3061 7 is_stmt 1 view .LVU2273 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6539 .loc 1 3061 11 is_stmt 0 view .LVU2274 6540 0102 636C ldr r3, [r4, #68] 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6541 .loc 1 3061 23 view .LVU2275 6542 0104 43F08003 orr r3, r3, #128 6543 0108 6364 str r3, [r4, #68] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6544 .loc 1 3064 7 is_stmt 1 view .LVU2276 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6545 .loc 1 3064 7 view .LVU2277 6546 010a 84F84020 strb r2, [r4, #64] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6547 .loc 1 3064 7 view .LVU2278 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6548 .loc 1 3066 7 view .LVU2279 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6549 .loc 1 3066 14 is_stmt 0 view .LVU2280 6550 010e 0126 movs r6, #1 6551 0110 1CE0 b .L403 6552 .LVL419: 6553 .L418: 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6554 .loc 1 3072 7 is_stmt 1 view .LVU2281 6555 0112 164B ldr r3, .L419+16 6556 0114 0093 str r3, [sp] 6557 0116 4346 mov r3, r8 6558 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 6559 011c 2946 mov r1, r5 6560 011e 2046 mov r0, r4 6561 .LVL420: 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6562 .loc 1 3072 7 is_stmt 0 view .LVU2282 6563 0120 FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/ccbUHtu7.s page 274 6564 .LVL421: 3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6565 .loc 1 3075 7 is_stmt 1 view .LVU2283 3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6566 .loc 1 3075 11 is_stmt 0 view .LVU2284 6567 0124 638D ldrh r3, [r4, #42] 6568 0126 9BB2 uxth r3, r3 3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6569 .loc 1 3075 30 view .LVU2285 6570 0128 228D ldrh r2, [r4, #40] 3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6571 .loc 1 3075 23 view .LVU2286 6572 012a 9B1A subs r3, r3, r2 6573 012c 9BB2 uxth r3, r3 6574 012e 6385 strh r3, [r4, #42] @ movhi 3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6575 .loc 1 3078 7 is_stmt 1 view .LVU2287 3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6576 .loc 1 3078 7 view .LVU2288 6577 0130 0023 movs r3, #0 6578 0132 84F84030 strb r3, [r4, #64] 3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6579 .loc 1 3078 7 view .LVU2289 3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6580 .loc 1 3084 7 view .LVU2290 6581 0136 1021 movs r1, #16 6582 0138 2046 mov r0, r4 6583 013a FFF7FEFF bl I2C_Enable_IRQ 6584 .LVL422: 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6585 .loc 1 3087 7 view .LVU2291 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6586 .loc 1 3087 11 is_stmt 0 view .LVU2292 6587 013e 2268 ldr r2, [r4] 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6588 .loc 1 3087 21 view .LVU2293 6589 0140 1368 ldr r3, [r2] 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6590 .loc 1 3087 27 view .LVU2294 6591 0142 43F40043 orr r3, r3, #32768 6592 0146 1360 str r3, [r2] 3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6593 .loc 1 3104 5 is_stmt 1 view .LVU2295 3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6594 .loc 1 3104 12 is_stmt 0 view .LVU2296 6595 0148 00E0 b .L403 6596 .LVL423: 6597 .L412: 3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6598 .loc 1 3108 12 view .LVU2297 6599 014a 0226 movs r6, #2 6600 .LVL424: 6601 .L403: 3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6602 .loc 1 3110 1 view .LVU2298 6603 014c 3046 mov r0, r6 6604 014e 02B0 add sp, sp, #8 ARM GAS /tmp/ccbUHtu7.s page 275 6605 .LCFI77: 6606 .cfi_remember_state 6607 .cfi_def_cfa_offset 24 6608 @ sp needed 6609 0150 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 6610 .LVL425: 6611 .L413: 6612 .LCFI78: 6613 .cfi_restore_state 3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6614 .loc 1 3000 14 view .LVU2299 6615 0154 0226 movs r6, #2 6616 0156 F9E7 b .L403 6617 .L414: 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6618 .loc 1 3004 5 view .LVU2300 6619 0158 0226 movs r6, #2 6620 015a F7E7 b .L403 6621 .L420: 6622 .align 2 6623 .L419: 6624 015c 0000FFFF .word -65536 6625 0160 00000000 .word I2C_Master_ISR_DMA 6626 0164 00000000 .word I2C_DMAMasterReceiveCplt 6627 0168 00000000 .word I2C_DMAError 6628 016c 00240080 .word -2147474432 6629 .cfi_endproc 6630 .LFE350: 6632 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6633 .align 1 6634 .global HAL_I2C_IsDeviceReady 6635 .syntax unified 6636 .thumb 6637 .thumb_func 6639 HAL_I2C_IsDeviceReady: 6640 .LVL426: 6641 .LFB351: 3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 6642 .loc 1 3125 1 is_stmt 1 view -0 6643 .cfi_startproc 6644 @ args = 0, pretend = 0, frame = 8 6645 @ frame_needed = 0, uses_anonymous_args = 0 3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 6646 .loc 1 3125 1 is_stmt 0 view .LVU2302 6647 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6648 .LCFI79: 6649 .cfi_def_cfa_offset 28 6650 .cfi_offset 4, -28 6651 .cfi_offset 5, -24 6652 .cfi_offset 6, -20 6653 .cfi_offset 7, -16 6654 .cfi_offset 8, -12 6655 .cfi_offset 9, -8 6656 .cfi_offset 14, -4 6657 0004 85B0 sub sp, sp, #20 6658 .LCFI80: 6659 .cfi_def_cfa_offset 48 ARM GAS /tmp/ccbUHtu7.s page 276 6660 0006 1D46 mov r5, r3 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6661 .loc 1 3126 3 is_stmt 1 view .LVU2303 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6662 .loc 1 3128 3 view .LVU2304 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6663 .loc 1 3128 17 is_stmt 0 view .LVU2305 6664 0008 0023 movs r3, #0 6665 .LVL427: 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6666 .loc 1 3128 17 view .LVU2306 6667 000a 0393 str r3, [sp, #12] 3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp2; 6668 .loc 1 3130 3 is_stmt 1 view .LVU2307 3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6669 .loc 1 3131 3 view .LVU2308 3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6670 .loc 1 3133 3 view .LVU2309 3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6671 .loc 1 3133 11 is_stmt 0 view .LVU2310 6672 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6673 0010 DBB2 uxtb r3, r3 3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6674 .loc 1 3133 6 view .LVU2311 6675 0012 202B cmp r3, #32 6676 0014 40F09E80 bne .L433 6677 0018 0646 mov r6, r0 6678 001a 8946 mov r9, r1 6679 001c 9046 mov r8, r2 3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6680 .loc 1 3135 5 is_stmt 1 view .LVU2312 3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6681 .loc 1 3135 9 is_stmt 0 view .LVU2313 6682 001e 0368 ldr r3, [r0] 6683 0020 9B69 ldr r3, [r3, #24] 3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6684 .loc 1 3135 8 view .LVU2314 6685 0022 13F4004F tst r3, #32768 6686 0026 40F09780 bne .L434 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6687 .loc 1 3141 5 is_stmt 1 view .LVU2315 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6688 .loc 1 3141 5 view .LVU2316 6689 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6690 002e 012B cmp r3, #1 6691 0030 00F09480 beq .L435 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6692 .loc 1 3141 5 discriminator 2 view .LVU2317 6693 0034 0123 movs r3, #1 6694 0036 80F84030 strb r3, [r0, #64] 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6695 .loc 1 3141 5 discriminator 2 view .LVU2318 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6696 .loc 1 3143 5 discriminator 2 view .LVU2319 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6697 .loc 1 3143 17 is_stmt 0 discriminator 2 view .LVU2320 6698 003a 2423 movs r3, #36 ARM GAS /tmp/ccbUHtu7.s page 277 6699 003c 80F84130 strb r3, [r0, #65] 3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6700 .loc 1 3144 5 is_stmt 1 discriminator 2 view .LVU2321 3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6701 .loc 1 3144 21 is_stmt 0 discriminator 2 view .LVU2322 6702 0040 0023 movs r3, #0 6703 0042 4364 str r3, [r0, #68] 6704 0044 44E0 b .L432 6705 .LVL428: 6706 .L443: 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6707 .loc 1 3149 29 discriminator 1 view .LVU2323 6708 0046 C9F30903 ubfx r3, r9, #0, #10 6709 004a 43F00073 orr r3, r3, #33554432 6710 004e 43F40053 orr r3, r3, #8192 6711 0052 44E0 b .L424 6712 .LVL429: 6713 .L426: 3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6714 .loc 1 3177 9 is_stmt 1 view .LVU2324 3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6715 .loc 1 3177 16 is_stmt 0 view .LVU2325 6716 0054 3368 ldr r3, [r6] 6717 0056 9C69 ldr r4, [r3, #24] 6718 .LVL430: 3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6719 .loc 1 3177 16 view .LVU2326 6720 0058 C4F34014 ubfx r4, r4, #5, #1 6721 .LVL431: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6722 .loc 1 3178 9 is_stmt 1 view .LVU2327 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6723 .loc 1 3178 16 is_stmt 0 view .LVU2328 6724 005c 9B69 ldr r3, [r3, #24] 6725 005e C3F30013 ubfx r3, r3, #4, #1 6726 .LVL432: 6727 .L425: 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6728 .loc 1 3158 30 is_stmt 1 view .LVU2329 6729 0062 C4B9 cbnz r4, .L428 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6730 .loc 1 3158 30 is_stmt 0 discriminator 1 view .LVU2330 6731 0064 BBB9 cbnz r3, .L428 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6732 .loc 1 3160 9 is_stmt 1 view .LVU2331 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6733 .loc 1 3160 12 is_stmt 0 view .LVU2332 6734 0066 B5F1FF3F cmp r5, #-1 6735 006a F3D0 beq .L426 3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6736 .loc 1 3162 11 is_stmt 1 view .LVU2333 3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6737 .loc 1 3162 17 is_stmt 0 view .LVU2334 6738 006c FFF7FEFF bl HAL_GetTick 6739 .LVL433: 3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6740 .loc 1 3162 31 view .LVU2335 ARM GAS /tmp/ccbUHtu7.s page 278 6741 0070 C01B subs r0, r0, r7 3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6742 .loc 1 3162 14 view .LVU2336 6743 0072 A842 cmp r0, r5 6744 0074 01D8 bhi .L427 3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6745 .loc 1 3162 55 discriminator 1 view .LVU2337 6746 0076 002D cmp r5, #0 6747 0078 ECD1 bne .L426 6748 .L427: 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6749 .loc 1 3165 13 is_stmt 1 view .LVU2338 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6750 .loc 1 3165 25 is_stmt 0 view .LVU2339 6751 007a 2023 movs r3, #32 6752 007c 86F84130 strb r3, [r6, #65] 3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6753 .loc 1 3168 13 is_stmt 1 view .LVU2340 3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6754 .loc 1 3168 17 is_stmt 0 view .LVU2341 6755 0080 736C ldr r3, [r6, #68] 3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6756 .loc 1 3168 29 view .LVU2342 6757 0082 43F02003 orr r3, r3, #32 6758 0086 7364 str r3, [r6, #68] 3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6759 .loc 1 3171 13 is_stmt 1 view .LVU2343 3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6760 .loc 1 3171 13 view .LVU2344 6761 0088 0023 movs r3, #0 6762 008a 86F84030 strb r3, [r6, #64] 3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6763 .loc 1 3171 13 view .LVU2345 3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6764 .loc 1 3173 13 view .LVU2346 3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6765 .loc 1 3173 20 is_stmt 0 view .LVU2347 6766 008e 0120 movs r0, #1 6767 .LVL434: 6768 .L422: 3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6769 .loc 1 3251 1 view .LVU2348 6770 0090 05B0 add sp, sp, #20 6771 .LCFI81: 6772 .cfi_remember_state 6773 .cfi_def_cfa_offset 28 6774 @ sp needed 6775 0092 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 6776 .LVL435: 6777 .L428: 6778 .LCFI82: 6779 .cfi_restore_state 3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6780 .loc 1 3182 7 is_stmt 1 view .LVU2349 3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6781 .loc 1 3182 11 is_stmt 0 view .LVU2350 6782 0096 3368 ldr r3, [r6] ARM GAS /tmp/ccbUHtu7.s page 279 6783 .LVL436: 3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6784 .loc 1 3182 11 view .LVU2351 6785 0098 9B69 ldr r3, [r3, #24] 3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6786 .loc 1 3182 10 view .LVU2352 6787 009a 13F0100F tst r3, #16 6788 009e 2BD0 beq .L440 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6789 .loc 1 3204 9 is_stmt 1 view .LVU2353 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6790 .loc 1 3204 13 is_stmt 0 view .LVU2354 6791 00a0 0097 str r7, [sp] 6792 00a2 2B46 mov r3, r5 6793 00a4 0022 movs r2, #0 6794 00a6 2021 movs r1, #32 6795 00a8 3046 mov r0, r6 6796 00aa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6797 .LVL437: 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6798 .loc 1 3204 12 view .LVU2355 6799 00ae 0028 cmp r0, #0 6800 00b0 58D1 bne .L437 3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6801 .loc 1 3210 9 is_stmt 1 view .LVU2356 6802 00b2 3368 ldr r3, [r6] 6803 00b4 1022 movs r2, #16 6804 00b6 DA61 str r2, [r3, #28] 3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6805 .loc 1 3213 9 view .LVU2357 6806 00b8 3368 ldr r3, [r6] 6807 00ba 2022 movs r2, #32 6808 00bc DA61 str r2, [r3, #28] 3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6809 .loc 1 3217 7 view .LVU2358 3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6810 .loc 1 3217 22 is_stmt 0 view .LVU2359 6811 00be 039B ldr r3, [sp, #12] 3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6812 .loc 1 3217 10 view .LVU2360 6813 00c0 4345 cmp r3, r8 6814 00c2 2AD0 beq .L441 6815 .L431: 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); 6816 .loc 1 3233 7 is_stmt 1 view .LVU2361 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); 6817 .loc 1 3233 17 is_stmt 0 view .LVU2362 6818 00c4 039B ldr r3, [sp, #12] 6819 00c6 0133 adds r3, r3, #1 6820 00c8 0393 str r3, [sp, #12] 3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6821 .loc 1 3234 25 is_stmt 1 view .LVU2363 6822 00ca 039B ldr r3, [sp, #12] 6823 00cc 4345 cmp r3, r8 6824 00ce 35D2 bcs .L442 6825 .LVL438: 6826 .L432: ARM GAS /tmp/ccbUHtu7.s page 280 3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6827 .loc 1 3146 5 view .LVU2364 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6828 .loc 1 3149 7 view .LVU2365 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6829 .loc 1 3149 29 is_stmt 0 view .LVU2366 6830 00d0 F368 ldr r3, [r6, #12] 6831 00d2 012B cmp r3, #1 6832 00d4 B7D0 beq .L443 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6833 .loc 1 3149 29 discriminator 2 view .LVU2367 6834 00d6 C9F30903 ubfx r3, r9, #0, #10 6835 00da 43F42053 orr r3, r3, #10240 6836 .L424: 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6837 .loc 1 3149 11 discriminator 4 view .LVU2368 6838 00de 3268 ldr r2, [r6] 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6839 .loc 1 3149 27 discriminator 4 view .LVU2369 6840 00e0 5360 str r3, [r2, #4] 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6841 .loc 1 3153 7 is_stmt 1 discriminator 4 view .LVU2370 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6842 .loc 1 3153 19 is_stmt 0 discriminator 4 view .LVU2371 6843 00e2 FFF7FEFF bl HAL_GetTick 6844 .LVL439: 6845 00e6 0746 mov r7, r0 6846 .LVL440: 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6847 .loc 1 3155 7 is_stmt 1 discriminator 4 view .LVU2372 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6848 .loc 1 3155 14 is_stmt 0 discriminator 4 view .LVU2373 6849 00e8 3368 ldr r3, [r6] 6850 00ea 9C69 ldr r4, [r3, #24] 6851 00ec C4F34014 ubfx r4, r4, #5, #1 6852 .LVL441: 3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6853 .loc 1 3156 7 is_stmt 1 discriminator 4 view .LVU2374 3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6854 .loc 1 3156 14 is_stmt 0 discriminator 4 view .LVU2375 6855 00f0 9B69 ldr r3, [r3, #24] 6856 00f2 C3F30013 ubfx r3, r3, #4, #1 6857 .LVL442: 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6858 .loc 1 3158 7 is_stmt 1 discriminator 4 view .LVU2376 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6859 .loc 1 3158 13 is_stmt 0 discriminator 4 view .LVU2377 6860 00f6 B4E7 b .L425 6861 .LVL443: 6862 .L440: 3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6863 .loc 1 3185 9 is_stmt 1 view .LVU2378 3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6864 .loc 1 3185 13 is_stmt 0 view .LVU2379 6865 00f8 0097 str r7, [sp] 6866 00fa 2B46 mov r3, r5 6867 00fc 0022 movs r2, #0 ARM GAS /tmp/ccbUHtu7.s page 281 6868 00fe 2021 movs r1, #32 6869 0100 3046 mov r0, r6 6870 0102 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6871 .LVL444: 3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6872 .loc 1 3185 12 view .LVU2380 6873 0106 58BB cbnz r0, .L436 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6874 .loc 1 3191 9 is_stmt 1 view .LVU2381 6875 0108 3268 ldr r2, [r6] 6876 010a 2023 movs r3, #32 6877 010c D361 str r3, [r2, #28] 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6878 .loc 1 3194 9 view .LVU2382 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6879 .loc 1 3194 21 is_stmt 0 view .LVU2383 6880 010e 86F84130 strb r3, [r6, #65] 3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6881 .loc 1 3197 9 is_stmt 1 view .LVU2384 3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6882 .loc 1 3197 9 view .LVU2385 6883 0112 0023 movs r3, #0 6884 0114 86F84030 strb r3, [r6, #64] 3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6885 .loc 1 3197 9 view .LVU2386 3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6886 .loc 1 3199 9 view .LVU2387 3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6887 .loc 1 3199 16 is_stmt 0 view .LVU2388 6888 0118 BAE7 b .L422 6889 .L441: 3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6890 .loc 1 3220 9 is_stmt 1 view .LVU2389 3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6891 .loc 1 3220 13 is_stmt 0 view .LVU2390 6892 011a 3268 ldr r2, [r6] 3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6893 .loc 1 3220 23 view .LVU2391 6894 011c 5368 ldr r3, [r2, #4] 3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6895 .loc 1 3220 29 view .LVU2392 6896 011e 43F48043 orr r3, r3, #16384 6897 0122 5360 str r3, [r2, #4] 3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6898 .loc 1 3223 9 is_stmt 1 view .LVU2393 3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6899 .loc 1 3223 13 is_stmt 0 view .LVU2394 6900 0124 0097 str r7, [sp] 6901 0126 2B46 mov r3, r5 6902 0128 0022 movs r2, #0 6903 012a 2021 movs r1, #32 6904 012c 3046 mov r0, r6 6905 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6906 .LVL445: 3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6907 .loc 1 3223 12 view .LVU2395 6908 0132 C8B9 cbnz r0, .L438 ARM GAS /tmp/ccbUHtu7.s page 282 3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6909 .loc 1 3229 9 is_stmt 1 view .LVU2396 6910 0134 3368 ldr r3, [r6] 6911 0136 2022 movs r2, #32 6912 0138 DA61 str r2, [r3, #28] 6913 013a C3E7 b .L431 6914 .L442: 3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6915 .loc 1 3237 5 view .LVU2397 3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6916 .loc 1 3237 17 is_stmt 0 view .LVU2398 6917 013c 2023 movs r3, #32 6918 013e 86F84130 strb r3, [r6, #65] 3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6919 .loc 1 3240 5 is_stmt 1 view .LVU2399 3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6920 .loc 1 3240 9 is_stmt 0 view .LVU2400 6921 0142 736C ldr r3, [r6, #68] 3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6922 .loc 1 3240 21 view .LVU2401 6923 0144 43F02003 orr r3, r3, #32 6924 0148 7364 str r3, [r6, #68] 3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6925 .loc 1 3243 5 is_stmt 1 view .LVU2402 3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6926 .loc 1 3243 5 view .LVU2403 6927 014a 0023 movs r3, #0 6928 014c 86F84030 strb r3, [r6, #64] 3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6929 .loc 1 3243 5 view .LVU2404 3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6930 .loc 1 3245 5 view .LVU2405 3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6931 .loc 1 3245 12 is_stmt 0 view .LVU2406 6932 0150 0120 movs r0, #1 6933 0152 9DE7 b .L422 6934 .LVL446: 6935 .L433: 3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6936 .loc 1 3249 12 view .LVU2407 6937 0154 0220 movs r0, #2 6938 .LVL447: 3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6939 .loc 1 3249 12 view .LVU2408 6940 0156 9BE7 b .L422 6941 .LVL448: 6942 .L434: 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6943 .loc 1 3137 14 view .LVU2409 6944 0158 0220 movs r0, #2 6945 .LVL449: 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6946 .loc 1 3137 14 view .LVU2410 6947 015a 99E7 b .L422 6948 .LVL450: 6949 .L435: 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 283 6950 .loc 1 3141 5 view .LVU2411 6951 015c 0220 movs r0, #2 6952 .LVL451: 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6953 .loc 1 3141 5 view .LVU2412 6954 015e 97E7 b .L422 6955 .LVL452: 6956 .L436: 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6957 .loc 1 3187 18 view .LVU2413 6958 0160 0120 movs r0, #1 6959 0162 95E7 b .L422 6960 .L437: 3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6961 .loc 1 3206 18 view .LVU2414 6962 0164 0120 movs r0, #1 6963 0166 93E7 b .L422 6964 .L438: 3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6965 .loc 1 3225 18 view .LVU2415 6966 0168 0120 movs r0, #1 6967 016a 91E7 b .L422 6968 .cfi_endproc 6969 .LFE351: 6971 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 6972 .align 1 6973 .global HAL_I2C_Master_Seq_Transmit_IT 6974 .syntax unified 6975 .thumb 6976 .thumb_func 6978 HAL_I2C_Master_Seq_Transmit_IT: 6979 .LVL453: 6980 .LFB352: 3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 6981 .loc 1 3267 1 is_stmt 1 view -0 6982 .cfi_startproc 6983 @ args = 4, pretend = 0, frame = 0 6984 @ frame_needed = 0, uses_anonymous_args = 0 3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 6985 .loc 1 3267 1 is_stmt 0 view .LVU2417 6986 0000 70B5 push {r4, r5, r6, lr} 6987 .LCFI83: 6988 .cfi_def_cfa_offset 16 6989 .cfi_offset 4, -16 6990 .cfi_offset 5, -12 6991 .cfi_offset 6, -8 6992 .cfi_offset 14, -4 6993 0002 82B0 sub sp, sp, #8 6994 .LCFI84: 6995 .cfi_def_cfa_offset 24 6996 0004 0446 mov r4, r0 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 6997 .loc 1 3268 3 is_stmt 1 view .LVU2418 3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6998 .loc 1 3269 3 view .LVU2419 6999 .LVL454: 3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 284 7000 .loc 1 3272 3 view .LVU2420 3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7001 .loc 1 3274 3 view .LVU2421 3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7002 .loc 1 3274 11 is_stmt 0 view .LVU2422 7003 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7004 .LVL455: 3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7005 .loc 1 3274 11 view .LVU2423 7006 000a C0B2 uxtb r0, r0 3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7007 .loc 1 3274 6 view .LVU2424 7008 000c 2028 cmp r0, #32 7009 000e 49D1 bne .L450 7010 0010 0D46 mov r5, r1 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7011 .loc 1 3277 5 is_stmt 1 view .LVU2425 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7012 .loc 1 3277 5 view .LVU2426 7013 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7014 .LVL456: 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7015 .loc 1 3277 5 is_stmt 0 view .LVU2427 7016 0016 0129 cmp r1, #1 7017 0018 46D0 beq .L451 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7018 .loc 1 3277 5 is_stmt 1 discriminator 2 view .LVU2428 7019 001a 0121 movs r1, #1 7020 001c 84F84010 strb r1, [r4, #64] 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7021 .loc 1 3277 5 discriminator 2 view .LVU2429 3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7022 .loc 1 3279 5 discriminator 2 view .LVU2430 3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7023 .loc 1 3279 21 is_stmt 0 discriminator 2 view .LVU2431 7024 0020 2121 movs r1, #33 7025 0022 84F84110 strb r1, [r4, #65] 3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7026 .loc 1 3280 5 is_stmt 1 discriminator 2 view .LVU2432 3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7027 .loc 1 3280 21 is_stmt 0 discriminator 2 view .LVU2433 7028 0026 1021 movs r1, #16 7029 0028 84F84210 strb r1, [r4, #66] 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7030 .loc 1 3281 5 is_stmt 1 discriminator 2 view .LVU2434 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7031 .loc 1 3281 21 is_stmt 0 discriminator 2 view .LVU2435 7032 002c 0021 movs r1, #0 7033 002e 6164 str r1, [r4, #68] 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7034 .loc 1 3284 5 is_stmt 1 discriminator 2 view .LVU2436 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7035 .loc 1 3284 23 is_stmt 0 discriminator 2 view .LVU2437 7036 0030 6262 str r2, [r4, #36] 3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7037 .loc 1 3285 5 is_stmt 1 discriminator 2 view .LVU2438 3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; ARM GAS /tmp/ccbUHtu7.s page 285 7038 .loc 1 3285 23 is_stmt 0 discriminator 2 view .LVU2439 7039 0032 6385 strh r3, [r4, #42] @ movhi 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7040 .loc 1 3286 5 is_stmt 1 discriminator 2 view .LVU2440 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7041 .loc 1 3286 23 is_stmt 0 discriminator 2 view .LVU2441 7042 0034 069B ldr r3, [sp, #24] 7043 .LVL457: 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7044 .loc 1 3286 23 discriminator 2 view .LVU2442 7045 0036 E362 str r3, [r4, #44] 7046 .LVL458: 3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7047 .loc 1 3287 5 is_stmt 1 discriminator 2 view .LVU2443 3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7048 .loc 1 3287 23 is_stmt 0 discriminator 2 view .LVU2444 7049 0038 1C4B ldr r3, .L455 7050 003a 6363 str r3, [r4, #52] 3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7051 .loc 1 3290 5 is_stmt 1 discriminator 2 view .LVU2445 3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7052 .loc 1 3290 13 is_stmt 0 discriminator 2 view .LVU2446 7053 003c 638D ldrh r3, [r4, #42] 7054 003e 9BB2 uxth r3, r3 3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7055 .loc 1 3290 8 discriminator 2 view .LVU2447 7056 0040 FF2B cmp r3, #255 7057 0042 0ED9 bls .L446 3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7058 .loc 1 3292 7 is_stmt 1 view .LVU2448 3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7059 .loc 1 3292 22 is_stmt 0 view .LVU2449 7060 0044 FF23 movs r3, #255 7061 0046 2385 strh r3, [r4, #40] @ movhi 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7062 .loc 1 3293 7 is_stmt 1 view .LVU2450 7063 .LVL459: 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7064 .loc 1 3293 16 is_stmt 0 view .LVU2451 7065 0048 4FF08076 mov r6, #16777216 7066 .LVL460: 7067 .L447: 3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7068 .loc 1 3304 5 is_stmt 1 view .LVU2452 3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7069 .loc 1 3304 14 is_stmt 0 view .LVU2453 7070 004c 236B ldr r3, [r4, #48] 3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7071 .loc 1 3304 8 view .LVU2454 7072 004e 112B cmp r3, #17 7073 0050 0BD1 bne .L448 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7074 .loc 1 3305 10 view .LVU2455 7075 0052 069B ldr r3, [sp, #24] 7076 0054 AA2B cmp r3, #170 7077 0056 08D0 beq .L448 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 286 7078 .loc 1 3305 10 discriminator 2 view .LVU2456 7079 0058 B3F52A4F cmp r3, #43520 7080 005c 05D0 beq .L448 3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7081 .loc 1 3307 19 view .LVU2457 7082 005e 0023 movs r3, #0 7083 0060 0CE0 b .L449 7084 .LVL461: 7085 .L446: 3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7086 .loc 1 3297 7 is_stmt 1 view .LVU2458 3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7087 .loc 1 3297 28 is_stmt 0 view .LVU2459 7088 0062 638D ldrh r3, [r4, #42] 3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7089 .loc 1 3297 22 view .LVU2460 7090 0064 2385 strh r3, [r4, #40] @ movhi 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7091 .loc 1 3298 7 is_stmt 1 view .LVU2461 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7092 .loc 1 3298 16 is_stmt 0 view .LVU2462 7093 0066 E66A ldr r6, [r4, #44] 7094 .LVL462: 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7095 .loc 1 3298 16 view .LVU2463 7096 0068 F0E7 b .L447 7097 .L448: 3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7098 .loc 1 3312 7 is_stmt 1 view .LVU2464 7099 006a 2046 mov r0, r4 7100 006c FFF7FEFF bl I2C_ConvertOtherXferOptions 7101 .LVL463: 3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7102 .loc 1 3315 7 view .LVU2465 3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7103 .loc 1 3315 15 is_stmt 0 view .LVU2466 7104 0070 638D ldrh r3, [r4, #42] 7105 0072 9BB2 uxth r3, r3 3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7106 .loc 1 3315 10 view .LVU2467 7107 0074 FF2B cmp r3, #255 7108 0076 13D8 bhi .L453 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7109 .loc 1 3317 9 is_stmt 1 view .LVU2468 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7110 .loc 1 3317 18 is_stmt 0 view .LVU2469 7111 0078 E66A ldr r6, [r4, #44] 7112 .LVL464: 3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7113 .loc 1 3269 12 view .LVU2470 7114 007a 0D4B ldr r3, .L455+4 7115 .L449: 7116 .LVL465: 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7117 .loc 1 3322 5 is_stmt 1 view .LVU2471 7118 007c 0093 str r3, [sp] 7119 007e 3346 mov r3, r6 ARM GAS /tmp/ccbUHtu7.s page 287 7120 .LVL466: 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7121 .loc 1 3322 5 is_stmt 0 view .LVU2472 7122 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7123 0084 2946 mov r1, r5 7124 0086 2046 mov r0, r4 7125 0088 FFF7FEFF bl I2C_TransferConfig 7126 .LVL467: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7127 .loc 1 3325 5 is_stmt 1 view .LVU2473 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7128 .loc 1 3325 5 view .LVU2474 7129 008c 0025 movs r5, #0 7130 008e 84F84050 strb r5, [r4, #64] 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7131 .loc 1 3325 5 view .LVU2475 3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7132 .loc 1 3330 5 view .LVU2476 7133 0092 0121 movs r1, #1 7134 0094 2046 mov r0, r4 7135 0096 FFF7FEFF bl I2C_Enable_IRQ 7136 .LVL468: 3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7137 .loc 1 3332 5 view .LVU2477 3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7138 .loc 1 3332 12 is_stmt 0 view .LVU2478 7139 009a 2846 mov r0, r5 7140 .LVL469: 7141 .L445: 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7142 .loc 1 3338 1 view .LVU2479 7143 009c 02B0 add sp, sp, #8 7144 .LCFI85: 7145 .cfi_remember_state 7146 .cfi_def_cfa_offset 16 7147 @ sp needed 7148 009e 70BD pop {r4, r5, r6, pc} 7149 .LVL470: 7150 .L453: 7151 .LCFI86: 7152 .cfi_restore_state 3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7153 .loc 1 3269 12 view .LVU2480 7154 00a0 034B ldr r3, .L455+4 7155 00a2 EBE7 b .L449 7156 .LVL471: 7157 .L450: 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7158 .loc 1 3336 12 view .LVU2481 7159 00a4 0220 movs r0, #2 7160 00a6 F9E7 b .L445 7161 .LVL472: 7162 .L451: 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7163 .loc 1 3277 5 view .LVU2482 7164 00a8 0220 movs r0, #2 7165 00aa F7E7 b .L445 ARM GAS /tmp/ccbUHtu7.s page 288 7166 .L456: 7167 .align 2 7168 .L455: 7169 00ac 00000000 .word I2C_Master_ISR_IT 7170 00b0 00200080 .word -2147475456 7171 .cfi_endproc 7172 .LFE352: 7174 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7175 .align 1 7176 .global HAL_I2C_Master_Seq_Transmit_DMA 7177 .syntax unified 7178 .thumb 7179 .thumb_func 7181 HAL_I2C_Master_Seq_Transmit_DMA: 7182 .LVL473: 7183 .LFB353: 3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7184 .loc 1 3354 1 is_stmt 1 view -0 7185 .cfi_startproc 7186 @ args = 4, pretend = 0, frame = 0 7187 @ frame_needed = 0, uses_anonymous_args = 0 3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7188 .loc 1 3354 1 is_stmt 0 view .LVU2484 7189 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7190 .LCFI87: 7191 .cfi_def_cfa_offset 24 7192 .cfi_offset 4, -24 7193 .cfi_offset 5, -20 7194 .cfi_offset 6, -16 7195 .cfi_offset 7, -12 7196 .cfi_offset 8, -8 7197 .cfi_offset 14, -4 7198 0004 82B0 sub sp, sp, #8 7199 .LCFI88: 7200 .cfi_def_cfa_offset 32 7201 0006 0446 mov r4, r0 7202 0008 1546 mov r5, r2 7203 000a 089A ldr r2, [sp, #32] 7204 .LVL474: 3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7205 .loc 1 3355 3 is_stmt 1 view .LVU2485 3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7206 .loc 1 3356 3 view .LVU2486 3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7207 .loc 1 3357 3 view .LVU2487 3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7208 .loc 1 3360 3 view .LVU2488 3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7209 .loc 1 3362 3 view .LVU2489 3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7210 .loc 1 3362 11 is_stmt 0 view .LVU2490 7211 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7212 .LVL475: 3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7213 .loc 1 3362 11 view .LVU2491 7214 0010 C0B2 uxtb r0, r0 3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 289 7215 .loc 1 3362 6 view .LVU2492 7216 0012 2028 cmp r0, #32 7217 0014 40F09D80 bne .L468 7218 0018 0E46 mov r6, r1 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7219 .loc 1 3365 5 is_stmt 1 view .LVU2493 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7220 .loc 1 3365 5 view .LVU2494 7221 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7222 .LVL476: 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7223 .loc 1 3365 5 is_stmt 0 view .LVU2495 7224 001e 0129 cmp r1, #1 7225 0020 00F09B80 beq .L469 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7226 .loc 1 3365 5 is_stmt 1 discriminator 2 view .LVU2496 7227 0024 0121 movs r1, #1 7228 0026 84F84010 strb r1, [r4, #64] 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7229 .loc 1 3365 5 discriminator 2 view .LVU2497 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7230 .loc 1 3367 5 discriminator 2 view .LVU2498 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7231 .loc 1 3367 21 is_stmt 0 discriminator 2 view .LVU2499 7232 002a 2121 movs r1, #33 7233 002c 84F84110 strb r1, [r4, #65] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7234 .loc 1 3368 5 is_stmt 1 discriminator 2 view .LVU2500 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7235 .loc 1 3368 21 is_stmt 0 discriminator 2 view .LVU2501 7236 0030 1021 movs r1, #16 7237 0032 84F84210 strb r1, [r4, #66] 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7238 .loc 1 3369 5 is_stmt 1 discriminator 2 view .LVU2502 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7239 .loc 1 3369 21 is_stmt 0 discriminator 2 view .LVU2503 7240 0036 0021 movs r1, #0 7241 0038 6164 str r1, [r4, #68] 3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7242 .loc 1 3372 5 is_stmt 1 discriminator 2 view .LVU2504 3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7243 .loc 1 3372 23 is_stmt 0 discriminator 2 view .LVU2505 7244 003a 6562 str r5, [r4, #36] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7245 .loc 1 3373 5 is_stmt 1 discriminator 2 view .LVU2506 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7246 .loc 1 3373 23 is_stmt 0 discriminator 2 view .LVU2507 7247 003c 6385 strh r3, [r4, #42] @ movhi 3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7248 .loc 1 3374 5 is_stmt 1 discriminator 2 view .LVU2508 3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7249 .loc 1 3374 23 is_stmt 0 discriminator 2 view .LVU2509 7250 003e E262 str r2, [r4, #44] 3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7251 .loc 1 3375 5 is_stmt 1 discriminator 2 view .LVU2510 3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7252 .loc 1 3375 23 is_stmt 0 discriminator 2 view .LVU2511 ARM GAS /tmp/ccbUHtu7.s page 290 7253 0040 474B ldr r3, .L475 7254 .LVL477: 3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7255 .loc 1 3375 23 discriminator 2 view .LVU2512 7256 0042 6363 str r3, [r4, #52] 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7257 .loc 1 3378 5 is_stmt 1 discriminator 2 view .LVU2513 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7258 .loc 1 3378 13 is_stmt 0 discriminator 2 view .LVU2514 7259 0044 638D ldrh r3, [r4, #42] 7260 0046 9BB2 uxth r3, r3 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7261 .loc 1 3378 8 discriminator 2 view .LVU2515 7262 0048 FF2B cmp r3, #255 7263 004a 0ED9 bls .L459 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7264 .loc 1 3380 7 is_stmt 1 view .LVU2516 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7265 .loc 1 3380 22 is_stmt 0 view .LVU2517 7266 004c FF23 movs r3, #255 7267 004e 2385 strh r3, [r4, #40] @ movhi 3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7268 .loc 1 3381 7 is_stmt 1 view .LVU2518 7269 .LVL478: 3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7270 .loc 1 3381 16 is_stmt 0 view .LVU2519 7271 0050 4FF08077 mov r7, #16777216 7272 .LVL479: 7273 .L460: 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7274 .loc 1 3392 5 is_stmt 1 view .LVU2520 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7275 .loc 1 3392 14 is_stmt 0 view .LVU2521 7276 0054 236B ldr r3, [r4, #48] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7277 .loc 1 3392 8 view .LVU2522 7278 0056 112B cmp r3, #17 7279 0058 0BD1 bne .L461 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7280 .loc 1 3393 10 view .LVU2523 7281 005a AA2A cmp r2, #170 7282 005c 09D0 beq .L461 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7283 .loc 1 3393 10 discriminator 2 view .LVU2524 7284 005e B2F52A4F cmp r2, #43520 7285 0062 06D0 beq .L461 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7286 .loc 1 3395 19 view .LVU2525 7287 0064 4FF00008 mov r8, #0 7288 0068 0DE0 b .L462 7289 .LVL480: 7290 .L459: 3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7291 .loc 1 3385 7 is_stmt 1 view .LVU2526 3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7292 .loc 1 3385 28 is_stmt 0 view .LVU2527 7293 006a 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccbUHtu7.s page 291 3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7294 .loc 1 3385 22 view .LVU2528 7295 006c 2385 strh r3, [r4, #40] @ movhi 3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7296 .loc 1 3386 7 is_stmt 1 view .LVU2529 3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7297 .loc 1 3386 16 is_stmt 0 view .LVU2530 7298 006e E76A ldr r7, [r4, #44] 7299 .LVL481: 3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7300 .loc 1 3386 16 view .LVU2531 7301 0070 F0E7 b .L460 7302 .L461: 3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7303 .loc 1 3400 7 is_stmt 1 view .LVU2532 7304 0072 2046 mov r0, r4 7305 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 7306 .LVL482: 3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7307 .loc 1 3403 7 view .LVU2533 3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7308 .loc 1 3403 15 is_stmt 0 view .LVU2534 7309 0078 638D ldrh r3, [r4, #42] 7310 007a 9BB2 uxth r3, r3 3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7311 .loc 1 3403 10 view .LVU2535 7312 007c FF2B cmp r3, #255 7313 007e 27D8 bhi .L471 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7314 .loc 1 3405 9 is_stmt 1 view .LVU2536 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7315 .loc 1 3405 18 is_stmt 0 view .LVU2537 7316 0080 E76A ldr r7, [r4, #44] 7317 .LVL483: 3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7318 .loc 1 3356 12 view .LVU2538 7319 0082 DFF8EC80 ldr r8, .L475+16 7320 .L462: 7321 .LVL484: 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7322 .loc 1 3409 5 is_stmt 1 view .LVU2539 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7323 .loc 1 3409 13 is_stmt 0 view .LVU2540 7324 0086 228D ldrh r2, [r4, #40] 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7325 .loc 1 3409 8 view .LVU2541 7326 0088 002A cmp r2, #0 7327 008a 4ED0 beq .L463 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7328 .loc 1 3411 7 is_stmt 1 view .LVU2542 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7329 .loc 1 3411 15 is_stmt 0 view .LVU2543 7330 008c A36B ldr r3, [r4, #56] 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7331 .loc 1 3411 10 view .LVU2544 7332 008e 13B3 cbz r3, .L464 3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 292 7333 .loc 1 3414 9 is_stmt 1 view .LVU2545 3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7334 .loc 1 3414 40 is_stmt 0 view .LVU2546 7335 0090 344A ldr r2, .L475+4 7336 0092 DA62 str r2, [r3, #44] 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7337 .loc 1 3417 9 is_stmt 1 view .LVU2547 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7338 .loc 1 3417 13 is_stmt 0 view .LVU2548 7339 0094 A36B ldr r3, [r4, #56] 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7340 .loc 1 3417 41 view .LVU2549 7341 0096 344A ldr r2, .L475+8 7342 0098 5A63 str r2, [r3, #52] 3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7343 .loc 1 3420 9 is_stmt 1 view .LVU2550 3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7344 .loc 1 3420 13 is_stmt 0 view .LVU2551 7345 009a A26B ldr r2, [r4, #56] 3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7346 .loc 1 3420 44 view .LVU2552 7347 009c 0023 movs r3, #0 7348 009e 1363 str r3, [r2, #48] 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7349 .loc 1 3421 9 is_stmt 1 view .LVU2553 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7350 .loc 1 3421 13 is_stmt 0 view .LVU2554 7351 00a0 A26B ldr r2, [r4, #56] 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7352 .loc 1 3421 41 view .LVU2555 7353 00a2 9363 str r3, [r2, #56] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 7354 .loc 1 3424 9 is_stmt 1 view .LVU2556 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 7355 .loc 1 3424 88 is_stmt 0 view .LVU2557 7356 00a4 2268 ldr r2, [r4] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 7357 .loc 1 3424 25 view .LVU2558 7358 00a6 238D ldrh r3, [r4, #40] 7359 00a8 2832 adds r2, r2, #40 7360 00aa 2946 mov r1, r5 7361 00ac A06B ldr r0, [r4, #56] 7362 00ae FFF7FEFF bl HAL_DMA_Start_IT 7363 .LVL485: 3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7364 .loc 1 3442 7 is_stmt 1 view .LVU2559 3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7365 .loc 1 3442 10 is_stmt 0 view .LVU2560 7366 00b2 F0B1 cbz r0, .L474 3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7367 .loc 1 3465 9 is_stmt 1 view .LVU2561 3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7368 .loc 1 3465 25 is_stmt 0 view .LVU2562 7369 00b4 2023 movs r3, #32 7370 00b6 84F84130 strb r3, [r4, #65] 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7371 .loc 1 3466 9 is_stmt 1 view .LVU2563 ARM GAS /tmp/ccbUHtu7.s page 293 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7372 .loc 1 3466 25 is_stmt 0 view .LVU2564 7373 00ba 0022 movs r2, #0 7374 00bc 84F84220 strb r2, [r4, #66] 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7375 .loc 1 3469 9 is_stmt 1 view .LVU2565 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7376 .loc 1 3469 13 is_stmt 0 view .LVU2566 7377 00c0 636C ldr r3, [r4, #68] 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7378 .loc 1 3469 25 view .LVU2567 7379 00c2 43F01003 orr r3, r3, #16 7380 00c6 6364 str r3, [r4, #68] 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7381 .loc 1 3472 9 is_stmt 1 view .LVU2568 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7382 .loc 1 3472 9 view .LVU2569 7383 00c8 84F84020 strb r2, [r4, #64] 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7384 .loc 1 3472 9 view .LVU2570 3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7385 .loc 1 3474 9 view .LVU2571 3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7386 .loc 1 3474 16 is_stmt 0 view .LVU2572 7387 00cc 0120 movs r0, #1 7388 .LVL486: 3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7389 .loc 1 3474 16 view .LVU2573 7390 00ce 41E0 b .L458 7391 .LVL487: 7392 .L471: 3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7393 .loc 1 3356 12 view .LVU2574 7394 00d0 DFF89C80 ldr r8, .L475+16 7395 00d4 D7E7 b .L462 7396 .LVL488: 7397 .L464: 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7398 .loc 1 3430 9 is_stmt 1 view .LVU2575 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7399 .loc 1 3430 25 is_stmt 0 view .LVU2576 7400 00d6 2023 movs r3, #32 7401 00d8 84F84130 strb r3, [r4, #65] 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7402 .loc 1 3431 9 is_stmt 1 view .LVU2577 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7403 .loc 1 3431 25 is_stmt 0 view .LVU2578 7404 00dc 0022 movs r2, #0 7405 00de 84F84220 strb r2, [r4, #66] 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7406 .loc 1 3434 9 is_stmt 1 view .LVU2579 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7407 .loc 1 3434 13 is_stmt 0 view .LVU2580 7408 00e2 636C ldr r3, [r4, #68] 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7409 .loc 1 3434 25 view .LVU2581 7410 00e4 43F08003 orr r3, r3, #128 ARM GAS /tmp/ccbUHtu7.s page 294 7411 00e8 6364 str r3, [r4, #68] 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7412 .loc 1 3437 9 is_stmt 1 view .LVU2582 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7413 .loc 1 3437 9 view .LVU2583 7414 00ea 84F84020 strb r2, [r4, #64] 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7415 .loc 1 3437 9 view .LVU2584 3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7416 .loc 1 3439 9 view .LVU2585 3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7417 .loc 1 3439 16 is_stmt 0 view .LVU2586 7418 00ee 0120 movs r0, #1 7419 00f0 30E0 b .L458 7420 .LVL489: 7421 .L474: 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7422 .loc 1 3445 9 is_stmt 1 view .LVU2587 7423 00f2 CDF80080 str r8, [sp] 7424 00f6 3B46 mov r3, r7 7425 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7426 00fc 3146 mov r1, r6 7427 00fe 2046 mov r0, r4 7428 .LVL490: 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7429 .loc 1 3445 9 is_stmt 0 view .LVU2588 7430 0100 FFF7FEFF bl I2C_TransferConfig 7431 .LVL491: 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7432 .loc 1 3448 9 is_stmt 1 view .LVU2589 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7433 .loc 1 3448 13 is_stmt 0 view .LVU2590 7434 0104 638D ldrh r3, [r4, #42] 7435 0106 9BB2 uxth r3, r3 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7436 .loc 1 3448 32 view .LVU2591 7437 0108 228D ldrh r2, [r4, #40] 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7438 .loc 1 3448 25 view .LVU2592 7439 010a 9B1A subs r3, r3, r2 7440 010c 9BB2 uxth r3, r3 7441 010e 6385 strh r3, [r4, #42] @ movhi 3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7442 .loc 1 3451 9 is_stmt 1 view .LVU2593 3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7443 .loc 1 3451 9 view .LVU2594 7444 0110 0023 movs r3, #0 7445 0112 84F84030 strb r3, [r4, #64] 3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7446 .loc 1 3451 9 view .LVU2595 3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7447 .loc 1 3457 9 view .LVU2596 7448 0116 1021 movs r1, #16 7449 0118 2046 mov r0, r4 7450 011a FFF7FEFF bl I2C_Enable_IRQ 7451 .LVL492: 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 295 7452 .loc 1 3460 9 view .LVU2597 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7453 .loc 1 3460 13 is_stmt 0 view .LVU2598 7454 011e 2268 ldr r2, [r4] 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7455 .loc 1 3460 23 view .LVU2599 7456 0120 1368 ldr r3, [r2] 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7457 .loc 1 3460 29 view .LVU2600 7458 0122 43F48043 orr r3, r3, #16384 7459 0126 1360 str r3, [r2] 7460 0128 11E0 b .L467 7461 .LVL493: 7462 .L463: 3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7463 .loc 1 3480 7 is_stmt 1 view .LVU2601 3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7464 .loc 1 3480 21 is_stmt 0 view .LVU2602 7465 012a 104B ldr r3, .L475+12 7466 012c 6363 str r3, [r4, #52] 3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 7467 .loc 1 3484 7 is_stmt 1 view .LVU2603 7468 012e 104B ldr r3, .L475+16 7469 0130 0093 str r3, [sp] 7470 0132 4FF00073 mov r3, #33554432 7471 0136 D2B2 uxtb r2, r2 7472 0138 3146 mov r1, r6 7473 013a 2046 mov r0, r4 7474 013c FFF7FEFF bl I2C_TransferConfig 7475 .LVL494: 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7476 .loc 1 3488 7 view .LVU2604 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7477 .loc 1 3488 7 view .LVU2605 7478 0140 0023 movs r3, #0 7479 0142 84F84030 strb r3, [r4, #64] 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7480 .loc 1 3488 7 view .LVU2606 3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7481 .loc 1 3497 7 view .LVU2607 7482 0146 0121 movs r1, #1 7483 0148 2046 mov r0, r4 7484 014a FFF7FEFF bl I2C_Enable_IRQ 7485 .LVL495: 7486 .L467: 3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7487 .loc 1 3500 5 view .LVU2608 3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7488 .loc 1 3500 12 is_stmt 0 view .LVU2609 7489 014e 0020 movs r0, #0 7490 0150 00E0 b .L458 7491 .LVL496: 7492 .L468: 3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7493 .loc 1 3504 12 view .LVU2610 7494 0152 0220 movs r0, #2 7495 .LVL497: ARM GAS /tmp/ccbUHtu7.s page 296 7496 .L458: 3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7497 .loc 1 3506 1 view .LVU2611 7498 0154 02B0 add sp, sp, #8 7499 .LCFI89: 7500 .cfi_remember_state 7501 .cfi_def_cfa_offset 24 7502 @ sp needed 7503 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7504 .LVL498: 7505 .L469: 7506 .LCFI90: 7507 .cfi_restore_state 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7508 .loc 1 3365 5 view .LVU2612 7509 015a 0220 movs r0, #2 7510 015c FAE7 b .L458 7511 .L476: 7512 015e 00BF .align 2 7513 .L475: 7514 0160 00000000 .word I2C_Master_ISR_DMA 7515 0164 00000000 .word I2C_DMAMasterTransmitCplt 7516 0168 00000000 .word I2C_DMAError 7517 016c 00000000 .word I2C_Master_ISR_IT 7518 0170 00200080 .word -2147475456 7519 .cfi_endproc 7520 .LFE353: 7522 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7523 .align 1 7524 .global HAL_I2C_Master_Seq_Receive_IT 7525 .syntax unified 7526 .thumb 7527 .thumb_func 7529 HAL_I2C_Master_Seq_Receive_IT: 7530 .LVL499: 7531 .LFB354: 3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7532 .loc 1 3522 1 is_stmt 1 view -0 7533 .cfi_startproc 7534 @ args = 4, pretend = 0, frame = 0 7535 @ frame_needed = 0, uses_anonymous_args = 0 3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7536 .loc 1 3522 1 is_stmt 0 view .LVU2614 7537 0000 70B5 push {r4, r5, r6, lr} 7538 .LCFI91: 7539 .cfi_def_cfa_offset 16 7540 .cfi_offset 4, -16 7541 .cfi_offset 5, -12 7542 .cfi_offset 6, -8 7543 .cfi_offset 14, -4 7544 0002 82B0 sub sp, sp, #8 7545 .LCFI92: 7546 .cfi_def_cfa_offset 24 7547 0004 0446 mov r4, r0 3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7548 .loc 1 3523 3 is_stmt 1 view .LVU2615 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 297 7549 .loc 1 3524 3 view .LVU2616 7550 .LVL500: 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7551 .loc 1 3527 3 view .LVU2617 3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7552 .loc 1 3529 3 view .LVU2618 3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7553 .loc 1 3529 11 is_stmt 0 view .LVU2619 7554 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7555 .LVL501: 3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7556 .loc 1 3529 11 view .LVU2620 7557 000a C0B2 uxtb r0, r0 3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7558 .loc 1 3529 6 view .LVU2621 7559 000c 2028 cmp r0, #32 7560 000e 49D1 bne .L483 7561 0010 0D46 mov r5, r1 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7562 .loc 1 3532 5 is_stmt 1 view .LVU2622 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7563 .loc 1 3532 5 view .LVU2623 7564 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7565 .LVL502: 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7566 .loc 1 3532 5 is_stmt 0 view .LVU2624 7567 0016 0129 cmp r1, #1 7568 0018 46D0 beq .L484 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7569 .loc 1 3532 5 is_stmt 1 discriminator 2 view .LVU2625 7570 001a 0121 movs r1, #1 7571 001c 84F84010 strb r1, [r4, #64] 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7572 .loc 1 3532 5 discriminator 2 view .LVU2626 3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7573 .loc 1 3534 5 discriminator 2 view .LVU2627 3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7574 .loc 1 3534 21 is_stmt 0 discriminator 2 view .LVU2628 7575 0020 2221 movs r1, #34 7576 0022 84F84110 strb r1, [r4, #65] 3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7577 .loc 1 3535 5 is_stmt 1 discriminator 2 view .LVU2629 3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7578 .loc 1 3535 21 is_stmt 0 discriminator 2 view .LVU2630 7579 0026 1021 movs r1, #16 7580 0028 84F84210 strb r1, [r4, #66] 3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7581 .loc 1 3536 5 is_stmt 1 discriminator 2 view .LVU2631 3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7582 .loc 1 3536 21 is_stmt 0 discriminator 2 view .LVU2632 7583 002c 0021 movs r1, #0 7584 002e 6164 str r1, [r4, #68] 3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7585 .loc 1 3539 5 is_stmt 1 discriminator 2 view .LVU2633 3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7586 .loc 1 3539 23 is_stmt 0 discriminator 2 view .LVU2634 7587 0030 6262 str r2, [r4, #36] ARM GAS /tmp/ccbUHtu7.s page 298 3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7588 .loc 1 3540 5 is_stmt 1 discriminator 2 view .LVU2635 3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7589 .loc 1 3540 23 is_stmt 0 discriminator 2 view .LVU2636 7590 0032 6385 strh r3, [r4, #42] @ movhi 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7591 .loc 1 3541 5 is_stmt 1 discriminator 2 view .LVU2637 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7592 .loc 1 3541 23 is_stmt 0 discriminator 2 view .LVU2638 7593 0034 069B ldr r3, [sp, #24] 7594 .LVL503: 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7595 .loc 1 3541 23 discriminator 2 view .LVU2639 7596 0036 E362 str r3, [r4, #44] 7597 .LVL504: 3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7598 .loc 1 3542 5 is_stmt 1 discriminator 2 view .LVU2640 3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7599 .loc 1 3542 23 is_stmt 0 discriminator 2 view .LVU2641 7600 0038 1C4B ldr r3, .L488 7601 003a 6363 str r3, [r4, #52] 3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7602 .loc 1 3545 5 is_stmt 1 discriminator 2 view .LVU2642 3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7603 .loc 1 3545 13 is_stmt 0 discriminator 2 view .LVU2643 7604 003c 638D ldrh r3, [r4, #42] 7605 003e 9BB2 uxth r3, r3 3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7606 .loc 1 3545 8 discriminator 2 view .LVU2644 7607 0040 FF2B cmp r3, #255 7608 0042 0ED9 bls .L479 3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7609 .loc 1 3547 7 is_stmt 1 view .LVU2645 3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7610 .loc 1 3547 22 is_stmt 0 view .LVU2646 7611 0044 FF23 movs r3, #255 7612 0046 2385 strh r3, [r4, #40] @ movhi 3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7613 .loc 1 3548 7 is_stmt 1 view .LVU2647 7614 .LVL505: 3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7615 .loc 1 3548 16 is_stmt 0 view .LVU2648 7616 0048 4FF08076 mov r6, #16777216 7617 .LVL506: 7618 .L480: 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7619 .loc 1 3559 5 is_stmt 1 view .LVU2649 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7620 .loc 1 3559 14 is_stmt 0 view .LVU2650 7621 004c 236B ldr r3, [r4, #48] 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7622 .loc 1 3559 8 view .LVU2651 7623 004e 122B cmp r3, #18 7624 0050 0BD1 bne .L481 3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7625 .loc 1 3560 10 view .LVU2652 7626 0052 069B ldr r3, [sp, #24] ARM GAS /tmp/ccbUHtu7.s page 299 7627 0054 AA2B cmp r3, #170 7628 0056 08D0 beq .L481 3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7629 .loc 1 3560 10 discriminator 2 view .LVU2653 7630 0058 B3F52A4F cmp r3, #43520 7631 005c 05D0 beq .L481 3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7632 .loc 1 3562 19 view .LVU2654 7633 005e 0023 movs r3, #0 7634 0060 0CE0 b .L482 7635 .LVL507: 7636 .L479: 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7637 .loc 1 3552 7 is_stmt 1 view .LVU2655 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7638 .loc 1 3552 28 is_stmt 0 view .LVU2656 7639 0062 638D ldrh r3, [r4, #42] 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7640 .loc 1 3552 22 view .LVU2657 7641 0064 2385 strh r3, [r4, #40] @ movhi 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7642 .loc 1 3553 7 is_stmt 1 view .LVU2658 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7643 .loc 1 3553 16 is_stmt 0 view .LVU2659 7644 0066 E66A ldr r6, [r4, #44] 7645 .LVL508: 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7646 .loc 1 3553 16 view .LVU2660 7647 0068 F0E7 b .L480 7648 .L481: 3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7649 .loc 1 3567 7 is_stmt 1 view .LVU2661 7650 006a 2046 mov r0, r4 7651 006c FFF7FEFF bl I2C_ConvertOtherXferOptions 7652 .LVL509: 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7653 .loc 1 3570 7 view .LVU2662 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7654 .loc 1 3570 15 is_stmt 0 view .LVU2663 7655 0070 638D ldrh r3, [r4, #42] 7656 0072 9BB2 uxth r3, r3 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7657 .loc 1 3570 10 view .LVU2664 7658 0074 FF2B cmp r3, #255 7659 0076 13D8 bhi .L486 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7660 .loc 1 3572 9 is_stmt 1 view .LVU2665 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7661 .loc 1 3572 18 is_stmt 0 view .LVU2666 7662 0078 E66A ldr r6, [r4, #44] 7663 .LVL510: 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7664 .loc 1 3524 12 view .LVU2667 7665 007a 0D4B ldr r3, .L488+4 7666 .L482: 7667 .LVL511: 3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 300 7668 .loc 1 3577 5 is_stmt 1 view .LVU2668 7669 007c 0093 str r3, [sp] 7670 007e 3346 mov r3, r6 7671 .LVL512: 3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7672 .loc 1 3577 5 is_stmt 0 view .LVU2669 7673 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7674 0084 2946 mov r1, r5 7675 0086 2046 mov r0, r4 7676 0088 FFF7FEFF bl I2C_TransferConfig 7677 .LVL513: 3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7678 .loc 1 3580 5 is_stmt 1 view .LVU2670 3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7679 .loc 1 3580 5 view .LVU2671 7680 008c 0025 movs r5, #0 7681 008e 84F84050 strb r5, [r4, #64] 3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7682 .loc 1 3580 5 view .LVU2672 3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7683 .loc 1 3585 5 view .LVU2673 7684 0092 0221 movs r1, #2 7685 0094 2046 mov r0, r4 7686 0096 FFF7FEFF bl I2C_Enable_IRQ 7687 .LVL514: 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7688 .loc 1 3587 5 view .LVU2674 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7689 .loc 1 3587 12 is_stmt 0 view .LVU2675 7690 009a 2846 mov r0, r5 7691 .LVL515: 7692 .L478: 3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7693 .loc 1 3593 1 view .LVU2676 7694 009c 02B0 add sp, sp, #8 7695 .LCFI93: 7696 .cfi_remember_state 7697 .cfi_def_cfa_offset 16 7698 @ sp needed 7699 009e 70BD pop {r4, r5, r6, pc} 7700 .LVL516: 7701 .L486: 7702 .LCFI94: 7703 .cfi_restore_state 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7704 .loc 1 3524 12 view .LVU2677 7705 00a0 034B ldr r3, .L488+4 7706 00a2 EBE7 b .L482 7707 .LVL517: 7708 .L483: 3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7709 .loc 1 3591 12 view .LVU2678 7710 00a4 0220 movs r0, #2 7711 00a6 F9E7 b .L478 7712 .LVL518: 7713 .L484: 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 301 7714 .loc 1 3532 5 view .LVU2679 7715 00a8 0220 movs r0, #2 7716 00aa F7E7 b .L478 7717 .L489: 7718 .align 2 7719 .L488: 7720 00ac 00000000 .word I2C_Master_ISR_IT 7721 00b0 00240080 .word -2147474432 7722 .cfi_endproc 7723 .LFE354: 7725 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 7726 .align 1 7727 .global HAL_I2C_Master_Seq_Receive_DMA 7728 .syntax unified 7729 .thumb 7730 .thumb_func 7732 HAL_I2C_Master_Seq_Receive_DMA: 7733 .LVL519: 7734 .LFB355: 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7735 .loc 1 3609 1 is_stmt 1 view -0 7736 .cfi_startproc 7737 @ args = 4, pretend = 0, frame = 0 7738 @ frame_needed = 0, uses_anonymous_args = 0 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7739 .loc 1 3609 1 is_stmt 0 view .LVU2681 7740 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7741 .LCFI95: 7742 .cfi_def_cfa_offset 24 7743 .cfi_offset 4, -24 7744 .cfi_offset 5, -20 7745 .cfi_offset 6, -16 7746 .cfi_offset 7, -12 7747 .cfi_offset 8, -8 7748 .cfi_offset 14, -4 7749 0004 82B0 sub sp, sp, #8 7750 .LCFI96: 7751 .cfi_def_cfa_offset 32 7752 0006 0446 mov r4, r0 7753 0008 1546 mov r5, r2 7754 000a 089A ldr r2, [sp, #32] 7755 .LVL520: 3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7756 .loc 1 3610 3 is_stmt 1 view .LVU2682 3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7757 .loc 1 3611 3 view .LVU2683 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7758 .loc 1 3612 3 view .LVU2684 3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7759 .loc 1 3615 3 view .LVU2685 3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7760 .loc 1 3617 3 view .LVU2686 3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7761 .loc 1 3617 11 is_stmt 0 view .LVU2687 7762 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7763 .LVL521: 3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 302 7764 .loc 1 3617 11 view .LVU2688 7765 0010 C0B2 uxtb r0, r0 3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7766 .loc 1 3617 6 view .LVU2689 7767 0012 2028 cmp r0, #32 7768 0014 40F09D80 bne .L501 7769 0018 0E46 mov r6, r1 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7770 .loc 1 3620 5 is_stmt 1 view .LVU2690 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7771 .loc 1 3620 5 view .LVU2691 7772 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7773 .LVL522: 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7774 .loc 1 3620 5 is_stmt 0 view .LVU2692 7775 001e 0129 cmp r1, #1 7776 0020 00F09B80 beq .L502 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7777 .loc 1 3620 5 is_stmt 1 discriminator 2 view .LVU2693 7778 0024 0121 movs r1, #1 7779 0026 84F84010 strb r1, [r4, #64] 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7780 .loc 1 3620 5 discriminator 2 view .LVU2694 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7781 .loc 1 3622 5 discriminator 2 view .LVU2695 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7782 .loc 1 3622 21 is_stmt 0 discriminator 2 view .LVU2696 7783 002a 2221 movs r1, #34 7784 002c 84F84110 strb r1, [r4, #65] 3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7785 .loc 1 3623 5 is_stmt 1 discriminator 2 view .LVU2697 3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7786 .loc 1 3623 21 is_stmt 0 discriminator 2 view .LVU2698 7787 0030 1021 movs r1, #16 7788 0032 84F84210 strb r1, [r4, #66] 3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7789 .loc 1 3624 5 is_stmt 1 discriminator 2 view .LVU2699 3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7790 .loc 1 3624 21 is_stmt 0 discriminator 2 view .LVU2700 7791 0036 0021 movs r1, #0 7792 0038 6164 str r1, [r4, #68] 3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7793 .loc 1 3627 5 is_stmt 1 discriminator 2 view .LVU2701 3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7794 .loc 1 3627 23 is_stmt 0 discriminator 2 view .LVU2702 7795 003a 6562 str r5, [r4, #36] 3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7796 .loc 1 3628 5 is_stmt 1 discriminator 2 view .LVU2703 3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7797 .loc 1 3628 23 is_stmt 0 discriminator 2 view .LVU2704 7798 003c 6385 strh r3, [r4, #42] @ movhi 3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7799 .loc 1 3629 5 is_stmt 1 discriminator 2 view .LVU2705 3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7800 .loc 1 3629 23 is_stmt 0 discriminator 2 view .LVU2706 7801 003e E262 str r2, [r4, #44] 3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 303 7802 .loc 1 3630 5 is_stmt 1 discriminator 2 view .LVU2707 3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7803 .loc 1 3630 23 is_stmt 0 discriminator 2 view .LVU2708 7804 0040 474B ldr r3, .L508 7805 .LVL523: 3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7806 .loc 1 3630 23 discriminator 2 view .LVU2709 7807 0042 6363 str r3, [r4, #52] 3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7808 .loc 1 3633 5 is_stmt 1 discriminator 2 view .LVU2710 3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7809 .loc 1 3633 13 is_stmt 0 discriminator 2 view .LVU2711 7810 0044 638D ldrh r3, [r4, #42] 7811 0046 9BB2 uxth r3, r3 3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7812 .loc 1 3633 8 discriminator 2 view .LVU2712 7813 0048 FF2B cmp r3, #255 7814 004a 0ED9 bls .L492 3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7815 .loc 1 3635 7 is_stmt 1 view .LVU2713 3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7816 .loc 1 3635 22 is_stmt 0 view .LVU2714 7817 004c FF23 movs r3, #255 7818 004e 2385 strh r3, [r4, #40] @ movhi 3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7819 .loc 1 3636 7 is_stmt 1 view .LVU2715 7820 .LVL524: 3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7821 .loc 1 3636 16 is_stmt 0 view .LVU2716 7822 0050 4FF08077 mov r7, #16777216 7823 .LVL525: 7824 .L493: 3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7825 .loc 1 3647 5 is_stmt 1 view .LVU2717 3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7826 .loc 1 3647 14 is_stmt 0 view .LVU2718 7827 0054 236B ldr r3, [r4, #48] 3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7828 .loc 1 3647 8 view .LVU2719 7829 0056 122B cmp r3, #18 7830 0058 0BD1 bne .L494 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7831 .loc 1 3648 10 view .LVU2720 7832 005a AA2A cmp r2, #170 7833 005c 09D0 beq .L494 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7834 .loc 1 3648 10 discriminator 2 view .LVU2721 7835 005e B2F52A4F cmp r2, #43520 7836 0062 06D0 beq .L494 3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7837 .loc 1 3650 19 view .LVU2722 7838 0064 4FF00008 mov r8, #0 7839 0068 0DE0 b .L495 7840 .LVL526: 7841 .L492: 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7842 .loc 1 3640 7 is_stmt 1 view .LVU2723 ARM GAS /tmp/ccbUHtu7.s page 304 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7843 .loc 1 3640 28 is_stmt 0 view .LVU2724 7844 006a 638D ldrh r3, [r4, #42] 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7845 .loc 1 3640 22 view .LVU2725 7846 006c 2385 strh r3, [r4, #40] @ movhi 3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7847 .loc 1 3641 7 is_stmt 1 view .LVU2726 3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7848 .loc 1 3641 16 is_stmt 0 view .LVU2727 7849 006e E76A ldr r7, [r4, #44] 7850 .LVL527: 3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7851 .loc 1 3641 16 view .LVU2728 7852 0070 F0E7 b .L493 7853 .L494: 3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7854 .loc 1 3655 7 is_stmt 1 view .LVU2729 7855 0072 2046 mov r0, r4 7856 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 7857 .LVL528: 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7858 .loc 1 3658 7 view .LVU2730 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7859 .loc 1 3658 15 is_stmt 0 view .LVU2731 7860 0078 638D ldrh r3, [r4, #42] 7861 007a 9BB2 uxth r3, r3 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7862 .loc 1 3658 10 view .LVU2732 7863 007c FF2B cmp r3, #255 7864 007e 27D8 bhi .L504 3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7865 .loc 1 3660 9 is_stmt 1 view .LVU2733 3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7866 .loc 1 3660 18 is_stmt 0 view .LVU2734 7867 0080 E76A ldr r7, [r4, #44] 7868 .LVL529: 3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7869 .loc 1 3611 12 view .LVU2735 7870 0082 DFF8EC80 ldr r8, .L508+16 7871 .L495: 7872 .LVL530: 3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7873 .loc 1 3664 5 is_stmt 1 view .LVU2736 3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7874 .loc 1 3664 13 is_stmt 0 view .LVU2737 7875 0086 228D ldrh r2, [r4, #40] 3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7876 .loc 1 3664 8 view .LVU2738 7877 0088 002A cmp r2, #0 7878 008a 4ED0 beq .L496 3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7879 .loc 1 3666 7 is_stmt 1 view .LVU2739 3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7880 .loc 1 3666 15 is_stmt 0 view .LVU2740 7881 008c E36B ldr r3, [r4, #60] 3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 305 7882 .loc 1 3666 10 view .LVU2741 7883 008e 13B3 cbz r3, .L497 3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7884 .loc 1 3669 9 is_stmt 1 view .LVU2742 3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7885 .loc 1 3669 40 is_stmt 0 view .LVU2743 7886 0090 344A ldr r2, .L508+4 7887 0092 DA62 str r2, [r3, #44] 3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7888 .loc 1 3672 9 is_stmt 1 view .LVU2744 3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7889 .loc 1 3672 13 is_stmt 0 view .LVU2745 7890 0094 E36B ldr r3, [r4, #60] 3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7891 .loc 1 3672 41 view .LVU2746 7892 0096 344A ldr r2, .L508+8 7893 0098 5A63 str r2, [r3, #52] 3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7894 .loc 1 3675 9 is_stmt 1 view .LVU2747 3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7895 .loc 1 3675 13 is_stmt 0 view .LVU2748 7896 009a E26B ldr r2, [r4, #60] 3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7897 .loc 1 3675 44 view .LVU2749 7898 009c 0023 movs r3, #0 7899 009e 1363 str r3, [r2, #48] 3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7900 .loc 1 3676 9 is_stmt 1 view .LVU2750 3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7901 .loc 1 3676 13 is_stmt 0 view .LVU2751 7902 00a0 E26B ldr r2, [r4, #60] 3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7903 .loc 1 3676 41 view .LVU2752 7904 00a2 9363 str r3, [r2, #56] 3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 7905 .loc 1 3679 9 is_stmt 1 view .LVU2753 3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 7906 .loc 1 3679 71 is_stmt 0 view .LVU2754 7907 00a4 2168 ldr r1, [r4] 3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 7908 .loc 1 3679 25 view .LVU2755 7909 00a6 238D ldrh r3, [r4, #40] 7910 00a8 2A46 mov r2, r5 7911 00aa 2431 adds r1, r1, #36 7912 00ac E06B ldr r0, [r4, #60] 7913 00ae FFF7FEFF bl HAL_DMA_Start_IT 7914 .LVL531: 3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7915 .loc 1 3697 7 is_stmt 1 view .LVU2756 3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7916 .loc 1 3697 10 is_stmt 0 view .LVU2757 7917 00b2 F0B1 cbz r0, .L507 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7918 .loc 1 3720 9 is_stmt 1 view .LVU2758 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7919 .loc 1 3720 25 is_stmt 0 view .LVU2759 7920 00b4 2023 movs r3, #32 ARM GAS /tmp/ccbUHtu7.s page 306 7921 00b6 84F84130 strb r3, [r4, #65] 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7922 .loc 1 3721 9 is_stmt 1 view .LVU2760 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7923 .loc 1 3721 25 is_stmt 0 view .LVU2761 7924 00ba 0022 movs r2, #0 7925 00bc 84F84220 strb r2, [r4, #66] 3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7926 .loc 1 3724 9 is_stmt 1 view .LVU2762 3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7927 .loc 1 3724 13 is_stmt 0 view .LVU2763 7928 00c0 636C ldr r3, [r4, #68] 3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7929 .loc 1 3724 25 view .LVU2764 7930 00c2 43F01003 orr r3, r3, #16 7931 00c6 6364 str r3, [r4, #68] 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7932 .loc 1 3727 9 is_stmt 1 view .LVU2765 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7933 .loc 1 3727 9 view .LVU2766 7934 00c8 84F84020 strb r2, [r4, #64] 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7935 .loc 1 3727 9 view .LVU2767 3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7936 .loc 1 3729 9 view .LVU2768 3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7937 .loc 1 3729 16 is_stmt 0 view .LVU2769 7938 00cc 0120 movs r0, #1 7939 .LVL532: 3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7940 .loc 1 3729 16 view .LVU2770 7941 00ce 41E0 b .L491 7942 .LVL533: 7943 .L504: 3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7944 .loc 1 3611 12 view .LVU2771 7945 00d0 DFF89C80 ldr r8, .L508+16 7946 00d4 D7E7 b .L495 7947 .LVL534: 7948 .L497: 3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7949 .loc 1 3685 9 is_stmt 1 view .LVU2772 3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7950 .loc 1 3685 25 is_stmt 0 view .LVU2773 7951 00d6 2023 movs r3, #32 7952 00d8 84F84130 strb r3, [r4, #65] 3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7953 .loc 1 3686 9 is_stmt 1 view .LVU2774 3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7954 .loc 1 3686 25 is_stmt 0 view .LVU2775 7955 00dc 0022 movs r2, #0 7956 00de 84F84220 strb r2, [r4, #66] 3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7957 .loc 1 3689 9 is_stmt 1 view .LVU2776 3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7958 .loc 1 3689 13 is_stmt 0 view .LVU2777 7959 00e2 636C ldr r3, [r4, #68] ARM GAS /tmp/ccbUHtu7.s page 307 3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7960 .loc 1 3689 25 view .LVU2778 7961 00e4 43F08003 orr r3, r3, #128 7962 00e8 6364 str r3, [r4, #68] 3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7963 .loc 1 3692 9 is_stmt 1 view .LVU2779 3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7964 .loc 1 3692 9 view .LVU2780 7965 00ea 84F84020 strb r2, [r4, #64] 3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7966 .loc 1 3692 9 view .LVU2781 3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7967 .loc 1 3694 9 view .LVU2782 3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7968 .loc 1 3694 16 is_stmt 0 view .LVU2783 7969 00ee 0120 movs r0, #1 7970 00f0 30E0 b .L491 7971 .LVL535: 7972 .L507: 3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7973 .loc 1 3700 9 is_stmt 1 view .LVU2784 7974 00f2 CDF80080 str r8, [sp] 7975 00f6 3B46 mov r3, r7 7976 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7977 00fc 3146 mov r1, r6 7978 00fe 2046 mov r0, r4 7979 .LVL536: 3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7980 .loc 1 3700 9 is_stmt 0 view .LVU2785 7981 0100 FFF7FEFF bl I2C_TransferConfig 7982 .LVL537: 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7983 .loc 1 3703 9 is_stmt 1 view .LVU2786 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7984 .loc 1 3703 13 is_stmt 0 view .LVU2787 7985 0104 638D ldrh r3, [r4, #42] 7986 0106 9BB2 uxth r3, r3 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7987 .loc 1 3703 32 view .LVU2788 7988 0108 228D ldrh r2, [r4, #40] 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7989 .loc 1 3703 25 view .LVU2789 7990 010a 9B1A subs r3, r3, r2 7991 010c 9BB2 uxth r3, r3 7992 010e 6385 strh r3, [r4, #42] @ movhi 3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7993 .loc 1 3706 9 is_stmt 1 view .LVU2790 3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7994 .loc 1 3706 9 view .LVU2791 7995 0110 0023 movs r3, #0 7996 0112 84F84030 strb r3, [r4, #64] 3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7997 .loc 1 3706 9 view .LVU2792 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7998 .loc 1 3712 9 view .LVU2793 7999 0116 1021 movs r1, #16 8000 0118 2046 mov r0, r4 ARM GAS /tmp/ccbUHtu7.s page 308 8001 011a FFF7FEFF bl I2C_Enable_IRQ 8002 .LVL538: 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8003 .loc 1 3715 9 view .LVU2794 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8004 .loc 1 3715 13 is_stmt 0 view .LVU2795 8005 011e 2268 ldr r2, [r4] 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8006 .loc 1 3715 23 view .LVU2796 8007 0120 1368 ldr r3, [r2] 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8008 .loc 1 3715 29 view .LVU2797 8009 0122 43F40043 orr r3, r3, #32768 8010 0126 1360 str r3, [r2] 8011 0128 11E0 b .L500 8012 .LVL539: 8013 .L496: 3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8014 .loc 1 3735 7 is_stmt 1 view .LVU2798 3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8015 .loc 1 3735 21 is_stmt 0 view .LVU2799 8016 012a 104B ldr r3, .L508+12 8017 012c 6363 str r3, [r4, #52] 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8018 .loc 1 3739 7 is_stmt 1 view .LVU2800 8019 012e 104B ldr r3, .L508+16 8020 0130 0093 str r3, [sp] 8021 0132 4FF00073 mov r3, #33554432 8022 0136 D2B2 uxtb r2, r2 8023 0138 3146 mov r1, r6 8024 013a 2046 mov r0, r4 8025 013c FFF7FEFF bl I2C_TransferConfig 8026 .LVL540: 3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8027 .loc 1 3743 7 view .LVU2801 3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8028 .loc 1 3743 7 view .LVU2802 8029 0140 0023 movs r3, #0 8030 0142 84F84030 strb r3, [r4, #64] 3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8031 .loc 1 3743 7 view .LVU2803 3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8032 .loc 1 3752 7 view .LVU2804 8033 0146 0121 movs r1, #1 8034 0148 2046 mov r0, r4 8035 014a FFF7FEFF bl I2C_Enable_IRQ 8036 .LVL541: 8037 .L500: 3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8038 .loc 1 3755 5 view .LVU2805 3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8039 .loc 1 3755 12 is_stmt 0 view .LVU2806 8040 014e 0020 movs r0, #0 8041 0150 00E0 b .L491 8042 .LVL542: 8043 .L501: 3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 309 8044 .loc 1 3759 12 view .LVU2807 8045 0152 0220 movs r0, #2 8046 .LVL543: 8047 .L491: 3761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8048 .loc 1 3761 1 view .LVU2808 8049 0154 02B0 add sp, sp, #8 8050 .LCFI97: 8051 .cfi_remember_state 8052 .cfi_def_cfa_offset 24 8053 @ sp needed 8054 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8055 .LVL544: 8056 .L502: 8057 .LCFI98: 8058 .cfi_restore_state 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8059 .loc 1 3620 5 view .LVU2809 8060 015a 0220 movs r0, #2 8061 015c FAE7 b .L491 8062 .L509: 8063 015e 00BF .align 2 8064 .L508: 8065 0160 00000000 .word I2C_Master_ISR_DMA 8066 0164 00000000 .word I2C_DMAMasterReceiveCplt 8067 0168 00000000 .word I2C_DMAError 8068 016c 00000000 .word I2C_Master_ISR_IT 8069 0170 00240080 .word -2147474432 8070 .cfi_endproc 8071 .LFE355: 8073 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8074 .align 1 8075 .global HAL_I2C_Slave_Seq_Transmit_IT 8076 .syntax unified 8077 .thumb 8078 .thumb_func 8080 HAL_I2C_Slave_Seq_Transmit_IT: 8081 .LVL545: 8082 .LFB356: 3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 8083 .loc 1 3775 1 is_stmt 1 view -0 8084 .cfi_startproc 8085 @ args = 0, pretend = 0, frame = 0 8086 @ frame_needed = 0, uses_anonymous_args = 0 3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 8087 .loc 1 3775 1 is_stmt 0 view .LVU2811 8088 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8089 .LCFI99: 8090 .cfi_def_cfa_offset 24 8091 .cfi_offset 3, -24 8092 .cfi_offset 4, -20 8093 .cfi_offset 5, -16 8094 .cfi_offset 6, -12 8095 .cfi_offset 7, -8 8096 .cfi_offset 14, -4 8097 0002 0446 mov r4, r0 3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 310 8098 .loc 1 3777 3 is_stmt 1 view .LVU2812 3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8099 .loc 1 3779 3 view .LVU2813 3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8100 .loc 1 3779 22 is_stmt 0 view .LVU2814 8101 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8102 .LVL546: 3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8103 .loc 1 3779 6 view .LVU2815 8104 0008 00F02800 and r0, r0, #40 8105 000c 2828 cmp r0, #40 8106 000e 5AD1 bne .L516 8107 0010 0F46 mov r7, r1 8108 0012 1646 mov r6, r2 8109 0014 1D46 mov r5, r3 3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8110 .loc 1 3781 5 is_stmt 1 view .LVU2816 3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8111 .loc 1 3781 8 is_stmt 0 view .LVU2817 8112 0016 01B1 cbz r1, .L512 3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8113 .loc 1 3781 25 discriminator 1 view .LVU2818 8114 0018 22B9 cbnz r2, .L513 8115 .L512: 3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8116 .loc 1 3783 7 is_stmt 1 view .LVU2819 3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8117 .loc 1 3783 23 is_stmt 0 view .LVU2820 8118 001a 4FF40073 mov r3, #512 8119 .LVL547: 3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8120 .loc 1 3783 23 view .LVU2821 8121 001e 6364 str r3, [r4, #68] 3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8122 .loc 1 3784 7 is_stmt 1 view .LVU2822 3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8123 .loc 1 3784 15 is_stmt 0 view .LVU2823 8124 0020 0120 movs r0, #1 8125 0022 51E0 b .L511 8126 .LVL548: 8127 .L513: 3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8128 .loc 1 3788 5 is_stmt 1 view .LVU2824 8129 0024 48F20101 movw r1, #32769 8130 .LVL549: 3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8131 .loc 1 3788 5 is_stmt 0 view .LVU2825 8132 0028 2046 mov r0, r4 8133 002a FFF7FEFF bl I2C_Disable_IRQ 8134 .LVL550: 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8135 .loc 1 3791 5 is_stmt 1 view .LVU2826 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8136 .loc 1 3791 5 view .LVU2827 8137 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8138 0032 012B cmp r3, #1 8139 0034 49D0 beq .L517 ARM GAS /tmp/ccbUHtu7.s page 311 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8140 .loc 1 3791 5 discriminator 2 view .LVU2828 8141 0036 0123 movs r3, #1 8142 0038 84F84030 strb r3, [r4, #64] 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8143 .loc 1 3791 5 discriminator 2 view .LVU2829 3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8144 .loc 1 3795 5 discriminator 2 view .LVU2830 3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8145 .loc 1 3795 13 is_stmt 0 discriminator 2 view .LVU2831 8146 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8147 0040 DBB2 uxtb r3, r3 3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8148 .loc 1 3795 8 discriminator 2 view .LVU2832 8149 0042 2A2B cmp r3, #42 8150 0044 24D0 beq .L519 8151 .L514: 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8152 .loc 1 3821 5 is_stmt 1 view .LVU2833 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8153 .loc 1 3821 21 is_stmt 0 view .LVU2834 8154 0046 2923 movs r3, #41 8155 0048 84F84130 strb r3, [r4, #65] 3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8156 .loc 1 3822 5 is_stmt 1 view .LVU2835 3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8157 .loc 1 3822 21 is_stmt 0 view .LVU2836 8158 004c 2023 movs r3, #32 8159 004e 84F84230 strb r3, [r4, #66] 3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8160 .loc 1 3823 5 is_stmt 1 view .LVU2837 3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8161 .loc 1 3823 21 is_stmt 0 view .LVU2838 8162 0052 0023 movs r3, #0 8163 0054 6364 str r3, [r4, #68] 3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8164 .loc 1 3826 5 is_stmt 1 view .LVU2839 3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8165 .loc 1 3826 9 is_stmt 0 view .LVU2840 8166 0056 2268 ldr r2, [r4] 3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8167 .loc 1 3826 19 view .LVU2841 8168 0058 5368 ldr r3, [r2, #4] 3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8169 .loc 1 3826 25 view .LVU2842 8170 005a 23F40043 bic r3, r3, #32768 8171 005e 5360 str r3, [r2, #4] 3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8172 .loc 1 3829 5 is_stmt 1 view .LVU2843 3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8173 .loc 1 3829 23 is_stmt 0 view .LVU2844 8174 0060 6762 str r7, [r4, #36] 3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8175 .loc 1 3830 5 is_stmt 1 view .LVU2845 3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8176 .loc 1 3830 23 is_stmt 0 view .LVU2846 8177 0062 6685 strh r6, [r4, #42] @ movhi ARM GAS /tmp/ccbUHtu7.s page 312 3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8178 .loc 1 3831 5 is_stmt 1 view .LVU2847 3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8179 .loc 1 3831 29 is_stmt 0 view .LVU2848 8180 0064 638D ldrh r3, [r4, #42] 3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8181 .loc 1 3831 23 view .LVU2849 8182 0066 2385 strh r3, [r4, #40] @ movhi 3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8183 .loc 1 3832 5 is_stmt 1 view .LVU2850 3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8184 .loc 1 3832 23 is_stmt 0 view .LVU2851 8185 0068 E562 str r5, [r4, #44] 3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8186 .loc 1 3833 5 is_stmt 1 view .LVU2852 3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8187 .loc 1 3833 23 is_stmt 0 view .LVU2853 8188 006a 194B ldr r3, .L520 8189 006c 6363 str r3, [r4, #52] 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8190 .loc 1 3835 5 is_stmt 1 view .LVU2854 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8191 .loc 1 3835 9 is_stmt 0 view .LVU2855 8192 006e 2368 ldr r3, [r4] 8193 0070 9A69 ldr r2, [r3, #24] 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8194 .loc 1 3835 8 view .LVU2856 8195 0072 12F4803F tst r2, #65536 8196 0076 01D0 beq .L515 3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8197 .loc 1 3839 7 is_stmt 1 view .LVU2857 8198 0078 0822 movs r2, #8 8199 007a DA61 str r2, [r3, #28] 8200 .L515: 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8201 .loc 1 3843 5 view .LVU2858 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8202 .loc 1 3843 5 view .LVU2859 8203 007c 0025 movs r5, #0 8204 .LVL551: 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8205 .loc 1 3843 5 is_stmt 0 view .LVU2860 8206 007e 84F84050 strb r5, [r4, #64] 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8207 .loc 1 3843 5 is_stmt 1 view .LVU2861 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8208 .loc 1 3849 5 view .LVU2862 8209 0082 48F20101 movw r1, #32769 8210 0086 2046 mov r0, r4 8211 0088 FFF7FEFF bl I2C_Enable_IRQ 8212 .LVL552: 3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8213 .loc 1 3851 5 view .LVU2863 3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8214 .loc 1 3851 12 is_stmt 0 view .LVU2864 8215 008c 2846 mov r0, r5 8216 008e 1BE0 b .L511 ARM GAS /tmp/ccbUHtu7.s page 313 8217 .LVL553: 8218 .L519: 3798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8219 .loc 1 3798 7 is_stmt 1 view .LVU2865 8220 0090 0221 movs r1, #2 8221 0092 2046 mov r0, r4 8222 0094 FFF7FEFF bl I2C_Disable_IRQ 8223 .LVL554: 3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8224 .loc 1 3801 7 view .LVU2866 3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8225 .loc 1 3801 16 is_stmt 0 view .LVU2867 8226 0098 2368 ldr r3, [r4] 3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8227 .loc 1 3801 26 view .LVU2868 8228 009a 1A68 ldr r2, [r3] 3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8229 .loc 1 3801 10 view .LVU2869 8230 009c 12F4004F tst r2, #32768 8231 00a0 D1D0 beq .L514 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8232 .loc 1 3803 9 is_stmt 1 view .LVU2870 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8233 .loc 1 3803 23 is_stmt 0 view .LVU2871 8234 00a2 1A68 ldr r2, [r3] 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8235 .loc 1 3803 29 view .LVU2872 8236 00a4 22F40042 bic r2, r2, #32768 8237 00a8 1A60 str r2, [r3] 3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8238 .loc 1 3805 9 is_stmt 1 view .LVU2873 3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8239 .loc 1 3805 17 is_stmt 0 view .LVU2874 8240 00aa E36B ldr r3, [r4, #60] 3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8241 .loc 1 3805 12 view .LVU2875 8242 00ac 002B cmp r3, #0 8243 00ae CAD0 beq .L514 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8244 .loc 1 3809 11 is_stmt 1 view .LVU2876 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8245 .loc 1 3809 43 is_stmt 0 view .LVU2877 8246 00b0 084A ldr r2, .L520+4 8247 00b2 9A63 str r2, [r3, #56] 3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8248 .loc 1 3812 11 is_stmt 1 view .LVU2878 3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8249 .loc 1 3812 15 is_stmt 0 view .LVU2879 8250 00b4 E06B ldr r0, [r4, #60] 8251 00b6 FFF7FEFF bl HAL_DMA_Abort_IT 8252 .LVL555: 3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8253 .loc 1 3812 14 view .LVU2880 8254 00ba 0028 cmp r0, #0 8255 00bc C3D0 beq .L514 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8256 .loc 1 3815 13 is_stmt 1 view .LVU2881 ARM GAS /tmp/ccbUHtu7.s page 314 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8257 .loc 1 3815 17 is_stmt 0 view .LVU2882 8258 00be E06B ldr r0, [r4, #60] 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8259 .loc 1 3815 25 view .LVU2883 8260 00c0 836B ldr r3, [r0, #56] 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8261 .loc 1 3815 13 view .LVU2884 8262 00c2 9847 blx r3 8263 .LVL556: 8264 00c4 BFE7 b .L514 8265 .LVL557: 8266 .L516: 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8267 .loc 1 3855 12 view .LVU2885 8268 00c6 0120 movs r0, #1 8269 .LVL558: 8270 .L511: 3857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8271 .loc 1 3857 1 view .LVU2886 8272 00c8 F8BD pop {r3, r4, r5, r6, r7, pc} 8273 .LVL559: 8274 .L517: 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8275 .loc 1 3791 5 view .LVU2887 8276 00ca 0220 movs r0, #2 8277 00cc FCE7 b .L511 8278 .L521: 8279 00ce 00BF .align 2 8280 .L520: 8281 00d0 00000000 .word I2C_Slave_ISR_IT 8282 00d4 00000000 .word I2C_DMAAbort 8283 .cfi_endproc 8284 .LFE356: 8286 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8287 .align 1 8288 .global HAL_I2C_Slave_Seq_Transmit_DMA 8289 .syntax unified 8290 .thumb 8291 .thumb_func 8293 HAL_I2C_Slave_Seq_Transmit_DMA: 8294 .LVL560: 8295 .LFB357: 3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8296 .loc 1 3871 1 is_stmt 1 view -0 8297 .cfi_startproc 8298 @ args = 0, pretend = 0, frame = 0 8299 @ frame_needed = 0, uses_anonymous_args = 0 3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8300 .loc 1 3871 1 is_stmt 0 view .LVU2889 8301 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8302 .LCFI100: 8303 .cfi_def_cfa_offset 24 8304 .cfi_offset 3, -24 8305 .cfi_offset 4, -20 8306 .cfi_offset 5, -16 8307 .cfi_offset 6, -12 ARM GAS /tmp/ccbUHtu7.s page 315 8308 .cfi_offset 7, -8 8309 .cfi_offset 14, -4 8310 0002 0446 mov r4, r0 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8311 .loc 1 3872 3 is_stmt 1 view .LVU2890 3875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8312 .loc 1 3875 3 view .LVU2891 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8313 .loc 1 3877 3 view .LVU2892 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8314 .loc 1 3877 22 is_stmt 0 view .LVU2893 8315 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8316 .LVL561: 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8317 .loc 1 3877 6 view .LVU2894 8318 0008 00F02800 and r0, r0, #40 8319 000c 2828 cmp r0, #40 8320 000e 40F0BB80 bne .L533 8321 0012 0F46 mov r7, r1 8322 0014 1646 mov r6, r2 8323 0016 1D46 mov r5, r3 3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8324 .loc 1 3879 5 is_stmt 1 view .LVU2895 3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8325 .loc 1 3879 8 is_stmt 0 view .LVU2896 8326 0018 0029 cmp r1, #0 8327 001a 51D0 beq .L524 3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8328 .loc 1 3879 25 discriminator 1 view .LVU2897 8329 001c 002A cmp r2, #0 8330 001e 4FD0 beq .L524 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8331 .loc 1 3886 5 is_stmt 1 view .LVU2898 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8332 .loc 1 3886 5 view .LVU2899 8333 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8334 .LVL562: 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8335 .loc 1 3886 5 is_stmt 0 view .LVU2900 8336 0024 012B cmp r3, #1 8337 0026 00F0B280 beq .L534 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8338 .loc 1 3886 5 is_stmt 1 discriminator 2 view .LVU2901 8339 002a 0123 movs r3, #1 8340 002c 84F84030 strb r3, [r4, #64] 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8341 .loc 1 3886 5 discriminator 2 view .LVU2902 3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8342 .loc 1 3889 5 discriminator 2 view .LVU2903 8343 0030 48F20101 movw r1, #32769 8344 .LVL563: 3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8345 .loc 1 3889 5 is_stmt 0 discriminator 2 view .LVU2904 8346 0034 2046 mov r0, r4 8347 0036 FFF7FEFF bl I2C_Disable_IRQ 8348 .LVL564: 3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 316 8349 .loc 1 3893 5 is_stmt 1 discriminator 2 view .LVU2905 3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8350 .loc 1 3893 13 is_stmt 0 discriminator 2 view .LVU2906 8351 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8352 003e DBB2 uxtb r3, r3 3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8353 .loc 1 3893 8 discriminator 2 view .LVU2907 8354 0040 2A2B cmp r3, #42 8355 0042 42D0 beq .L537 3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8356 .loc 1 3918 10 is_stmt 1 view .LVU2908 3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8357 .loc 1 3918 18 is_stmt 0 view .LVU2909 8358 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8359 0048 DBB2 uxtb r3, r3 3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8360 .loc 1 3918 13 view .LVU2910 8361 004a 292B cmp r3, #41 8362 004c 59D0 beq .L538 8363 .L527: 3943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8364 .loc 1 3943 5 is_stmt 1 view .LVU2911 3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8365 .loc 1 3945 5 view .LVU2912 3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8366 .loc 1 3945 21 is_stmt 0 view .LVU2913 8367 004e 2923 movs r3, #41 8368 0050 84F84130 strb r3, [r4, #65] 3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8369 .loc 1 3946 5 is_stmt 1 view .LVU2914 3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8370 .loc 1 3946 21 is_stmt 0 view .LVU2915 8371 0054 2023 movs r3, #32 8372 0056 84F84230 strb r3, [r4, #66] 3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8373 .loc 1 3947 5 is_stmt 1 view .LVU2916 3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8374 .loc 1 3947 21 is_stmt 0 view .LVU2917 8375 005a 0023 movs r3, #0 8376 005c 6364 str r3, [r4, #68] 3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8377 .loc 1 3950 5 is_stmt 1 view .LVU2918 3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8378 .loc 1 3950 9 is_stmt 0 view .LVU2919 8379 005e 2268 ldr r2, [r4] 3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8380 .loc 1 3950 19 view .LVU2920 8381 0060 5368 ldr r3, [r2, #4] 3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8382 .loc 1 3950 25 view .LVU2921 8383 0062 23F40043 bic r3, r3, #32768 8384 0066 5360 str r3, [r2, #4] 3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8385 .loc 1 3953 5 is_stmt 1 view .LVU2922 3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8386 .loc 1 3953 23 is_stmt 0 view .LVU2923 8387 0068 6762 str r7, [r4, #36] ARM GAS /tmp/ccbUHtu7.s page 317 3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8388 .loc 1 3954 5 is_stmt 1 view .LVU2924 3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8389 .loc 1 3954 23 is_stmt 0 view .LVU2925 8390 006a 6685 strh r6, [r4, #42] @ movhi 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8391 .loc 1 3955 5 is_stmt 1 view .LVU2926 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8392 .loc 1 3955 29 is_stmt 0 view .LVU2927 8393 006c 638D ldrh r3, [r4, #42] 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8394 .loc 1 3955 23 view .LVU2928 8395 006e 2385 strh r3, [r4, #40] @ movhi 3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8396 .loc 1 3956 5 is_stmt 1 view .LVU2929 3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8397 .loc 1 3956 23 is_stmt 0 view .LVU2930 8398 0070 E562 str r5, [r4, #44] 3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8399 .loc 1 3957 5 is_stmt 1 view .LVU2931 3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8400 .loc 1 3957 23 is_stmt 0 view .LVU2932 8401 0072 484B ldr r3, .L539 8402 0074 6363 str r3, [r4, #52] 3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8403 .loc 1 3959 5 is_stmt 1 view .LVU2933 3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8404 .loc 1 3959 13 is_stmt 0 view .LVU2934 8405 0076 A36B ldr r3, [r4, #56] 3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8406 .loc 1 3959 8 view .LVU2935 8407 0078 002B cmp r3, #0 8408 007a 59D0 beq .L528 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8409 .loc 1 3962 7 is_stmt 1 view .LVU2936 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8410 .loc 1 3962 38 is_stmt 0 view .LVU2937 8411 007c 464A ldr r2, .L539+4 8412 007e DA62 str r2, [r3, #44] 3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8413 .loc 1 3965 7 is_stmt 1 view .LVU2938 3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8414 .loc 1 3965 11 is_stmt 0 view .LVU2939 8415 0080 A36B ldr r3, [r4, #56] 3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8416 .loc 1 3965 39 view .LVU2940 8417 0082 464A ldr r2, .L539+8 8418 0084 5A63 str r2, [r3, #52] 3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8419 .loc 1 3968 7 is_stmt 1 view .LVU2941 3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8420 .loc 1 3968 11 is_stmt 0 view .LVU2942 8421 0086 A26B ldr r2, [r4, #56] 3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8422 .loc 1 3968 42 view .LVU2943 8423 0088 0023 movs r3, #0 8424 008a 1363 str r3, [r2, #48] ARM GAS /tmp/ccbUHtu7.s page 318 3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8425 .loc 1 3969 7 is_stmt 1 view .LVU2944 3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8426 .loc 1 3969 11 is_stmt 0 view .LVU2945 8427 008c A26B ldr r2, [r4, #56] 3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8428 .loc 1 3969 39 view .LVU2946 8429 008e 9363 str r3, [r2, #56] 3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8430 .loc 1 3972 7 is_stmt 1 view .LVU2947 3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8431 .loc 1 3972 86 is_stmt 0 view .LVU2948 8432 0090 2268 ldr r2, [r4] 3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8433 .loc 1 3972 23 view .LVU2949 8434 0092 238D ldrh r3, [r4, #40] 8435 0094 2832 adds r2, r2, #40 8436 0096 3946 mov r1, r7 8437 0098 A06B ldr r0, [r4, #56] 8438 009a FFF7FEFF bl HAL_DMA_Start_IT 8439 .LVL565: 3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8440 .loc 1 3990 5 is_stmt 1 view .LVU2950 3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8441 .loc 1 3990 8 is_stmt 0 view .LVU2951 8442 009e 0546 mov r5, r0 8443 .LVL566: 3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8444 .loc 1 3990 8 view .LVU2952 8445 00a0 0028 cmp r0, #0 8446 00a2 53D0 beq .L529 4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8447 .loc 1 4001 7 is_stmt 1 view .LVU2953 4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8448 .loc 1 4001 23 is_stmt 0 view .LVU2954 8449 00a4 2823 movs r3, #40 8450 00a6 84F84130 strb r3, [r4, #65] 4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8451 .loc 1 4002 7 is_stmt 1 view .LVU2955 4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8452 .loc 1 4002 23 is_stmt 0 view .LVU2956 8453 00aa 0022 movs r2, #0 8454 00ac 84F84220 strb r2, [r4, #66] 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8455 .loc 1 4005 7 is_stmt 1 view .LVU2957 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8456 .loc 1 4005 11 is_stmt 0 view .LVU2958 8457 00b0 636C ldr r3, [r4, #68] 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8458 .loc 1 4005 23 view .LVU2959 8459 00b2 43F01003 orr r3, r3, #16 8460 00b6 6364 str r3, [r4, #68] 4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8461 .loc 1 4008 7 is_stmt 1 view .LVU2960 4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8462 .loc 1 4008 7 view .LVU2961 8463 00b8 84F84020 strb r2, [r4, #64] ARM GAS /tmp/ccbUHtu7.s page 319 4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8464 .loc 1 4008 7 view .LVU2962 4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8465 .loc 1 4010 7 view .LVU2963 4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8466 .loc 1 4010 14 is_stmt 0 view .LVU2964 8467 00bc 0125 movs r5, #1 8468 00be 64E0 b .L523 8469 .LVL567: 8470 .L524: 3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8471 .loc 1 3881 7 is_stmt 1 view .LVU2965 3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8472 .loc 1 3881 23 is_stmt 0 view .LVU2966 8473 00c0 4FF40073 mov r3, #512 8474 .LVL568: 3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8475 .loc 1 3881 23 view .LVU2967 8476 00c4 6364 str r3, [r4, #68] 3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8477 .loc 1 3882 7 is_stmt 1 view .LVU2968 3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8478 .loc 1 3882 15 is_stmt 0 view .LVU2969 8479 00c6 0125 movs r5, #1 8480 .LVL569: 3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8481 .loc 1 3882 15 view .LVU2970 8482 00c8 5FE0 b .L523 8483 .LVL570: 8484 .L537: 3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8485 .loc 1 3896 7 is_stmt 1 view .LVU2971 8486 00ca 0221 movs r1, #2 8487 00cc 2046 mov r0, r4 8488 00ce FFF7FEFF bl I2C_Disable_IRQ 8489 .LVL571: 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8490 .loc 1 3898 7 view .LVU2972 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8491 .loc 1 3898 16 is_stmt 0 view .LVU2973 8492 00d2 2368 ldr r3, [r4] 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8493 .loc 1 3898 26 view .LVU2974 8494 00d4 1A68 ldr r2, [r3] 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8495 .loc 1 3898 10 view .LVU2975 8496 00d6 12F4004F tst r2, #32768 8497 00da B8D0 beq .L527 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8498 .loc 1 3901 9 is_stmt 1 view .LVU2976 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8499 .loc 1 3901 17 is_stmt 0 view .LVU2977 8500 00dc E26B ldr r2, [r4, #60] 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8501 .loc 1 3901 12 view .LVU2978 8502 00de 002A cmp r2, #0 8503 00e0 B5D0 beq .L527 ARM GAS /tmp/ccbUHtu7.s page 320 3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8504 .loc 1 3903 11 is_stmt 1 view .LVU2979 3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8505 .loc 1 3903 25 is_stmt 0 view .LVU2980 8506 00e2 1A68 ldr r2, [r3] 3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8507 .loc 1 3903 31 view .LVU2981 8508 00e4 22F40042 bic r2, r2, #32768 8509 00e8 1A60 str r2, [r3] 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8510 .loc 1 3907 11 is_stmt 1 view .LVU2982 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8511 .loc 1 3907 15 is_stmt 0 view .LVU2983 8512 00ea E36B ldr r3, [r4, #60] 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8513 .loc 1 3907 43 view .LVU2984 8514 00ec 2C4A ldr r2, .L539+12 8515 00ee 9A63 str r2, [r3, #56] 3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8516 .loc 1 3910 11 is_stmt 1 view .LVU2985 3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8517 .loc 1 3910 15 is_stmt 0 view .LVU2986 8518 00f0 E06B ldr r0, [r4, #60] 8519 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 8520 .LVL572: 3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8521 .loc 1 3910 14 view .LVU2987 8522 00f6 0028 cmp r0, #0 8523 00f8 A9D0 beq .L527 3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8524 .loc 1 3913 13 is_stmt 1 view .LVU2988 3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8525 .loc 1 3913 17 is_stmt 0 view .LVU2989 8526 00fa E06B ldr r0, [r4, #60] 3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8527 .loc 1 3913 25 view .LVU2990 8528 00fc 836B ldr r3, [r0, #56] 3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8529 .loc 1 3913 13 view .LVU2991 8530 00fe 9847 blx r3 8531 .LVL573: 8532 0100 A5E7 b .L527 8533 .L538: 3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8534 .loc 1 3920 7 is_stmt 1 view .LVU2992 3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8535 .loc 1 3920 16 is_stmt 0 view .LVU2993 8536 0102 2368 ldr r3, [r4] 3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8537 .loc 1 3920 26 view .LVU2994 8538 0104 1A68 ldr r2, [r3] 3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8539 .loc 1 3920 10 view .LVU2995 8540 0106 12F4804F tst r2, #16384 8541 010a A0D0 beq .L527 3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8542 .loc 1 3922 9 is_stmt 1 view .LVU2996 ARM GAS /tmp/ccbUHtu7.s page 321 3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8543 .loc 1 3922 23 is_stmt 0 view .LVU2997 8544 010c 1A68 ldr r2, [r3] 3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8545 .loc 1 3922 29 view .LVU2998 8546 010e 22F48042 bic r2, r2, #16384 8547 0112 1A60 str r2, [r3] 3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8548 .loc 1 3925 9 is_stmt 1 view .LVU2999 3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8549 .loc 1 3925 17 is_stmt 0 view .LVU3000 8550 0114 A36B ldr r3, [r4, #56] 3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8551 .loc 1 3925 12 view .LVU3001 8552 0116 002B cmp r3, #0 8553 0118 99D0 beq .L527 3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8554 .loc 1 3929 11 is_stmt 1 view .LVU3002 3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8555 .loc 1 3929 43 is_stmt 0 view .LVU3003 8556 011a 214A ldr r2, .L539+12 8557 011c 9A63 str r2, [r3, #56] 3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8558 .loc 1 3932 11 is_stmt 1 view .LVU3004 3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8559 .loc 1 3932 15 is_stmt 0 view .LVU3005 8560 011e A06B ldr r0, [r4, #56] 8561 0120 FFF7FEFF bl HAL_DMA_Abort_IT 8562 .LVL574: 3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8563 .loc 1 3932 14 view .LVU3006 8564 0124 0028 cmp r0, #0 8565 0126 92D0 beq .L527 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8566 .loc 1 3935 13 is_stmt 1 view .LVU3007 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8567 .loc 1 3935 17 is_stmt 0 view .LVU3008 8568 0128 A06B ldr r0, [r4, #56] 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8569 .loc 1 3935 25 view .LVU3009 8570 012a 836B ldr r3, [r0, #56] 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8571 .loc 1 3935 13 view .LVU3010 8572 012c 9847 blx r3 8573 .LVL575: 8574 012e 8EE7 b .L527 8575 .L528: 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8576 .loc 1 3978 7 is_stmt 1 view .LVU3011 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8577 .loc 1 3978 23 is_stmt 0 view .LVU3012 8578 0130 2823 movs r3, #40 8579 0132 84F84130 strb r3, [r4, #65] 3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8580 .loc 1 3979 7 is_stmt 1 view .LVU3013 3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8581 .loc 1 3979 23 is_stmt 0 view .LVU3014 ARM GAS /tmp/ccbUHtu7.s page 322 8582 0136 0022 movs r2, #0 8583 0138 84F84220 strb r2, [r4, #66] 3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8584 .loc 1 3982 7 is_stmt 1 view .LVU3015 3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8585 .loc 1 3982 11 is_stmt 0 view .LVU3016 8586 013c 636C ldr r3, [r4, #68] 3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8587 .loc 1 3982 23 view .LVU3017 8588 013e 43F08003 orr r3, r3, #128 8589 0142 6364 str r3, [r4, #68] 3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8590 .loc 1 3985 7 is_stmt 1 view .LVU3018 3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8591 .loc 1 3985 7 view .LVU3019 8592 0144 84F84020 strb r2, [r4, #64] 3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8593 .loc 1 3985 7 view .LVU3020 3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8594 .loc 1 3987 7 view .LVU3021 3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8595 .loc 1 3987 14 is_stmt 0 view .LVU3022 8596 0148 0125 movs r5, #1 8597 .LVL576: 3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8598 .loc 1 3987 14 view .LVU3023 8599 014a 1EE0 b .L523 8600 .LVL577: 8601 .L529: 3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8602 .loc 1 3993 7 is_stmt 1 view .LVU3024 3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8603 .loc 1 3993 11 is_stmt 0 view .LVU3025 8604 014c 638D ldrh r3, [r4, #42] 8605 014e 9BB2 uxth r3, r3 3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8606 .loc 1 3993 30 view .LVU3026 8607 0150 228D ldrh r2, [r4, #40] 3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8608 .loc 1 3993 23 view .LVU3027 8609 0152 9B1A subs r3, r3, r2 8610 0154 9BB2 uxth r3, r3 8611 0156 6385 strh r3, [r4, #42] @ movhi 3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8612 .loc 1 3996 7 is_stmt 1 view .LVU3028 3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8613 .loc 1 3996 22 is_stmt 0 view .LVU3029 8614 0158 0023 movs r3, #0 8615 015a 2385 strh r3, [r4, #40] @ movhi 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8616 .loc 1 4013 5 is_stmt 1 view .LVU3030 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8617 .loc 1 4013 9 is_stmt 0 view .LVU3031 8618 015c 2368 ldr r3, [r4] 8619 015e 9A69 ldr r2, [r3, #24] 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8620 .loc 1 4013 8 view .LVU3032 ARM GAS /tmp/ccbUHtu7.s page 323 8621 0160 12F4803F tst r2, #65536 8622 0164 0DD1 bne .L531 8623 .L532: 4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8624 .loc 1 4021 5 is_stmt 1 view .LVU3033 4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8625 .loc 1 4021 5 view .LVU3034 8626 0166 0023 movs r3, #0 8627 0168 84F84030 strb r3, [r4, #64] 4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8628 .loc 1 4021 5 view .LVU3035 4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8629 .loc 1 4024 5 view .LVU3036 4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8630 .loc 1 4024 9 is_stmt 0 view .LVU3037 8631 016c 2268 ldr r2, [r4] 4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8632 .loc 1 4024 19 view .LVU3038 8633 016e 1368 ldr r3, [r2] 4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8634 .loc 1 4024 25 view .LVU3039 8635 0170 43F48043 orr r3, r3, #16384 8636 0174 1360 str r3, [r2] 4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8637 .loc 1 4030 5 is_stmt 1 view .LVU3040 8638 0176 4FF40041 mov r1, #32768 8639 017a 2046 mov r0, r4 8640 .LVL578: 4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8641 .loc 1 4030 5 is_stmt 0 view .LVU3041 8642 017c FFF7FEFF bl I2C_Enable_IRQ 8643 .LVL579: 4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8644 .loc 1 4032 5 is_stmt 1 view .LVU3042 4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8645 .loc 1 4032 12 is_stmt 0 view .LVU3043 8646 0180 03E0 b .L523 8647 .LVL580: 8648 .L531: 4017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8649 .loc 1 4017 7 is_stmt 1 view .LVU3044 8650 0182 0822 movs r2, #8 8651 0184 DA61 str r2, [r3, #28] 8652 0186 EEE7 b .L532 8653 .LVL581: 8654 .L533: 4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8655 .loc 1 4036 12 is_stmt 0 view .LVU3045 8656 0188 0125 movs r5, #1 8657 .LVL582: 8658 .L523: 4038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8659 .loc 1 4038 1 view .LVU3046 8660 018a 2846 mov r0, r5 8661 018c F8BD pop {r3, r4, r5, r6, r7, pc} 8662 .LVL583: 8663 .L534: ARM GAS /tmp/ccbUHtu7.s page 324 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8664 .loc 1 3886 5 view .LVU3047 8665 018e 0225 movs r5, #2 8666 .LVL584: 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8667 .loc 1 3886 5 view .LVU3048 8668 0190 FBE7 b .L523 8669 .L540: 8670 0192 00BF .align 2 8671 .L539: 8672 0194 00000000 .word I2C_Slave_ISR_DMA 8673 0198 00000000 .word I2C_DMASlaveTransmitCplt 8674 019c 00000000 .word I2C_DMAError 8675 01a0 00000000 .word I2C_DMAAbort 8676 .cfi_endproc 8677 .LFE357: 8679 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 8680 .align 1 8681 .global HAL_I2C_Slave_Seq_Receive_IT 8682 .syntax unified 8683 .thumb 8684 .thumb_func 8686 HAL_I2C_Slave_Seq_Receive_IT: 8687 .LVL585: 8688 .LFB358: 4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 8689 .loc 1 4052 1 is_stmt 1 view -0 8690 .cfi_startproc 8691 @ args = 0, pretend = 0, frame = 0 8692 @ frame_needed = 0, uses_anonymous_args = 0 4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 8693 .loc 1 4052 1 is_stmt 0 view .LVU3050 8694 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8695 .LCFI101: 8696 .cfi_def_cfa_offset 24 8697 .cfi_offset 3, -24 8698 .cfi_offset 4, -20 8699 .cfi_offset 5, -16 8700 .cfi_offset 6, -12 8701 .cfi_offset 7, -8 8702 .cfi_offset 14, -4 8703 0002 0446 mov r4, r0 4054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8704 .loc 1 4054 3 is_stmt 1 view .LVU3051 4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8705 .loc 1 4056 3 view .LVU3052 4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8706 .loc 1 4056 22 is_stmt 0 view .LVU3053 8707 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8708 .LVL586: 4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8709 .loc 1 4056 6 view .LVU3054 8710 0008 00F02800 and r0, r0, #40 8711 000c 2828 cmp r0, #40 8712 000e 5AD1 bne .L547 8713 0010 0F46 mov r7, r1 8714 0012 1646 mov r6, r2 ARM GAS /tmp/ccbUHtu7.s page 325 8715 0014 1D46 mov r5, r3 4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8716 .loc 1 4058 5 is_stmt 1 view .LVU3055 4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8717 .loc 1 4058 8 is_stmt 0 view .LVU3056 8718 0016 01B1 cbz r1, .L543 4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8719 .loc 1 4058 25 discriminator 1 view .LVU3057 8720 0018 22B9 cbnz r2, .L544 8721 .L543: 4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8722 .loc 1 4060 7 is_stmt 1 view .LVU3058 4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8723 .loc 1 4060 23 is_stmt 0 view .LVU3059 8724 001a 4FF40073 mov r3, #512 8725 .LVL587: 4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8726 .loc 1 4060 23 view .LVU3060 8727 001e 6364 str r3, [r4, #68] 4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8728 .loc 1 4061 7 is_stmt 1 view .LVU3061 4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8729 .loc 1 4061 15 is_stmt 0 view .LVU3062 8730 0020 0120 movs r0, #1 8731 0022 51E0 b .L542 8732 .LVL588: 8733 .L544: 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8734 .loc 1 4065 5 is_stmt 1 view .LVU3063 8735 0024 48F20201 movw r1, #32770 8736 .LVL589: 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8737 .loc 1 4065 5 is_stmt 0 view .LVU3064 8738 0028 2046 mov r0, r4 8739 002a FFF7FEFF bl I2C_Disable_IRQ 8740 .LVL590: 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8741 .loc 1 4068 5 is_stmt 1 view .LVU3065 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8742 .loc 1 4068 5 view .LVU3066 8743 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8744 0032 012B cmp r3, #1 8745 0034 49D0 beq .L548 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8746 .loc 1 4068 5 discriminator 2 view .LVU3067 8747 0036 0123 movs r3, #1 8748 0038 84F84030 strb r3, [r4, #64] 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8749 .loc 1 4068 5 discriminator 2 view .LVU3068 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8750 .loc 1 4072 5 discriminator 2 view .LVU3069 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8751 .loc 1 4072 13 is_stmt 0 discriminator 2 view .LVU3070 8752 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8753 0040 DBB2 uxtb r3, r3 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8754 .loc 1 4072 8 discriminator 2 view .LVU3071 ARM GAS /tmp/ccbUHtu7.s page 326 8755 0042 292B cmp r3, #41 8756 0044 24D0 beq .L550 8757 .L545: 4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8758 .loc 1 4098 5 is_stmt 1 view .LVU3072 4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8759 .loc 1 4098 21 is_stmt 0 view .LVU3073 8760 0046 2A23 movs r3, #42 8761 0048 84F84130 strb r3, [r4, #65] 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8762 .loc 1 4099 5 is_stmt 1 view .LVU3074 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8763 .loc 1 4099 21 is_stmt 0 view .LVU3075 8764 004c 2023 movs r3, #32 8765 004e 84F84230 strb r3, [r4, #66] 4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8766 .loc 1 4100 5 is_stmt 1 view .LVU3076 4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8767 .loc 1 4100 21 is_stmt 0 view .LVU3077 8768 0052 0023 movs r3, #0 8769 0054 6364 str r3, [r4, #68] 4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8770 .loc 1 4103 5 is_stmt 1 view .LVU3078 4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8771 .loc 1 4103 9 is_stmt 0 view .LVU3079 8772 0056 2268 ldr r2, [r4] 4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8773 .loc 1 4103 19 view .LVU3080 8774 0058 5368 ldr r3, [r2, #4] 4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8775 .loc 1 4103 25 view .LVU3081 8776 005a 23F40043 bic r3, r3, #32768 8777 005e 5360 str r3, [r2, #4] 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8778 .loc 1 4106 5 is_stmt 1 view .LVU3082 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8779 .loc 1 4106 23 is_stmt 0 view .LVU3083 8780 0060 6762 str r7, [r4, #36] 4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8781 .loc 1 4107 5 is_stmt 1 view .LVU3084 4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8782 .loc 1 4107 23 is_stmt 0 view .LVU3085 8783 0062 6685 strh r6, [r4, #42] @ movhi 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8784 .loc 1 4108 5 is_stmt 1 view .LVU3086 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8785 .loc 1 4108 29 is_stmt 0 view .LVU3087 8786 0064 638D ldrh r3, [r4, #42] 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8787 .loc 1 4108 23 view .LVU3088 8788 0066 2385 strh r3, [r4, #40] @ movhi 4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8789 .loc 1 4109 5 is_stmt 1 view .LVU3089 4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8790 .loc 1 4109 23 is_stmt 0 view .LVU3090 8791 0068 E562 str r5, [r4, #44] 4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 327 8792 .loc 1 4110 5 is_stmt 1 view .LVU3091 4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8793 .loc 1 4110 23 is_stmt 0 view .LVU3092 8794 006a 194B ldr r3, .L551 8795 006c 6363 str r3, [r4, #52] 4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8796 .loc 1 4112 5 is_stmt 1 view .LVU3093 4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8797 .loc 1 4112 9 is_stmt 0 view .LVU3094 8798 006e 2368 ldr r3, [r4] 8799 0070 9A69 ldr r2, [r3, #24] 4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8800 .loc 1 4112 8 view .LVU3095 8801 0072 12F4803F tst r2, #65536 8802 0076 01D1 bne .L546 4116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8803 .loc 1 4116 7 is_stmt 1 view .LVU3096 8804 0078 0822 movs r2, #8 8805 007a DA61 str r2, [r3, #28] 8806 .L546: 4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8807 .loc 1 4120 5 view .LVU3097 4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8808 .loc 1 4120 5 view .LVU3098 8809 007c 0025 movs r5, #0 8810 .LVL591: 4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8811 .loc 1 4120 5 is_stmt 0 view .LVU3099 8812 007e 84F84050 strb r5, [r4, #64] 4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8813 .loc 1 4120 5 is_stmt 1 view .LVU3100 4126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8814 .loc 1 4126 5 view .LVU3101 8815 0082 48F20201 movw r1, #32770 8816 0086 2046 mov r0, r4 8817 0088 FFF7FEFF bl I2C_Enable_IRQ 8818 .LVL592: 4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8819 .loc 1 4128 5 view .LVU3102 4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8820 .loc 1 4128 12 is_stmt 0 view .LVU3103 8821 008c 2846 mov r0, r5 8822 008e 1BE0 b .L542 8823 .LVL593: 8824 .L550: 4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8825 .loc 1 4075 7 is_stmt 1 view .LVU3104 8826 0090 0121 movs r1, #1 8827 0092 2046 mov r0, r4 8828 0094 FFF7FEFF bl I2C_Disable_IRQ 8829 .LVL594: 4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8830 .loc 1 4077 7 view .LVU3105 4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8831 .loc 1 4077 16 is_stmt 0 view .LVU3106 8832 0098 2368 ldr r3, [r4] 4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 328 8833 .loc 1 4077 26 view .LVU3107 8834 009a 1A68 ldr r2, [r3] 4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8835 .loc 1 4077 10 view .LVU3108 8836 009c 12F4804F tst r2, #16384 8837 00a0 D1D0 beq .L545 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8838 .loc 1 4079 9 is_stmt 1 view .LVU3109 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8839 .loc 1 4079 23 is_stmt 0 view .LVU3110 8840 00a2 1A68 ldr r2, [r3] 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8841 .loc 1 4079 29 view .LVU3111 8842 00a4 22F48042 bic r2, r2, #16384 8843 00a8 1A60 str r2, [r3] 4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8844 .loc 1 4082 9 is_stmt 1 view .LVU3112 4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8845 .loc 1 4082 17 is_stmt 0 view .LVU3113 8846 00aa A36B ldr r3, [r4, #56] 4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8847 .loc 1 4082 12 view .LVU3114 8848 00ac 002B cmp r3, #0 8849 00ae CAD0 beq .L545 4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8850 .loc 1 4086 11 is_stmt 1 view .LVU3115 4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8851 .loc 1 4086 43 is_stmt 0 view .LVU3116 8852 00b0 084A ldr r2, .L551+4 8853 00b2 9A63 str r2, [r3, #56] 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8854 .loc 1 4089 11 is_stmt 1 view .LVU3117 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8855 .loc 1 4089 15 is_stmt 0 view .LVU3118 8856 00b4 A06B ldr r0, [r4, #56] 8857 00b6 FFF7FEFF bl HAL_DMA_Abort_IT 8858 .LVL595: 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8859 .loc 1 4089 14 view .LVU3119 8860 00ba 0028 cmp r0, #0 8861 00bc C3D0 beq .L545 4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8862 .loc 1 4092 13 is_stmt 1 view .LVU3120 4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8863 .loc 1 4092 17 is_stmt 0 view .LVU3121 8864 00be A06B ldr r0, [r4, #56] 4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8865 .loc 1 4092 25 view .LVU3122 8866 00c0 836B ldr r3, [r0, #56] 4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8867 .loc 1 4092 13 view .LVU3123 8868 00c2 9847 blx r3 8869 .LVL596: 8870 00c4 BFE7 b .L545 8871 .LVL597: 8872 .L547: 4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 329 8873 .loc 1 4132 12 view .LVU3124 8874 00c6 0120 movs r0, #1 8875 .LVL598: 8876 .L542: 4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8877 .loc 1 4134 1 view .LVU3125 8878 00c8 F8BD pop {r3, r4, r5, r6, r7, pc} 8879 .LVL599: 8880 .L548: 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8881 .loc 1 4068 5 view .LVU3126 8882 00ca 0220 movs r0, #2 8883 00cc FCE7 b .L542 8884 .L552: 8885 00ce 00BF .align 2 8886 .L551: 8887 00d0 00000000 .word I2C_Slave_ISR_IT 8888 00d4 00000000 .word I2C_DMAAbort 8889 .cfi_endproc 8890 .LFE358: 8892 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 8893 .align 1 8894 .global HAL_I2C_Slave_Seq_Receive_DMA 8895 .syntax unified 8896 .thumb 8897 .thumb_func 8899 HAL_I2C_Slave_Seq_Receive_DMA: 8900 .LVL600: 8901 .LFB359: 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8902 .loc 1 4148 1 is_stmt 1 view -0 8903 .cfi_startproc 8904 @ args = 0, pretend = 0, frame = 0 8905 @ frame_needed = 0, uses_anonymous_args = 0 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8906 .loc 1 4148 1 is_stmt 0 view .LVU3128 8907 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8908 .LCFI102: 8909 .cfi_def_cfa_offset 24 8910 .cfi_offset 3, -24 8911 .cfi_offset 4, -20 8912 .cfi_offset 5, -16 8913 .cfi_offset 6, -12 8914 .cfi_offset 7, -8 8915 .cfi_offset 14, -4 8916 0002 0446 mov r4, r0 4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8917 .loc 1 4149 3 is_stmt 1 view .LVU3129 4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8918 .loc 1 4152 3 view .LVU3130 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8919 .loc 1 4154 3 view .LVU3131 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8920 .loc 1 4154 22 is_stmt 0 view .LVU3132 8921 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8922 .LVL601: 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 330 8923 .loc 1 4154 6 view .LVU3133 8924 0008 00F02800 and r0, r0, #40 8925 000c 2828 cmp r0, #40 8926 000e 40F0B980 bne .L564 8927 0012 0F46 mov r7, r1 8928 0014 1646 mov r6, r2 8929 0016 1D46 mov r5, r3 4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8930 .loc 1 4156 5 is_stmt 1 view .LVU3134 4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8931 .loc 1 4156 8 is_stmt 0 view .LVU3135 8932 0018 01B1 cbz r1, .L555 4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8933 .loc 1 4156 25 discriminator 1 view .LVU3136 8934 001a 22B9 cbnz r2, .L556 8935 .L555: 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8936 .loc 1 4158 7 is_stmt 1 view .LVU3137 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8937 .loc 1 4158 23 is_stmt 0 view .LVU3138 8938 001c 4FF40073 mov r3, #512 8939 .LVL602: 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8940 .loc 1 4158 23 view .LVU3139 8941 0020 6364 str r3, [r4, #68] 4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8942 .loc 1 4159 7 is_stmt 1 view .LVU3140 4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8943 .loc 1 4159 15 is_stmt 0 view .LVU3141 8944 0022 0125 movs r5, #1 8945 .LVL603: 4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8946 .loc 1 4159 15 view .LVU3142 8947 0024 AFE0 b .L554 8948 .LVL604: 8949 .L556: 4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8950 .loc 1 4163 5 is_stmt 1 view .LVU3143 8951 0026 48F20201 movw r1, #32770 8952 .LVL605: 4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8953 .loc 1 4163 5 is_stmt 0 view .LVU3144 8954 002a 2046 mov r0, r4 8955 002c FFF7FEFF bl I2C_Disable_IRQ 8956 .LVL606: 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8957 .loc 1 4166 5 is_stmt 1 view .LVU3145 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8958 .loc 1 4166 5 view .LVU3146 8959 0030 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8960 0034 012B cmp r3, #1 8961 0036 00F0A880 beq .L565 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8962 .loc 1 4166 5 discriminator 2 view .LVU3147 8963 003a 0123 movs r3, #1 8964 003c 84F84030 strb r3, [r4, #64] 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 331 8965 .loc 1 4166 5 discriminator 2 view .LVU3148 4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8966 .loc 1 4170 5 discriminator 2 view .LVU3149 4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8967 .loc 1 4170 13 is_stmt 0 discriminator 2 view .LVU3150 8968 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8969 0044 DBB2 uxtb r3, r3 4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8970 .loc 1 4170 8 discriminator 2 view .LVU3151 8971 0046 292B cmp r3, #41 8972 0048 3DD0 beq .L568 4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8973 .loc 1 4195 10 is_stmt 1 view .LVU3152 4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8974 .loc 1 4195 18 is_stmt 0 view .LVU3153 8975 004a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8976 004e DBB2 uxtb r3, r3 4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8977 .loc 1 4195 13 view .LVU3154 8978 0050 2A2B cmp r3, #42 8979 0052 54D0 beq .L569 8980 .L558: 4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8981 .loc 1 4220 5 is_stmt 1 view .LVU3155 4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8982 .loc 1 4222 5 view .LVU3156 4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8983 .loc 1 4222 21 is_stmt 0 view .LVU3157 8984 0054 2A23 movs r3, #42 8985 0056 84F84130 strb r3, [r4, #65] 4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8986 .loc 1 4223 5 is_stmt 1 view .LVU3158 4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8987 .loc 1 4223 21 is_stmt 0 view .LVU3159 8988 005a 2023 movs r3, #32 8989 005c 84F84230 strb r3, [r4, #66] 4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8990 .loc 1 4224 5 is_stmt 1 view .LVU3160 4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8991 .loc 1 4224 21 is_stmt 0 view .LVU3161 8992 0060 0023 movs r3, #0 8993 0062 6364 str r3, [r4, #68] 4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8994 .loc 1 4227 5 is_stmt 1 view .LVU3162 4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8995 .loc 1 4227 9 is_stmt 0 view .LVU3163 8996 0064 2268 ldr r2, [r4] 4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8997 .loc 1 4227 19 view .LVU3164 8998 0066 5368 ldr r3, [r2, #4] 4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8999 .loc 1 4227 25 view .LVU3165 9000 0068 23F40043 bic r3, r3, #32768 9001 006c 5360 str r3, [r2, #4] 4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9002 .loc 1 4230 5 is_stmt 1 view .LVU3166 4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccbUHtu7.s page 332 9003 .loc 1 4230 23 is_stmt 0 view .LVU3167 9004 006e 6762 str r7, [r4, #36] 4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9005 .loc 1 4231 5 is_stmt 1 view .LVU3168 4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9006 .loc 1 4231 23 is_stmt 0 view .LVU3169 9007 0070 6685 strh r6, [r4, #42] @ movhi 4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9008 .loc 1 4232 5 is_stmt 1 view .LVU3170 4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9009 .loc 1 4232 29 is_stmt 0 view .LVU3171 9010 0072 638D ldrh r3, [r4, #42] 4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9011 .loc 1 4232 23 view .LVU3172 9012 0074 2385 strh r3, [r4, #40] @ movhi 4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9013 .loc 1 4233 5 is_stmt 1 view .LVU3173 4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9014 .loc 1 4233 23 is_stmt 0 view .LVU3174 9015 0076 E562 str r5, [r4, #44] 4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9016 .loc 1 4234 5 is_stmt 1 view .LVU3175 4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9017 .loc 1 4234 23 is_stmt 0 view .LVU3176 9018 0078 454B ldr r3, .L570 9019 007a 6363 str r3, [r4, #52] 4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9020 .loc 1 4236 5 is_stmt 1 view .LVU3177 4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9021 .loc 1 4236 13 is_stmt 0 view .LVU3178 9022 007c E36B ldr r3, [r4, #60] 4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9023 .loc 1 4236 8 view .LVU3179 9024 007e 002B cmp r3, #0 9025 0080 54D0 beq .L559 4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9026 .loc 1 4239 7 is_stmt 1 view .LVU3180 4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9027 .loc 1 4239 38 is_stmt 0 view .LVU3181 9028 0082 444A ldr r2, .L570+4 9029 0084 DA62 str r2, [r3, #44] 4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9030 .loc 1 4242 7 is_stmt 1 view .LVU3182 4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9031 .loc 1 4242 11 is_stmt 0 view .LVU3183 9032 0086 E36B ldr r3, [r4, #60] 4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9033 .loc 1 4242 39 view .LVU3184 9034 0088 434A ldr r2, .L570+8 9035 008a 5A63 str r2, [r3, #52] 4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9036 .loc 1 4245 7 is_stmt 1 view .LVU3185 4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9037 .loc 1 4245 11 is_stmt 0 view .LVU3186 9038 008c E26B ldr r2, [r4, #60] 4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9039 .loc 1 4245 42 view .LVU3187 ARM GAS /tmp/ccbUHtu7.s page 333 9040 008e 0023 movs r3, #0 9041 0090 1363 str r3, [r2, #48] 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9042 .loc 1 4246 7 is_stmt 1 view .LVU3188 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9043 .loc 1 4246 11 is_stmt 0 view .LVU3189 9044 0092 E26B ldr r2, [r4, #60] 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9045 .loc 1 4246 39 view .LVU3190 9046 0094 9363 str r3, [r2, #56] 4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9047 .loc 1 4249 7 is_stmt 1 view .LVU3191 4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9048 .loc 1 4249 69 is_stmt 0 view .LVU3192 9049 0096 2168 ldr r1, [r4] 4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9050 .loc 1 4249 23 view .LVU3193 9051 0098 238D ldrh r3, [r4, #40] 9052 009a 3A46 mov r2, r7 9053 009c 2431 adds r1, r1, #36 9054 009e E06B ldr r0, [r4, #60] 9055 00a0 FFF7FEFF bl HAL_DMA_Start_IT 9056 .LVL607: 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9057 .loc 1 4267 5 is_stmt 1 view .LVU3194 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9058 .loc 1 4267 8 is_stmt 0 view .LVU3195 9059 00a4 0546 mov r5, r0 9060 .LVL608: 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9061 .loc 1 4267 8 view .LVU3196 9062 00a6 0028 cmp r0, #0 9063 00a8 4ED0 beq .L560 4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9064 .loc 1 4278 7 is_stmt 1 view .LVU3197 4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9065 .loc 1 4278 23 is_stmt 0 view .LVU3198 9066 00aa 2823 movs r3, #40 9067 00ac 84F84130 strb r3, [r4, #65] 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9068 .loc 1 4279 7 is_stmt 1 view .LVU3199 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9069 .loc 1 4279 23 is_stmt 0 view .LVU3200 9070 00b0 0022 movs r2, #0 9071 00b2 84F84220 strb r2, [r4, #66] 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9072 .loc 1 4282 7 is_stmt 1 view .LVU3201 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9073 .loc 1 4282 11 is_stmt 0 view .LVU3202 9074 00b6 636C ldr r3, [r4, #68] 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9075 .loc 1 4282 23 view .LVU3203 9076 00b8 43F01003 orr r3, r3, #16 9077 00bc 6364 str r3, [r4, #68] 4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9078 .loc 1 4285 7 is_stmt 1 view .LVU3204 4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 334 9079 .loc 1 4285 7 view .LVU3205 9080 00be 84F84020 strb r2, [r4, #64] 4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9081 .loc 1 4285 7 view .LVU3206 4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9082 .loc 1 4287 7 view .LVU3207 4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9083 .loc 1 4287 14 is_stmt 0 view .LVU3208 9084 00c2 0125 movs r5, #1 9085 00c4 5FE0 b .L554 9086 .LVL609: 9087 .L568: 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9088 .loc 1 4173 7 is_stmt 1 view .LVU3209 9089 00c6 0121 movs r1, #1 9090 00c8 2046 mov r0, r4 9091 00ca FFF7FEFF bl I2C_Disable_IRQ 9092 .LVL610: 4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9093 .loc 1 4175 7 view .LVU3210 4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9094 .loc 1 4175 16 is_stmt 0 view .LVU3211 9095 00ce 2368 ldr r3, [r4] 4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9096 .loc 1 4175 26 view .LVU3212 9097 00d0 1A68 ldr r2, [r3] 4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9098 .loc 1 4175 10 view .LVU3213 9099 00d2 12F4804F tst r2, #16384 9100 00d6 BDD0 beq .L558 4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9101 .loc 1 4178 9 is_stmt 1 view .LVU3214 4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9102 .loc 1 4178 17 is_stmt 0 view .LVU3215 9103 00d8 A26B ldr r2, [r4, #56] 4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9104 .loc 1 4178 12 view .LVU3216 9105 00da 002A cmp r2, #0 9106 00dc BAD0 beq .L558 4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9107 .loc 1 4180 11 is_stmt 1 view .LVU3217 4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9108 .loc 1 4180 25 is_stmt 0 view .LVU3218 9109 00de 1A68 ldr r2, [r3] 4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9110 .loc 1 4180 31 view .LVU3219 9111 00e0 22F48042 bic r2, r2, #16384 9112 00e4 1A60 str r2, [r3] 4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9113 .loc 1 4184 11 is_stmt 1 view .LVU3220 4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9114 .loc 1 4184 15 is_stmt 0 view .LVU3221 9115 00e6 A36B ldr r3, [r4, #56] 4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9116 .loc 1 4184 43 view .LVU3222 9117 00e8 2C4A ldr r2, .L570+12 9118 00ea 9A63 str r2, [r3, #56] ARM GAS /tmp/ccbUHtu7.s page 335 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9119 .loc 1 4187 11 is_stmt 1 view .LVU3223 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9120 .loc 1 4187 15 is_stmt 0 view .LVU3224 9121 00ec A06B ldr r0, [r4, #56] 9122 00ee FFF7FEFF bl HAL_DMA_Abort_IT 9123 .LVL611: 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9124 .loc 1 4187 14 view .LVU3225 9125 00f2 0028 cmp r0, #0 9126 00f4 AED0 beq .L558 4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9127 .loc 1 4190 13 is_stmt 1 view .LVU3226 4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9128 .loc 1 4190 17 is_stmt 0 view .LVU3227 9129 00f6 A06B ldr r0, [r4, #56] 4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9130 .loc 1 4190 25 view .LVU3228 9131 00f8 836B ldr r3, [r0, #56] 4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9132 .loc 1 4190 13 view .LVU3229 9133 00fa 9847 blx r3 9134 .LVL612: 9135 00fc AAE7 b .L558 9136 .L569: 4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9137 .loc 1 4197 7 is_stmt 1 view .LVU3230 4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9138 .loc 1 4197 16 is_stmt 0 view .LVU3231 9139 00fe 2368 ldr r3, [r4] 4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9140 .loc 1 4197 26 view .LVU3232 9141 0100 1A68 ldr r2, [r3] 4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9142 .loc 1 4197 10 view .LVU3233 9143 0102 12F4004F tst r2, #32768 9144 0106 A5D0 beq .L558 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9145 .loc 1 4199 9 is_stmt 1 view .LVU3234 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9146 .loc 1 4199 23 is_stmt 0 view .LVU3235 9147 0108 1A68 ldr r2, [r3] 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9148 .loc 1 4199 29 view .LVU3236 9149 010a 22F40042 bic r2, r2, #32768 9150 010e 1A60 str r2, [r3] 4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9151 .loc 1 4202 9 is_stmt 1 view .LVU3237 4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9152 .loc 1 4202 17 is_stmt 0 view .LVU3238 9153 0110 E36B ldr r3, [r4, #60] 4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9154 .loc 1 4202 12 view .LVU3239 9155 0112 002B cmp r3, #0 9156 0114 9ED0 beq .L558 4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9157 .loc 1 4206 11 is_stmt 1 view .LVU3240 ARM GAS /tmp/ccbUHtu7.s page 336 4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9158 .loc 1 4206 43 is_stmt 0 view .LVU3241 9159 0116 214A ldr r2, .L570+12 9160 0118 9A63 str r2, [r3, #56] 4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9161 .loc 1 4209 11 is_stmt 1 view .LVU3242 4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9162 .loc 1 4209 15 is_stmt 0 view .LVU3243 9163 011a E06B ldr r0, [r4, #60] 9164 011c FFF7FEFF bl HAL_DMA_Abort_IT 9165 .LVL613: 4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9166 .loc 1 4209 14 view .LVU3244 9167 0120 0028 cmp r0, #0 9168 0122 97D0 beq .L558 4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9169 .loc 1 4212 13 is_stmt 1 view .LVU3245 4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9170 .loc 1 4212 17 is_stmt 0 view .LVU3246 9171 0124 E06B ldr r0, [r4, #60] 4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9172 .loc 1 4212 25 view .LVU3247 9173 0126 836B ldr r3, [r0, #56] 4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9174 .loc 1 4212 13 view .LVU3248 9175 0128 9847 blx r3 9176 .LVL614: 9177 012a 93E7 b .L558 9178 .L559: 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9179 .loc 1 4255 7 is_stmt 1 view .LVU3249 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9180 .loc 1 4255 23 is_stmt 0 view .LVU3250 9181 012c 2823 movs r3, #40 9182 012e 84F84130 strb r3, [r4, #65] 4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9183 .loc 1 4256 7 is_stmt 1 view .LVU3251 4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9184 .loc 1 4256 23 is_stmt 0 view .LVU3252 9185 0132 0022 movs r2, #0 9186 0134 84F84220 strb r2, [r4, #66] 4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9187 .loc 1 4259 7 is_stmt 1 view .LVU3253 4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9188 .loc 1 4259 11 is_stmt 0 view .LVU3254 9189 0138 636C ldr r3, [r4, #68] 4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9190 .loc 1 4259 23 view .LVU3255 9191 013a 43F08003 orr r3, r3, #128 9192 013e 6364 str r3, [r4, #68] 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9193 .loc 1 4262 7 is_stmt 1 view .LVU3256 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9194 .loc 1 4262 7 view .LVU3257 9195 0140 84F84020 strb r2, [r4, #64] 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9196 .loc 1 4262 7 view .LVU3258 ARM GAS /tmp/ccbUHtu7.s page 337 4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9197 .loc 1 4264 7 view .LVU3259 4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9198 .loc 1 4264 14 is_stmt 0 view .LVU3260 9199 0144 0125 movs r5, #1 9200 .LVL615: 4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9201 .loc 1 4264 14 view .LVU3261 9202 0146 1EE0 b .L554 9203 .LVL616: 9204 .L560: 4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9205 .loc 1 4270 7 is_stmt 1 view .LVU3262 4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9206 .loc 1 4270 11 is_stmt 0 view .LVU3263 9207 0148 638D ldrh r3, [r4, #42] 9208 014a 9BB2 uxth r3, r3 4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9209 .loc 1 4270 30 view .LVU3264 9210 014c 228D ldrh r2, [r4, #40] 4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9211 .loc 1 4270 23 view .LVU3265 9212 014e 9B1A subs r3, r3, r2 9213 0150 9BB2 uxth r3, r3 9214 0152 6385 strh r3, [r4, #42] @ movhi 4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9215 .loc 1 4273 7 is_stmt 1 view .LVU3266 4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9216 .loc 1 4273 22 is_stmt 0 view .LVU3267 9217 0154 0023 movs r3, #0 9218 0156 2385 strh r3, [r4, #40] @ movhi 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9219 .loc 1 4290 5 is_stmt 1 view .LVU3268 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9220 .loc 1 4290 9 is_stmt 0 view .LVU3269 9221 0158 2368 ldr r3, [r4] 9222 015a 9A69 ldr r2, [r3, #24] 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9223 .loc 1 4290 8 view .LVU3270 9224 015c 12F4803F tst r2, #65536 9225 0160 0DD0 beq .L562 9226 .L563: 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9227 .loc 1 4298 5 is_stmt 1 view .LVU3271 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9228 .loc 1 4298 5 view .LVU3272 9229 0162 0023 movs r3, #0 9230 0164 84F84030 strb r3, [r4, #64] 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9231 .loc 1 4298 5 view .LVU3273 4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9232 .loc 1 4301 5 view .LVU3274 4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9233 .loc 1 4301 9 is_stmt 0 view .LVU3275 9234 0168 2268 ldr r2, [r4] 4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9235 .loc 1 4301 19 view .LVU3276 ARM GAS /tmp/ccbUHtu7.s page 338 9236 016a 1368 ldr r3, [r2] 4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9237 .loc 1 4301 25 view .LVU3277 9238 016c 43F40043 orr r3, r3, #32768 9239 0170 1360 str r3, [r2] 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9240 .loc 1 4307 5 is_stmt 1 view .LVU3278 9241 0172 48F20201 movw r1, #32770 9242 0176 2046 mov r0, r4 9243 .LVL617: 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9244 .loc 1 4307 5 is_stmt 0 view .LVU3279 9245 0178 FFF7FEFF bl I2C_Enable_IRQ 9246 .LVL618: 4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9247 .loc 1 4309 5 is_stmt 1 view .LVU3280 4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9248 .loc 1 4309 12 is_stmt 0 view .LVU3281 9249 017c 03E0 b .L554 9250 .LVL619: 9251 .L562: 4294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9252 .loc 1 4294 7 is_stmt 1 view .LVU3282 9253 017e 0822 movs r2, #8 9254 0180 DA61 str r2, [r3, #28] 9255 0182 EEE7 b .L563 9256 .LVL620: 9257 .L564: 4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9258 .loc 1 4313 12 is_stmt 0 view .LVU3283 9259 0184 0125 movs r5, #1 9260 .LVL621: 9261 .L554: 4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9262 .loc 1 4315 1 view .LVU3284 9263 0186 2846 mov r0, r5 9264 0188 F8BD pop {r3, r4, r5, r6, r7, pc} 9265 .LVL622: 9266 .L565: 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9267 .loc 1 4166 5 view .LVU3285 9268 018a 0225 movs r5, #2 9269 .LVL623: 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9270 .loc 1 4166 5 view .LVU3286 9271 018c FBE7 b .L554 9272 .L571: 9273 018e 00BF .align 2 9274 .L570: 9275 0190 00000000 .word I2C_Slave_ISR_DMA 9276 0194 00000000 .word I2C_DMASlaveReceiveCplt 9277 0198 00000000 .word I2C_DMAError 9278 019c 00000000 .word I2C_DMAAbort 9279 .cfi_endproc 9280 .LFE359: 9282 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9283 .align 1 ARM GAS /tmp/ccbUHtu7.s page 339 9284 .global HAL_I2C_EnableListen_IT 9285 .syntax unified 9286 .thumb 9287 .thumb_func 9289 HAL_I2C_EnableListen_IT: 9290 .LVL624: 9291 .LFB360: 4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9292 .loc 1 4324 1 is_stmt 1 view -0 9293 .cfi_startproc 9294 @ args = 0, pretend = 0, frame = 0 9295 @ frame_needed = 0, uses_anonymous_args = 0 4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9296 .loc 1 4324 1 is_stmt 0 view .LVU3288 9297 0000 08B5 push {r3, lr} 9298 .LCFI103: 9299 .cfi_def_cfa_offset 8 9300 .cfi_offset 3, -8 9301 .cfi_offset 14, -4 4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9302 .loc 1 4325 3 is_stmt 1 view .LVU3289 4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9303 .loc 1 4325 11 is_stmt 0 view .LVU3290 9304 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9305 0006 DBB2 uxtb r3, r3 4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9306 .loc 1 4325 6 view .LVU3291 9307 0008 202B cmp r3, #32 9308 000a 01D0 beq .L576 4337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9309 .loc 1 4337 12 view .LVU3292 9310 000c 0220 movs r0, #2 9311 .LVL625: 9312 .L573: 4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9313 .loc 1 4339 1 view .LVU3293 9314 000e 08BD pop {r3, pc} 9315 .LVL626: 9316 .L576: 4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9317 .loc 1 4327 5 is_stmt 1 view .LVU3294 4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9318 .loc 1 4327 17 is_stmt 0 view .LVU3295 9319 0010 2823 movs r3, #40 9320 0012 80F84130 strb r3, [r0, #65] 4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9321 .loc 1 4328 5 is_stmt 1 view .LVU3296 4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9322 .loc 1 4328 19 is_stmt 0 view .LVU3297 9323 0016 044B ldr r3, .L577 9324 0018 4363 str r3, [r0, #52] 4331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9325 .loc 1 4331 5 is_stmt 1 view .LVU3298 9326 001a 4FF40041 mov r1, #32768 9327 001e FFF7FEFF bl I2C_Enable_IRQ 9328 .LVL627: 4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 340 9329 .loc 1 4333 5 view .LVU3299 4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9330 .loc 1 4333 12 is_stmt 0 view .LVU3300 9331 0022 0020 movs r0, #0 9332 0024 F3E7 b .L573 9333 .L578: 9334 0026 00BF .align 2 9335 .L577: 9336 0028 00000000 .word I2C_Slave_ISR_IT 9337 .cfi_endproc 9338 .LFE360: 9340 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9341 .align 1 9342 .global HAL_I2C_DisableListen_IT 9343 .syntax unified 9344 .thumb 9345 .thumb_func 9347 HAL_I2C_DisableListen_IT: 9348 .LVL628: 9349 .LFB361: 4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9350 .loc 1 4348 1 is_stmt 1 view -0 9351 .cfi_startproc 9352 @ args = 0, pretend = 0, frame = 0 9353 @ frame_needed = 0, uses_anonymous_args = 0 4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9354 .loc 1 4350 3 view .LVU3302 4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9355 .loc 1 4353 3 view .LVU3303 4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9356 .loc 1 4353 11 is_stmt 0 view .LVU3304 9357 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9358 0004 DBB2 uxtb r3, r3 4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9359 .loc 1 4353 6 view .LVU3305 9360 0006 282B cmp r3, #40 9361 0008 01D0 beq .L586 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9362 .loc 1 4368 12 view .LVU3306 9363 000a 0220 movs r0, #2 9364 .LVL629: 4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9365 .loc 1 4370 1 view .LVU3307 9366 000c 7047 bx lr 9367 .LVL630: 9368 .L586: 4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9369 .loc 1 4348 1 view .LVU3308 9370 000e 10B5 push {r4, lr} 9371 .LCFI104: 9372 .cfi_def_cfa_offset 8 9373 .cfi_offset 4, -8 9374 .cfi_offset 14, -4 4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9375 .loc 1 4355 5 is_stmt 1 view .LVU3309 4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9376 .loc 1 4355 26 is_stmt 0 view .LVU3310 ARM GAS /tmp/ccbUHtu7.s page 341 9377 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9378 .LVL631: 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9379 .loc 1 4356 5 is_stmt 1 view .LVU3311 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9380 .loc 1 4356 48 is_stmt 0 view .LVU3312 9381 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9382 .loc 1 4356 31 view .LVU3313 9383 0018 02F00302 and r2, r2, #3 9384 .LVL632: 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9385 .loc 1 4356 31 view .LVU3314 9386 001c 1343 orrs r3, r3, r2 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9387 .loc 1 4356 25 view .LVU3315 9388 001e 0363 str r3, [r0, #48] 4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9389 .loc 1 4357 5 is_stmt 1 view .LVU3316 4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9390 .loc 1 4357 17 is_stmt 0 view .LVU3317 9391 0020 2023 movs r3, #32 9392 0022 80F84130 strb r3, [r0, #65] 4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9393 .loc 1 4358 5 is_stmt 1 view .LVU3318 4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9394 .loc 1 4358 16 is_stmt 0 view .LVU3319 9395 0026 0024 movs r4, #0 9396 0028 80F84240 strb r4, [r0, #66] 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9397 .loc 1 4359 5 is_stmt 1 view .LVU3320 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9398 .loc 1 4359 19 is_stmt 0 view .LVU3321 9399 002c 4463 str r4, [r0, #52] 4362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9400 .loc 1 4362 5 is_stmt 1 view .LVU3322 9401 002e 4FF40041 mov r1, #32768 9402 0032 FFF7FEFF bl I2C_Disable_IRQ 9403 .LVL633: 4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9404 .loc 1 4364 5 view .LVU3323 4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9405 .loc 1 4364 12 is_stmt 0 view .LVU3324 9406 0036 2046 mov r0, r4 4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9407 .loc 1 4370 1 view .LVU3325 9408 0038 10BD pop {r4, pc} 9409 .cfi_endproc 9410 .LFE361: 9412 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9413 .align 1 9414 .global HAL_I2C_Master_Abort_IT 9415 .syntax unified 9416 .thumb 9417 .thumb_func 9419 HAL_I2C_Master_Abort_IT: 9420 .LVL634: ARM GAS /tmp/ccbUHtu7.s page 342 9421 .LFB362: 4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9422 .loc 1 4381 1 is_stmt 1 view -0 9423 .cfi_startproc 9424 @ args = 0, pretend = 0, frame = 0 9425 @ frame_needed = 0, uses_anonymous_args = 0 4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9426 .loc 1 4382 3 view .LVU3327 4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9427 .loc 1 4382 11 is_stmt 0 view .LVU3328 9428 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9429 0004 DBB2 uxtb r3, r3 4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9430 .loc 1 4382 6 view .LVU3329 9431 0006 102B cmp r3, #16 9432 0008 36D1 bne .L591 4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9433 .loc 1 4381 1 view .LVU3330 9434 000a 30B5 push {r4, r5, lr} 9435 .LCFI105: 9436 .cfi_def_cfa_offset 12 9437 .cfi_offset 4, -12 9438 .cfi_offset 5, -8 9439 .cfi_offset 14, -4 9440 000c 83B0 sub sp, sp, #12 9441 .LCFI106: 9442 .cfi_def_cfa_offset 24 9443 000e 0446 mov r4, r0 9444 0010 0D46 mov r5, r1 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9445 .loc 1 4385 5 is_stmt 1 view .LVU3331 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9446 .loc 1 4385 5 view .LVU3332 9447 0012 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 9448 0016 012B cmp r3, #1 9449 0018 30D0 beq .L592 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9450 .loc 1 4385 5 discriminator 2 view .LVU3333 9451 001a 0123 movs r3, #1 9452 001c 80F84030 strb r3, [r0, #64] 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9453 .loc 1 4385 5 discriminator 2 view .LVU3334 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9454 .loc 1 4388 5 discriminator 2 view .LVU3335 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9455 .loc 1 4388 13 is_stmt 0 discriminator 2 view .LVU3336 9456 0020 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9457 0024 DBB2 uxtb r3, r3 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9458 .loc 1 4388 8 discriminator 2 view .LVU3337 9459 0026 212B cmp r3, #33 9460 0028 1AD0 beq .L597 4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9461 .loc 1 4393 10 is_stmt 1 view .LVU3338 4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9462 .loc 1 4393 18 is_stmt 0 view .LVU3339 9463 002a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/ccbUHtu7.s page 343 9464 002e DBB2 uxtb r3, r3 4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9465 .loc 1 4393 13 view .LVU3340 9466 0030 222B cmp r3, #34 9467 0032 1BD0 beq .L598 9468 .LVL635: 9469 .L590: 4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9470 .loc 1 4401 5 is_stmt 1 view .LVU3341 4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9471 .loc 1 4404 5 view .LVU3342 4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9472 .loc 1 4404 17 is_stmt 0 view .LVU3343 9473 0034 6023 movs r3, #96 9474 0036 84F84130 strb r3, [r4, #65] 4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9475 .loc 1 4408 5 is_stmt 1 view .LVU3344 9476 003a 114B ldr r3, .L599 9477 003c 0093 str r3, [sp] 9478 003e 4FF00073 mov r3, #33554432 9479 0042 0122 movs r2, #1 9480 0044 2946 mov r1, r5 9481 0046 2046 mov r0, r4 9482 0048 FFF7FEFF bl I2C_TransferConfig 9483 .LVL636: 4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9484 .loc 1 4411 5 view .LVU3345 4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9485 .loc 1 4411 5 view .LVU3346 9486 004c 0025 movs r5, #0 9487 004e 84F84050 strb r5, [r4, #64] 4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9488 .loc 1 4411 5 view .LVU3347 4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9489 .loc 1 4416 5 view .LVU3348 9490 0052 2021 movs r1, #32 9491 0054 2046 mov r0, r4 9492 0056 FFF7FEFF bl I2C_Enable_IRQ 9493 .LVL637: 4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9494 .loc 1 4418 5 view .LVU3349 4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9495 .loc 1 4418 12 is_stmt 0 view .LVU3350 9496 005a 2846 mov r0, r5 9497 .L588: 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9498 .loc 1 4426 1 view .LVU3351 9499 005c 03B0 add sp, sp, #12 9500 .LCFI107: 9501 .cfi_remember_state 9502 .cfi_def_cfa_offset 12 9503 @ sp needed 9504 005e 30BD pop {r4, r5, pc} 9505 .LVL638: 9506 .L597: 9507 .LCFI108: 9508 .cfi_restore_state ARM GAS /tmp/ccbUHtu7.s page 344 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9509 .loc 1 4390 7 is_stmt 1 view .LVU3352 9510 0060 0121 movs r1, #1 9511 .LVL639: 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9512 .loc 1 4390 7 is_stmt 0 view .LVU3353 9513 0062 FFF7FEFF bl I2C_Disable_IRQ 9514 .LVL640: 4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9515 .loc 1 4391 7 is_stmt 1 view .LVU3354 4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9516 .loc 1 4391 27 is_stmt 0 view .LVU3355 9517 0066 1123 movs r3, #17 9518 0068 2363 str r3, [r4, #48] 9519 006a E3E7 b .L590 9520 .LVL641: 9521 .L598: 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9522 .loc 1 4395 7 is_stmt 1 view .LVU3356 9523 006c 0221 movs r1, #2 9524 .LVL642: 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9525 .loc 1 4395 7 is_stmt 0 view .LVU3357 9526 006e FFF7FEFF bl I2C_Disable_IRQ 9527 .LVL643: 4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9528 .loc 1 4396 7 is_stmt 1 view .LVU3358 4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9529 .loc 1 4396 27 is_stmt 0 view .LVU3359 9530 0072 1223 movs r3, #18 9531 0074 2363 str r3, [r4, #48] 9532 0076 DDE7 b .L590 9533 .LVL644: 9534 .L591: 9535 .LCFI109: 9536 .cfi_def_cfa_offset 0 9537 .cfi_restore 4 9538 .cfi_restore 5 9539 .cfi_restore 14 4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9540 .loc 1 4424 12 view .LVU3360 9541 0078 0120 movs r0, #1 9542 .LVL645: 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9543 .loc 1 4426 1 view .LVU3361 9544 007a 7047 bx lr 9545 .LVL646: 9546 .L592: 9547 .LCFI110: 9548 .cfi_def_cfa_offset 24 9549 .cfi_offset 4, -12 9550 .cfi_offset 5, -8 9551 .cfi_offset 14, -4 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9552 .loc 1 4385 5 view .LVU3362 9553 007c 0220 movs r0, #2 9554 .LVL647: ARM GAS /tmp/ccbUHtu7.s page 345 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9555 .loc 1 4385 5 view .LVU3363 9556 007e EDE7 b .L588 9557 .L600: 9558 .align 2 9559 .L599: 9560 0080 00400080 .word -2147467264 9561 .cfi_endproc 9562 .LFE362: 9564 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 9565 .align 1 9566 .global HAL_I2C_EV_IRQHandler 9567 .syntax unified 9568 .thumb 9569 .thumb_func 9571 HAL_I2C_EV_IRQHandler: 9572 .LVL648: 9573 .LFB363: 4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9574 .loc 1 4443 1 is_stmt 1 view -0 9575 .cfi_startproc 9576 @ args = 0, pretend = 0, frame = 0 9577 @ frame_needed = 0, uses_anonymous_args = 0 4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9578 .loc 1 4443 1 is_stmt 0 view .LVU3365 9579 0000 08B5 push {r3, lr} 9580 .LCFI111: 9581 .cfi_def_cfa_offset 8 9582 .cfi_offset 3, -8 9583 .cfi_offset 14, -4 4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9584 .loc 1 4445 3 is_stmt 1 view .LVU3366 4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9585 .loc 1 4445 24 is_stmt 0 view .LVU3367 9586 0002 0368 ldr r3, [r0] 4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9587 .loc 1 4445 12 view .LVU3368 9588 0004 9969 ldr r1, [r3, #24] 9589 .LVL649: 4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9590 .loc 1 4446 3 is_stmt 1 view .LVU3369 4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9591 .loc 1 4446 12 is_stmt 0 view .LVU3370 9592 0006 1A68 ldr r2, [r3] 9593 .LVL650: 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9594 .loc 1 4449 3 is_stmt 1 view .LVU3371 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9595 .loc 1 4449 11 is_stmt 0 view .LVU3372 9596 0008 436B ldr r3, [r0, #52] 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9597 .loc 1 4449 6 view .LVU3373 9598 000a 03B1 cbz r3, .L601 4451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9599 .loc 1 4451 5 is_stmt 1 view .LVU3374 9600 000c 9847 blx r3 9601 .LVL651: ARM GAS /tmp/ccbUHtu7.s page 346 9602 .L601: 4453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9603 .loc 1 4453 1 is_stmt 0 view .LVU3375 9604 000e 08BD pop {r3, pc} 9605 .cfi_endproc 9606 .LFE363: 9608 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 9609 .align 1 9610 .weak HAL_I2C_MasterTxCpltCallback 9611 .syntax unified 9612 .thumb 9613 .thumb_func 9615 HAL_I2C_MasterTxCpltCallback: 9616 .LVL652: 9617 .LFB365: 4514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9618 .loc 1 4514 1 is_stmt 1 view -0 9619 .cfi_startproc 9620 @ args = 0, pretend = 0, frame = 0 9621 @ frame_needed = 0, uses_anonymous_args = 0 9622 @ link register save eliminated. 4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9623 .loc 1 4516 3 view .LVU3377 4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9624 .loc 1 4521 1 is_stmt 0 view .LVU3378 9625 0000 7047 bx lr 9626 .cfi_endproc 9627 .LFE365: 9629 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 9630 .align 1 9631 .weak HAL_I2C_MasterRxCpltCallback 9632 .syntax unified 9633 .thumb 9634 .thumb_func 9636 HAL_I2C_MasterRxCpltCallback: 9637 .LVL653: 9638 .LFB366: 4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9639 .loc 1 4530 1 is_stmt 1 view -0 9640 .cfi_startproc 9641 @ args = 0, pretend = 0, frame = 0 9642 @ frame_needed = 0, uses_anonymous_args = 0 9643 @ link register save eliminated. 4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9644 .loc 1 4532 3 view .LVU3380 4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9645 .loc 1 4537 1 is_stmt 0 view .LVU3381 9646 0000 7047 bx lr 9647 .cfi_endproc 9648 .LFE366: 9650 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 9651 .align 1 9652 .syntax unified 9653 .thumb 9654 .thumb_func 9656 I2C_ITMasterSeqCplt: 9657 .LVL654: ARM GAS /tmp/ccbUHtu7.s page 347 9658 .LFB385: 5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 9659 .loc 1 5515 1 is_stmt 1 view -0 9660 .cfi_startproc 9661 @ args = 0, pretend = 0, frame = 0 9662 @ frame_needed = 0, uses_anonymous_args = 0 5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 9663 .loc 1 5515 1 is_stmt 0 view .LVU3383 9664 0000 38B5 push {r3, r4, r5, lr} 9665 .LCFI112: 9666 .cfi_def_cfa_offset 16 9667 .cfi_offset 3, -16 9668 .cfi_offset 4, -12 9669 .cfi_offset 5, -8 9670 .cfi_offset 14, -4 9671 0002 0446 mov r4, r0 5517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9672 .loc 1 5517 3 is_stmt 1 view .LVU3384 5517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9673 .loc 1 5517 14 is_stmt 0 view .LVU3385 9674 0004 0023 movs r3, #0 9675 0006 80F84230 strb r3, [r0, #66] 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9676 .loc 1 5521 3 is_stmt 1 view .LVU3386 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9677 .loc 1 5521 11 is_stmt 0 view .LVU3387 9678 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9679 000e DBB2 uxtb r3, r3 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9680 .loc 1 5521 6 view .LVU3388 9681 0010 212B cmp r3, #33 9682 0012 0FD0 beq .L610 5543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9683 .loc 1 5543 5 is_stmt 1 view .LVU3389 5543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9684 .loc 1 5543 25 is_stmt 0 view .LVU3390 9685 0014 2023 movs r3, #32 9686 0016 80F84130 strb r3, [r0, #65] 5544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9687 .loc 1 5544 5 is_stmt 1 view .LVU3391 5544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9688 .loc 1 5544 25 is_stmt 0 view .LVU3392 9689 001a 1223 movs r3, #18 9690 001c 0363 str r3, [r0, #48] 5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9691 .loc 1 5545 5 is_stmt 1 view .LVU3393 5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9692 .loc 1 5545 25 is_stmt 0 view .LVU3394 9693 001e 0025 movs r5, #0 9694 0020 4563 str r5, [r0, #52] 5548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9695 .loc 1 5548 5 is_stmt 1 view .LVU3395 9696 0022 0221 movs r1, #2 9697 0024 FFF7FEFF bl I2C_Disable_IRQ 9698 .LVL655: 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9699 .loc 1 5551 5 view .LVU3396 ARM GAS /tmp/ccbUHtu7.s page 348 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9700 .loc 1 5551 5 view .LVU3397 9701 0028 84F84050 strb r5, [r4, #64] 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9702 .loc 1 5551 5 view .LVU3398 5557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9703 .loc 1 5557 5 view .LVU3399 9704 002c 2046 mov r0, r4 9705 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 9706 .LVL656: 9707 .L606: 5560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9708 .loc 1 5560 1 is_stmt 0 view .LVU3400 9709 0032 38BD pop {r3, r4, r5, pc} 9710 .LVL657: 9711 .L610: 5523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9712 .loc 1 5523 5 is_stmt 1 view .LVU3401 5523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9713 .loc 1 5523 25 is_stmt 0 view .LVU3402 9714 0034 2023 movs r3, #32 9715 0036 80F84130 strb r3, [r0, #65] 5524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9716 .loc 1 5524 5 is_stmt 1 view .LVU3403 5524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9717 .loc 1 5524 25 is_stmt 0 view .LVU3404 9718 003a 1123 movs r3, #17 9719 003c 0363 str r3, [r0, #48] 5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9720 .loc 1 5525 5 is_stmt 1 view .LVU3405 5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9721 .loc 1 5525 25 is_stmt 0 view .LVU3406 9722 003e 0025 movs r5, #0 9723 0040 4563 str r5, [r0, #52] 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9724 .loc 1 5528 5 is_stmt 1 view .LVU3407 9725 0042 0121 movs r1, #1 9726 0044 FFF7FEFF bl I2C_Disable_IRQ 9727 .LVL658: 5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9728 .loc 1 5531 5 view .LVU3408 5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9729 .loc 1 5531 5 view .LVU3409 9730 0048 84F84050 strb r5, [r4, #64] 5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9731 .loc 1 5531 5 view .LVU3410 5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9732 .loc 1 5537 5 view .LVU3411 9733 004c 2046 mov r0, r4 9734 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 9735 .LVL659: 9736 0052 EEE7 b .L606 9737 .cfi_endproc 9738 .LFE385: 9740 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 9741 .align 1 9742 .weak HAL_I2C_SlaveTxCpltCallback ARM GAS /tmp/ccbUHtu7.s page 349 9743 .syntax unified 9744 .thumb 9745 .thumb_func 9747 HAL_I2C_SlaveTxCpltCallback: 9748 .LVL660: 9749 .LFB367: 4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9750 .loc 1 4545 1 view -0 9751 .cfi_startproc 9752 @ args = 0, pretend = 0, frame = 0 9753 @ frame_needed = 0, uses_anonymous_args = 0 9754 @ link register save eliminated. 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9755 .loc 1 4547 3 view .LVU3413 4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9756 .loc 1 4552 1 is_stmt 0 view .LVU3414 9757 0000 7047 bx lr 9758 .cfi_endproc 9759 .LFE367: 9761 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 9762 .align 1 9763 .weak HAL_I2C_SlaveRxCpltCallback 9764 .syntax unified 9765 .thumb 9766 .thumb_func 9768 HAL_I2C_SlaveRxCpltCallback: 9769 .LVL661: 9770 .LFB368: 4561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9771 .loc 1 4561 1 is_stmt 1 view -0 9772 .cfi_startproc 9773 @ args = 0, pretend = 0, frame = 0 9774 @ frame_needed = 0, uses_anonymous_args = 0 9775 @ link register save eliminated. 4563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9776 .loc 1 4563 3 view .LVU3416 4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9777 .loc 1 4568 1 is_stmt 0 view .LVU3417 9778 0000 7047 bx lr 9779 .cfi_endproc 9780 .LFE368: 9782 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 9783 .align 1 9784 .syntax unified 9785 .thumb 9786 .thumb_func 9788 I2C_ITSlaveSeqCplt: 9789 .LVL662: 9790 .LFB386: 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 9791 .loc 1 5568 1 is_stmt 1 view -0 9792 .cfi_startproc 9793 @ args = 0, pretend = 0, frame = 0 9794 @ frame_needed = 0, uses_anonymous_args = 0 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 9795 .loc 1 5568 1 is_stmt 0 view .LVU3419 9796 0000 10B5 push {r4, lr} ARM GAS /tmp/ccbUHtu7.s page 350 9797 .LCFI113: 9798 .cfi_def_cfa_offset 8 9799 .cfi_offset 4, -8 9800 .cfi_offset 14, -4 9801 0002 0446 mov r4, r0 5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9802 .loc 1 5569 3 is_stmt 1 view .LVU3420 5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9803 .loc 1 5569 26 is_stmt 0 view .LVU3421 9804 0004 0368 ldr r3, [r0] 5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9805 .loc 1 5569 12 view .LVU3422 9806 0006 1A68 ldr r2, [r3] 9807 .LVL663: 5572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9808 .loc 1 5572 3 is_stmt 1 view .LVU3423 5572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9809 .loc 1 5572 14 is_stmt 0 view .LVU3424 9810 0008 0021 movs r1, #0 9811 000a 80F84210 strb r1, [r0, #66] 5575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9812 .loc 1 5575 3 is_stmt 1 view .LVU3425 5575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9813 .loc 1 5575 6 is_stmt 0 view .LVU3426 9814 000e 12F4804F tst r2, #16384 9815 0012 0ED0 beq .L614 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9816 .loc 1 5578 5 is_stmt 1 view .LVU3427 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9817 .loc 1 5578 19 is_stmt 0 view .LVU3428 9818 0014 1A68 ldr r2, [r3] 9819 .LVL664: 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9820 .loc 1 5578 25 view .LVU3429 9821 0016 22F48042 bic r2, r2, #16384 9822 001a 1A60 str r2, [r3] 9823 .L615: 5588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9824 .loc 1 5588 3 is_stmt 1 view .LVU3430 5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9825 .loc 1 5590 3 view .LVU3431 5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9826 .loc 1 5590 11 is_stmt 0 view .LVU3432 9827 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9828 0020 DBB2 uxtb r3, r3 5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9829 .loc 1 5590 6 view .LVU3433 9830 0022 292B cmp r3, #41 9831 0024 0DD0 beq .L619 5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9832 .loc 1 5610 8 is_stmt 1 view .LVU3434 5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9833 .loc 1 5610 16 is_stmt 0 view .LVU3435 9834 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9835 002a DBB2 uxtb r3, r3 5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9836 .loc 1 5610 11 view .LVU3436 ARM GAS /tmp/ccbUHtu7.s page 351 9837 002c 2A2B cmp r3, #42 9838 002e 18D0 beq .L620 9839 .LVL665: 9840 .L613: 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9841 .loc 1 5633 1 view .LVU3437 9842 0030 10BD pop {r4, pc} 9843 .LVL666: 9844 .L614: 5580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9845 .loc 1 5580 8 is_stmt 1 view .LVU3438 5580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9846 .loc 1 5580 11 is_stmt 0 view .LVU3439 9847 0032 12F4004F tst r2, #32768 9848 0036 F1D0 beq .L615 5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9849 .loc 1 5583 5 is_stmt 1 view .LVU3440 5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9850 .loc 1 5583 19 is_stmt 0 view .LVU3441 9851 0038 1A68 ldr r2, [r3] 9852 .LVL667: 5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9853 .loc 1 5583 25 view .LVU3442 9854 003a 22F40042 bic r2, r2, #32768 9855 003e 1A60 str r2, [r3] 9856 0040 ECE7 b .L615 9857 .L619: 5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 9858 .loc 1 5593 5 is_stmt 1 view .LVU3443 5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 9859 .loc 1 5593 25 is_stmt 0 view .LVU3444 9860 0042 2823 movs r3, #40 9861 0044 84F84130 strb r3, [r4, #65] 5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9862 .loc 1 5594 5 is_stmt 1 view .LVU3445 5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9863 .loc 1 5594 25 is_stmt 0 view .LVU3446 9864 0048 2123 movs r3, #33 9865 004a 2363 str r3, [r4, #48] 5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9866 .loc 1 5597 5 is_stmt 1 view .LVU3447 9867 004c 0121 movs r1, #1 9868 004e 2046 mov r0, r4 9869 .LVL668: 5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9870 .loc 1 5597 5 is_stmt 0 view .LVU3448 9871 0050 FFF7FEFF bl I2C_Disable_IRQ 9872 .LVL669: 5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9873 .loc 1 5600 5 is_stmt 1 view .LVU3449 5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9874 .loc 1 5600 5 view .LVU3450 9875 0054 0023 movs r3, #0 9876 0056 84F84030 strb r3, [r4, #64] 5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9877 .loc 1 5600 5 view .LVU3451 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccbUHtu7.s page 352 9878 .loc 1 5606 5 view .LVU3452 9879 005a 2046 mov r0, r4 9880 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 9881 .LVL670: 9882 0060 E6E7 b .L613 9883 .LVL671: 9884 .L620: 5613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 9885 .loc 1 5613 5 view .LVU3453 5613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 9886 .loc 1 5613 25 is_stmt 0 view .LVU3454 9887 0062 2823 movs r3, #40 9888 0064 84F84130 strb r3, [r4, #65] 5614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9889 .loc 1 5614 5 is_stmt 1 view .LVU3455 5614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9890 .loc 1 5614 25 is_stmt 0 view .LVU3456 9891 0068 2223 movs r3, #34 9892 006a 2363 str r3, [r4, #48] 5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9893 .loc 1 5617 5 is_stmt 1 view .LVU3457 9894 006c 0221 movs r1, #2 9895 006e 2046 mov r0, r4 9896 .LVL672: 5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9897 .loc 1 5617 5 is_stmt 0 view .LVU3458 9898 0070 FFF7FEFF bl I2C_Disable_IRQ 9899 .LVL673: 5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9900 .loc 1 5620 5 is_stmt 1 view .LVU3459 5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9901 .loc 1 5620 5 view .LVU3460 9902 0074 0023 movs r3, #0 9903 0076 84F84030 strb r3, [r4, #64] 5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9904 .loc 1 5620 5 view .LVU3461 5626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9905 .loc 1 5626 5 view .LVU3462 9906 007a 2046 mov r0, r4 9907 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 9908 .LVL674: 5632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9909 .loc 1 5632 3 view .LVU3463 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9910 .loc 1 5633 1 is_stmt 0 view .LVU3464 9911 0080 D6E7 b .L613 9912 .cfi_endproc 9913 .LFE386: 9915 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 9916 .align 1 9917 .syntax unified 9918 .thumb 9919 .thumb_func 9921 I2C_DMASlaveTransmitCplt: 9922 .LVL675: 9923 .LFB394: 6216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ ARM GAS /tmp/ccbUHtu7.s page 353 9924 .loc 1 6216 1 is_stmt 1 view -0 9925 .cfi_startproc 9926 @ args = 0, pretend = 0, frame = 0 9927 @ frame_needed = 0, uses_anonymous_args = 0 6216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 9928 .loc 1 6216 1 is_stmt 0 view .LVU3466 9929 0000 08B5 push {r3, lr} 9930 .LCFI114: 9931 .cfi_def_cfa_offset 8 9932 .cfi_offset 3, -8 9933 .cfi_offset 14, -4 6218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9934 .loc 1 6218 3 is_stmt 1 view .LVU3467 6218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9935 .loc 1 6218 22 is_stmt 0 view .LVU3468 9936 0002 806A ldr r0, [r0, #40] 9937 .LVL676: 6219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9938 .loc 1 6219 3 is_stmt 1 view .LVU3469 6219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9939 .loc 1 6219 12 is_stmt 0 view .LVU3470 9940 0004 C36A ldr r3, [r0, #44] 9941 .LVL677: 6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9942 .loc 1 6221 3 is_stmt 1 view .LVU3471 6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9943 .loc 1 6221 6 is_stmt 0 view .LVU3472 9944 0006 B3F1807F cmp r3, #16777216 9945 000a 00D0 beq .L622 6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9946 .loc 1 6221 38 discriminator 1 view .LVU3473 9947 000c 33B9 cbnz r3, .L621 9948 .L622: 6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9949 .loc 1 6224 5 is_stmt 1 view .LVU3474 6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9950 .loc 1 6224 9 is_stmt 0 view .LVU3475 9951 000e 0268 ldr r2, [r0] 6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9952 .loc 1 6224 19 view .LVU3476 9953 0010 1368 ldr r3, [r2] 9954 .LVL678: 6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9955 .loc 1 6224 25 view .LVU3477 9956 0012 23F48043 bic r3, r3, #16384 9957 0016 1360 str r3, [r2] 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9958 .loc 1 6228 5 is_stmt 1 view .LVU3478 9959 0018 FFF7FEFF bl I2C_ITSlaveSeqCplt 9960 .LVL679: 9961 .L621: 6236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9962 .loc 1 6236 1 is_stmt 0 view .LVU3479 9963 001c 08BD pop {r3, pc} 9964 .cfi_endproc 9965 .LFE394: 9967 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits ARM GAS /tmp/ccbUHtu7.s page 354 9968 .align 1 9969 .syntax unified 9970 .thumb 9971 .thumb_func 9973 I2C_DMASlaveReceiveCplt: 9974 .LVL680: 9975 .LFB396: 6294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 9976 .loc 1 6294 1 is_stmt 1 view -0 9977 .cfi_startproc 9978 @ args = 0, pretend = 0, frame = 0 9979 @ frame_needed = 0, uses_anonymous_args = 0 6294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 9980 .loc 1 6294 1 is_stmt 0 view .LVU3481 9981 0000 08B5 push {r3, lr} 9982 .LCFI115: 9983 .cfi_def_cfa_offset 8 9984 .cfi_offset 3, -8 9985 .cfi_offset 14, -4 6296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9986 .loc 1 6296 3 is_stmt 1 view .LVU3482 6296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9987 .loc 1 6296 22 is_stmt 0 view .LVU3483 9988 0002 806A ldr r0, [r0, #40] 9989 .LVL681: 6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9990 .loc 1 6297 3 is_stmt 1 view .LVU3484 6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9991 .loc 1 6297 12 is_stmt 0 view .LVU3485 9992 0004 C26A ldr r2, [r0, #44] 9993 .LVL682: 6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9994 .loc 1 6299 3 is_stmt 1 view .LVU3486 6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9995 .loc 1 6299 8 is_stmt 0 view .LVU3487 9996 0006 C36B ldr r3, [r0, #60] 9997 0008 1B68 ldr r3, [r3] 9998 000a 5B68 ldr r3, [r3, #4] 6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9999 .loc 1 6299 6 view .LVU3488 10000 000c 13B9 cbnz r3, .L625 6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10001 .loc 1 6299 53 discriminator 1 view .LVU3489 10002 000e 12F5803F cmn r2, #65536 10003 0012 00D1 bne .L628 10004 .LVL683: 10005 .L625: 6314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10006 .loc 1 6314 1 view .LVU3490 10007 0014 08BD pop {r3, pc} 10008 .LVL684: 10009 .L628: 6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10010 .loc 1 6303 5 is_stmt 1 view .LVU3491 6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10011 .loc 1 6303 9 is_stmt 0 view .LVU3492 10012 0016 0268 ldr r2, [r0] ARM GAS /tmp/ccbUHtu7.s page 355 10013 .LVL685: 6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10014 .loc 1 6303 19 view .LVU3493 10015 0018 1368 ldr r3, [r2] 6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10016 .loc 1 6303 25 view .LVU3494 10017 001a 23F40043 bic r3, r3, #32768 10018 001e 1360 str r3, [r2] 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10019 .loc 1 6306 5 is_stmt 1 view .LVU3495 10020 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt 10021 .LVL686: 6313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10022 .loc 1 6313 3 view .LVU3496 6314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10023 .loc 1 6314 1 is_stmt 0 view .LVU3497 10024 0024 F6E7 b .L625 10025 .cfi_endproc 10026 .LFE396: 10028 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10029 .align 1 10030 .weak HAL_I2C_AddrCallback 10031 .syntax unified 10032 .thumb 10033 .thumb_func 10035 HAL_I2C_AddrCallback: 10036 .LVL687: 10037 .LFB369: 4579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10038 .loc 1 4579 1 is_stmt 1 view -0 10039 .cfi_startproc 10040 @ args = 0, pretend = 0, frame = 0 10041 @ frame_needed = 0, uses_anonymous_args = 0 10042 @ link register save eliminated. 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(TransferDirection); 10043 .loc 1 4581 3 view .LVU3499 4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(AddrMatchCode); 10044 .loc 1 4582 3 view .LVU3500 4583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10045 .loc 1 4583 3 view .LVU3501 4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10046 .loc 1 4588 1 is_stmt 0 view .LVU3502 10047 0000 7047 bx lr 10048 .cfi_endproc 10049 .LFE369: 10051 .section .text.I2C_ITAddrCplt,"ax",%progbits 10052 .align 1 10053 .syntax unified 10054 .thumb 10055 .thumb_func 10057 I2C_ITAddrCplt: 10058 .LVL688: 10059 .LFB384: 5420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; 10060 .loc 1 5420 1 is_stmt 1 view -0 10061 .cfi_startproc 10062 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccbUHtu7.s page 356 10063 @ frame_needed = 0, uses_anonymous_args = 0 5420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; 10064 .loc 1 5420 1 is_stmt 0 view .LVU3504 10065 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10066 .LCFI116: 10067 .cfi_def_cfa_offset 24 10068 .cfi_offset 3, -24 10069 .cfi_offset 4, -20 10070 .cfi_offset 5, -16 10071 .cfi_offset 6, -12 10072 .cfi_offset 7, -8 10073 .cfi_offset 14, -4 10074 0002 0446 mov r4, r0 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t slaveaddrcode; 10075 .loc 1 5421 3 is_stmt 1 view .LVU3505 5422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd1code; 10076 .loc 1 5422 3 view .LVU3506 5423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd2code; 10077 .loc 1 5423 3 view .LVU3507 5424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10078 .loc 1 5424 3 view .LVU3508 5427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10079 .loc 1 5427 3 view .LVU3509 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10080 .loc 1 5430 3 view .LVU3510 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10081 .loc 1 5430 22 is_stmt 0 view .LVU3511 10082 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10083 .loc 1 5430 6 view .LVU3512 10084 0008 03F02803 and r3, r3, #40 10085 000c 282B cmp r3, #40 10086 000e 06D0 beq .L636 5502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10087 .loc 1 5502 5 is_stmt 1 view .LVU3513 10088 0010 0368 ldr r3, [r0] 10089 0012 0822 movs r2, #8 10090 0014 DA61 str r2, [r3, #28] 5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10091 .loc 1 5505 5 view .LVU3514 5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10092 .loc 1 5505 5 view .LVU3515 10093 0016 0023 movs r3, #0 10094 0018 80F84030 strb r3, [r0, #64] 5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10095 .loc 1 5505 5 view .LVU3516 10096 .LVL689: 10097 .L630: 5507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10098 .loc 1 5507 1 is_stmt 0 view .LVU3517 10099 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10100 .LVL690: 10101 .L636: 5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10102 .loc 1 5432 5 is_stmt 1 view .LVU3518 5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10103 .loc 1 5432 25 is_stmt 0 view .LVU3519 ARM GAS /tmp/ccbUHtu7.s page 357 10104 001e 0368 ldr r3, [r0] 10105 0020 9E69 ldr r6, [r3, #24] 5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10106 .loc 1 5432 23 view .LVU3520 10107 0022 C6F30046 ubfx r6, r6, #16, #1 10108 .LVL691: 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10109 .loc 1 5433 5 is_stmt 1 view .LVU3521 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10110 .loc 1 5433 25 is_stmt 0 view .LVU3522 10111 0026 9A69 ldr r2, [r3, #24] 10112 0028 120C lsrs r2, r2, #16 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10113 .loc 1 5433 23 view .LVU3523 10114 002a 02F0FE05 and r5, r2, #254 10115 .LVL692: 5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10116 .loc 1 5434 5 is_stmt 1 view .LVU3524 5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10117 .loc 1 5434 25 is_stmt 0 view .LVU3525 10118 002e 9A68 ldr r2, [r3, #8] 5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10119 .loc 1 5434 23 view .LVU3526 10120 0030 C2F30902 ubfx r2, r2, #0, #10 10121 .LVL693: 5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10122 .loc 1 5435 5 is_stmt 1 view .LVU3527 5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10123 .loc 1 5435 25 is_stmt 0 view .LVU3528 10124 0034 DF68 ldr r7, [r3, #12] 5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10125 .loc 1 5435 23 view .LVU3529 10126 0036 07F0FE07 and r7, r7, #254 10127 .LVL694: 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10128 .loc 1 5438 5 is_stmt 1 view .LVU3530 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10129 .loc 1 5438 19 is_stmt 0 view .LVU3531 10130 003a C168 ldr r1, [r0, #12] 10131 .LVL695: 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10132 .loc 1 5438 8 view .LVU3532 10133 003c 0229 cmp r1, #2 10134 003e 22D1 bne .L632 5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10135 .loc 1 5440 7 is_stmt 1 view .LVU3533 5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10136 .loc 1 5440 44 is_stmt 0 view .LVU3534 10137 0040 85EAD215 eor r5, r5, r2, lsr #7 10138 .LVL696: 5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10139 .loc 1 5440 10 view .LVU3535 10140 0044 15F0060F tst r5, #6 10141 0048 10D1 bne .L633 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount++; 10142 .loc 1 5442 9 is_stmt 1 view .LVU3536 10143 .LVL697: ARM GAS /tmp/ccbUHtu7.s page 358 5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10144 .loc 1 5443 9 view .LVU3537 5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10145 .loc 1 5443 13 is_stmt 0 view .LVU3538 10146 004a 816C ldr r1, [r0, #72] 5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10147 .loc 1 5443 29 view .LVU3539 10148 004c 0131 adds r1, r1, #1 10149 004e 8164 str r1, [r0, #72] 5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10150 .loc 1 5444 9 is_stmt 1 view .LVU3540 5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10151 .loc 1 5444 17 is_stmt 0 view .LVU3541 10152 0050 816C ldr r1, [r0, #72] 5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10153 .loc 1 5444 12 view .LVU3542 10154 0052 0229 cmp r1, #2 10155 0054 E2D1 bne .L630 5447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10156 .loc 1 5447 11 is_stmt 1 view .LVU3543 5447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10157 .loc 1 5447 32 is_stmt 0 view .LVU3544 10158 0056 0021 movs r1, #0 10159 0058 8164 str r1, [r0, #72] 5450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10160 .loc 1 5450 11 is_stmt 1 view .LVU3545 10161 005a 0820 movs r0, #8 10162 .LVL698: 5450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10163 .loc 1 5450 11 is_stmt 0 view .LVU3546 10164 005c D861 str r0, [r3, #28] 5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10165 .loc 1 5453 11 is_stmt 1 view .LVU3547 5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10166 .loc 1 5453 11 view .LVU3548 10167 005e 84F84010 strb r1, [r4, #64] 5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10168 .loc 1 5453 11 view .LVU3549 5459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10169 .loc 1 5459 11 view .LVU3550 10170 0062 3146 mov r1, r6 10171 0064 2046 mov r0, r4 10172 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10173 .LVL699: 5459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10174 .loc 1 5459 11 is_stmt 0 view .LVU3551 10175 006a D7E7 b .L630 10176 .LVL700: 10177 .L633: 5465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10178 .loc 1 5465 9 is_stmt 1 view .LVU3552 5468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10179 .loc 1 5468 9 view .LVU3553 10180 006c 4FF40041 mov r1, #32768 10181 0070 FFF7FEFF bl I2C_Disable_IRQ 10182 .LVL701: 5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 359 10183 .loc 1 5471 9 view .LVU3554 5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10184 .loc 1 5471 9 view .LVU3555 10185 0074 0023 movs r3, #0 10186 0076 84F84030 strb r3, [r4, #64] 5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10187 .loc 1 5471 9 view .LVU3556 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10188 .loc 1 5477 9 view .LVU3557 10189 007a 3A46 mov r2, r7 10190 007c 3146 mov r1, r6 10191 007e 2046 mov r0, r4 10192 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10193 .LVL702: 10194 0084 CAE7 b .L630 10195 .LVL703: 10196 .L632: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10197 .loc 1 5485 7 view .LVU3558 10198 0086 4FF40041 mov r1, #32768 10199 008a FFF7FEFF bl I2C_Disable_IRQ 10200 .LVL704: 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10201 .loc 1 5488 7 view .LVU3559 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10202 .loc 1 5488 7 view .LVU3560 10203 008e 0023 movs r3, #0 10204 0090 84F84030 strb r3, [r4, #64] 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10205 .loc 1 5488 7 view .LVU3561 5494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10206 .loc 1 5494 7 view .LVU3562 10207 0094 2A46 mov r2, r5 10208 0096 3146 mov r1, r6 10209 0098 2046 mov r0, r4 10210 009a FFF7FEFF bl HAL_I2C_AddrCallback 10211 .LVL705: 10212 009e BDE7 b .L630 10213 .cfi_endproc 10214 .LFE384: 10216 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10217 .align 1 10218 .weak HAL_I2C_ListenCpltCallback 10219 .syntax unified 10220 .thumb 10221 .thumb_func 10223 HAL_I2C_ListenCpltCallback: 10224 .LVL706: 10225 .LFB370: 4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10226 .loc 1 4597 1 view -0 10227 .cfi_startproc 10228 @ args = 0, pretend = 0, frame = 0 10229 @ frame_needed = 0, uses_anonymous_args = 0 10230 @ link register save eliminated. 4599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10231 .loc 1 4599 3 view .LVU3564 ARM GAS /tmp/ccbUHtu7.s page 360 4604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10232 .loc 1 4604 1 is_stmt 0 view .LVU3565 10233 0000 7047 bx lr 10234 .cfi_endproc 10235 .LFE370: 10237 .section .text.I2C_ITListenCplt,"ax",%progbits 10238 .align 1 10239 .syntax unified 10240 .thumb 10241 .thumb_func 10243 I2C_ITListenCplt: 10244 .LVL707: 10245 .LFB389: 5944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 10246 .loc 1 5944 1 is_stmt 1 view -0 10247 .cfi_startproc 10248 @ args = 0, pretend = 0, frame = 0 10249 @ frame_needed = 0, uses_anonymous_args = 0 5944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 10250 .loc 1 5944 1 is_stmt 0 view .LVU3567 10251 0000 10B5 push {r4, lr} 10252 .LCFI117: 10253 .cfi_def_cfa_offset 8 10254 .cfi_offset 4, -8 10255 .cfi_offset 14, -4 10256 0002 0446 mov r4, r0 5946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10257 .loc 1 5946 3 is_stmt 1 view .LVU3568 5946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10258 .loc 1 5946 21 is_stmt 0 view .LVU3569 10259 0004 174B ldr r3, .L641 10260 0006 C362 str r3, [r0, #44] 5947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10261 .loc 1 5947 3 is_stmt 1 view .LVU3570 5947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10262 .loc 1 5947 23 is_stmt 0 view .LVU3571 10263 0008 0023 movs r3, #0 10264 000a 0363 str r3, [r0, #48] 5948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10265 .loc 1 5948 3 is_stmt 1 view .LVU3572 5948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10266 .loc 1 5948 15 is_stmt 0 view .LVU3573 10267 000c 2022 movs r2, #32 10268 000e 80F84120 strb r2, [r0, #65] 5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10269 .loc 1 5949 3 is_stmt 1 view .LVU3574 5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10270 .loc 1 5949 14 is_stmt 0 view .LVU3575 10271 0012 80F84230 strb r3, [r0, #66] 5950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10272 .loc 1 5950 3 is_stmt 1 view .LVU3576 5950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10273 .loc 1 5950 17 is_stmt 0 view .LVU3577 10274 0016 4363 str r3, [r0, #52] 5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10275 .loc 1 5953 3 is_stmt 1 view .LVU3578 5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 361 10276 .loc 1 5953 6 is_stmt 0 view .LVU3579 10277 0018 11F0040F tst r1, #4 10278 001c 13D0 beq .L639 5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10279 .loc 1 5956 5 is_stmt 1 view .LVU3580 5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10280 .loc 1 5956 36 is_stmt 0 view .LVU3581 10281 001e 0368 ldr r3, [r0] 5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10282 .loc 1 5956 46 view .LVU3582 10283 0020 5A6A ldr r2, [r3, #36] 5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10284 .loc 1 5956 10 view .LVU3583 10285 0022 436A ldr r3, [r0, #36] 5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10286 .loc 1 5956 21 view .LVU3584 10287 0024 1A70 strb r2, [r3] 5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10288 .loc 1 5959 5 is_stmt 1 view .LVU3585 5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10289 .loc 1 5959 9 is_stmt 0 view .LVU3586 10290 0026 436A ldr r3, [r0, #36] 5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10291 .loc 1 5959 19 view .LVU3587 10292 0028 0133 adds r3, r3, #1 10293 002a 4362 str r3, [r0, #36] 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10294 .loc 1 5961 5 is_stmt 1 view .LVU3588 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10295 .loc 1 5961 14 is_stmt 0 view .LVU3589 10296 002c 038D ldrh r3, [r0, #40] 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10297 .loc 1 5961 8 view .LVU3590 10298 002e 53B1 cbz r3, .L639 5963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 10299 .loc 1 5963 7 is_stmt 1 view .LVU3591 5963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 10300 .loc 1 5963 21 is_stmt 0 view .LVU3592 10301 0030 013B subs r3, r3, #1 10302 0032 0385 strh r3, [r0, #40] @ movhi 5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10303 .loc 1 5964 7 is_stmt 1 view .LVU3593 5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10304 .loc 1 5964 11 is_stmt 0 view .LVU3594 10305 0034 438D ldrh r3, [r0, #42] 10306 0036 9BB2 uxth r3, r3 5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10307 .loc 1 5964 22 view .LVU3595 10308 0038 013B subs r3, r3, #1 10309 003a 9BB2 uxth r3, r3 10310 003c 4385 strh r3, [r0, #42] @ movhi 5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10311 .loc 1 5967 7 is_stmt 1 view .LVU3596 5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10312 .loc 1 5967 11 is_stmt 0 view .LVU3597 10313 003e 436C ldr r3, [r0, #68] 5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 362 10314 .loc 1 5967 23 view .LVU3598 10315 0040 43F00403 orr r3, r3, #4 10316 0044 4364 str r3, [r0, #68] 10317 .L639: 5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10318 .loc 1 5972 3 is_stmt 1 view .LVU3599 10319 0046 48F20301 movw r1, #32771 10320 .LVL708: 5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10321 .loc 1 5972 3 is_stmt 0 view .LVU3600 10322 004a 2046 mov r0, r4 10323 .LVL709: 5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10324 .loc 1 5972 3 view .LVU3601 10325 004c FFF7FEFF bl I2C_Disable_IRQ 10326 .LVL710: 5975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10327 .loc 1 5975 3 is_stmt 1 view .LVU3602 10328 0050 2368 ldr r3, [r4] 10329 0052 1022 movs r2, #16 10330 0054 DA61 str r2, [r3, #28] 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10331 .loc 1 5978 3 view .LVU3603 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10332 .loc 1 5978 3 view .LVU3604 10333 0056 0023 movs r3, #0 10334 0058 84F84030 strb r3, [r4, #64] 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10335 .loc 1 5978 3 view .LVU3605 5984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10336 .loc 1 5984 3 view .LVU3606 10337 005c 2046 mov r0, r4 10338 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10339 .LVL711: 5986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10340 .loc 1 5986 1 is_stmt 0 view .LVU3607 10341 0062 10BD pop {r4, pc} 10342 .LVL712: 10343 .L642: 5986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10344 .loc 1 5986 1 view .LVU3608 10345 .align 2 10346 .L641: 10347 0064 0000FFFF .word -65536 10348 .cfi_endproc 10349 .LFE389: 10351 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10352 .align 1 10353 .weak HAL_I2C_MemTxCpltCallback 10354 .syntax unified 10355 .thumb 10356 .thumb_func 10358 HAL_I2C_MemTxCpltCallback: 10359 .LVL713: 10360 .LFB371: 4613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10361 .loc 1 4613 1 is_stmt 1 view -0 ARM GAS /tmp/ccbUHtu7.s page 363 10362 .cfi_startproc 10363 @ args = 0, pretend = 0, frame = 0 10364 @ frame_needed = 0, uses_anonymous_args = 0 10365 @ link register save eliminated. 4615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10366 .loc 1 4615 3 view .LVU3610 4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10367 .loc 1 4620 1 is_stmt 0 view .LVU3611 10368 0000 7047 bx lr 10369 .cfi_endproc 10370 .LFE371: 10372 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10373 .align 1 10374 .weak HAL_I2C_MemRxCpltCallback 10375 .syntax unified 10376 .thumb 10377 .thumb_func 10379 HAL_I2C_MemRxCpltCallback: 10380 .LVL714: 10381 .LFB372: 4629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10382 .loc 1 4629 1 is_stmt 1 view -0 10383 .cfi_startproc 10384 @ args = 0, pretend = 0, frame = 0 10385 @ frame_needed = 0, uses_anonymous_args = 0 10386 @ link register save eliminated. 4631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10387 .loc 1 4631 3 view .LVU3613 4636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10388 .loc 1 4636 1 is_stmt 0 view .LVU3614 10389 0000 7047 bx lr 10390 .cfi_endproc 10391 .LFE372: 10393 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10394 .align 1 10395 .weak HAL_I2C_ErrorCallback 10396 .syntax unified 10397 .thumb 10398 .thumb_func 10400 HAL_I2C_ErrorCallback: 10401 .LVL715: 10402 .LFB373: 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10403 .loc 1 4645 1 is_stmt 1 view -0 10404 .cfi_startproc 10405 @ args = 0, pretend = 0, frame = 0 10406 @ frame_needed = 0, uses_anonymous_args = 0 10407 @ link register save eliminated. 4647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10408 .loc 1 4647 3 view .LVU3616 4652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10409 .loc 1 4652 1 is_stmt 0 view .LVU3617 10410 0000 7047 bx lr 10411 .cfi_endproc 10412 .LFE373: 10414 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10415 .align 1 ARM GAS /tmp/ccbUHtu7.s page 364 10416 .weak HAL_I2C_AbortCpltCallback 10417 .syntax unified 10418 .thumb 10419 .thumb_func 10421 HAL_I2C_AbortCpltCallback: 10422 .LVL716: 10423 .LFB374: 4661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10424 .loc 1 4661 1 is_stmt 1 view -0 10425 .cfi_startproc 10426 @ args = 0, pretend = 0, frame = 0 10427 @ frame_needed = 0, uses_anonymous_args = 0 10428 @ link register save eliminated. 4663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10429 .loc 1 4663 3 view .LVU3619 4668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10430 .loc 1 4668 1 is_stmt 0 view .LVU3620 10431 0000 7047 bx lr 10432 .cfi_endproc 10433 .LFE374: 10435 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10436 .align 1 10437 .syntax unified 10438 .thumb 10439 .thumb_func 10441 I2C_TreatErrorCallback: 10442 .LVL717: 10443 .LFB391: 6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10444 .loc 1 6107 1 is_stmt 1 view -0 10445 .cfi_startproc 10446 @ args = 0, pretend = 0, frame = 0 10447 @ frame_needed = 0, uses_anonymous_args = 0 6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10448 .loc 1 6107 1 is_stmt 0 view .LVU3622 10449 0000 08B5 push {r3, lr} 10450 .LCFI118: 10451 .cfi_def_cfa_offset 8 10452 .cfi_offset 3, -8 10453 .cfi_offset 14, -4 6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10454 .loc 1 6108 3 is_stmt 1 view .LVU3623 6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10455 .loc 1 6108 11 is_stmt 0 view .LVU3624 10456 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10457 0006 DBB2 uxtb r3, r3 6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10458 .loc 1 6108 6 view .LVU3625 10459 0008 602B cmp r3, #96 10460 000a 06D0 beq .L651 6125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10461 .loc 1 6125 5 is_stmt 1 view .LVU3626 6125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10462 .loc 1 6125 25 is_stmt 0 view .LVU3627 10463 000c 0023 movs r3, #0 10464 000e 0363 str r3, [r0, #48] 6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 365 10465 .loc 1 6128 5 is_stmt 1 view .LVU3628 6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10466 .loc 1 6128 5 view .LVU3629 10467 0010 80F84030 strb r3, [r0, #64] 6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10468 .loc 1 6128 5 view .LVU3630 6134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10469 .loc 1 6134 5 view .LVU3631 10470 0014 FFF7FEFF bl HAL_I2C_ErrorCallback 10471 .LVL718: 10472 .L647: 6137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10473 .loc 1 6137 1 is_stmt 0 view .LVU3632 10474 0018 08BD pop {r3, pc} 10475 .LVL719: 10476 .L651: 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10477 .loc 1 6110 5 is_stmt 1 view .LVU3633 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10478 .loc 1 6110 17 is_stmt 0 view .LVU3634 10479 001a 2023 movs r3, #32 10480 001c 80F84130 strb r3, [r0, #65] 6111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10481 .loc 1 6111 5 is_stmt 1 view .LVU3635 6111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10482 .loc 1 6111 25 is_stmt 0 view .LVU3636 10483 0020 0023 movs r3, #0 10484 0022 0363 str r3, [r0, #48] 6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10485 .loc 1 6114 5 is_stmt 1 view .LVU3637 6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10486 .loc 1 6114 5 view .LVU3638 10487 0024 80F84030 strb r3, [r0, #64] 6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10488 .loc 1 6114 5 view .LVU3639 6120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10489 .loc 1 6120 5 view .LVU3640 10490 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10491 .LVL720: 6120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10492 .loc 1 6120 5 is_stmt 0 view .LVU3641 10493 002c F4E7 b .L647 10494 .cfi_endproc 10495 .LFE391: 10497 .section .text.I2C_ITError,"ax",%progbits 10498 .align 1 10499 .syntax unified 10500 .thumb 10501 .thumb_func 10503 I2C_ITError: 10504 .LVL721: 10505 .LFB390: 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10506 .loc 1 5995 1 is_stmt 1 view -0 10507 .cfi_startproc 10508 @ args = 0, pretend = 0, frame = 0 10509 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccbUHtu7.s page 366 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10510 .loc 1 5995 1 is_stmt 0 view .LVU3643 10511 0000 10B5 push {r4, lr} 10512 .LCFI119: 10513 .cfi_def_cfa_offset 8 10514 .cfi_offset 4, -8 10515 .cfi_offset 14, -4 10516 0002 0446 mov r4, r0 5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmppreviousstate; 10517 .loc 1 5996 3 is_stmt 1 view .LVU3644 5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmppreviousstate; 10518 .loc 1 5996 24 is_stmt 0 view .LVU3645 10519 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10520 .LVL722: 5997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10521 .loc 1 5997 3 is_stmt 1 view .LVU3646 6000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10522 .loc 1 6000 3 view .LVU3647 6000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10523 .loc 1 6000 23 is_stmt 0 view .LVU3648 10524 0008 0022 movs r2, #0 10525 000a 80F84220 strb r2, [r0, #66] 6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 10526 .loc 1 6001 3 is_stmt 1 view .LVU3649 6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 10527 .loc 1 6001 23 is_stmt 0 view .LVU3650 10528 000e 3B48 ldr r0, .L666 10529 .LVL723: 6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 10530 .loc 1 6001 23 view .LVU3651 10531 0010 E062 str r0, [r4, #44] 6002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10532 .loc 1 6002 3 is_stmt 1 view .LVU3652 6002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10533 .loc 1 6002 23 is_stmt 0 view .LVU3653 10534 0012 6285 strh r2, [r4, #42] @ movhi 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10535 .loc 1 6005 3 is_stmt 1 view .LVU3654 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10536 .loc 1 6005 7 is_stmt 0 view .LVU3655 10537 0014 626C ldr r2, [r4, #68] 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10538 .loc 1 6005 19 view .LVU3656 10539 0016 0A43 orrs r2, r2, r1 10540 0018 6264 str r2, [r4, #68] 6008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10541 .loc 1 6008 3 is_stmt 1 view .LVU3657 6009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10542 .loc 1 6009 50 is_stmt 0 view .LVU3658 10543 001a 283B subs r3, r3, #40 10544 .LVL724: 6009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10545 .loc 1 6009 50 view .LVU3659 10546 001c DBB2 uxtb r3, r3 6008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10547 .loc 1 6008 6 view .LVU3660 10548 001e 022B cmp r3, #2 ARM GAS /tmp/ccbUHtu7.s page 367 10549 0020 19D8 bhi .L653 6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10550 .loc 1 6013 5 is_stmt 1 view .LVU3661 10551 0022 0321 movs r1, #3 10552 .LVL725: 6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10553 .loc 1 6013 5 is_stmt 0 view .LVU3662 10554 0024 2046 mov r0, r4 10555 0026 FFF7FEFF bl I2C_Disable_IRQ 10556 .LVL726: 6016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10557 .loc 1 6016 5 is_stmt 1 view .LVU3663 6016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10558 .loc 1 6016 25 is_stmt 0 view .LVU3664 10559 002a 2823 movs r3, #40 10560 002c 84F84130 strb r3, [r4, #65] 6017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10561 .loc 1 6017 5 is_stmt 1 view .LVU3665 6017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10562 .loc 1 6017 25 is_stmt 0 view .LVU3666 10563 0030 334B ldr r3, .L666+4 10564 0032 6363 str r3, [r4, #52] 10565 .L654: 6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 10566 .loc 1 6035 3 is_stmt 1 view .LVU3667 6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 10567 .loc 1 6035 20 is_stmt 0 view .LVU3668 10568 0034 236B ldr r3, [r4, #48] 10569 .LVL727: 6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10570 .loc 1 6036 3 is_stmt 1 view .LVU3669 6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10571 .loc 1 6036 12 is_stmt 0 view .LVU3670 10572 0036 A26B ldr r2, [r4, #56] 6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10573 .loc 1 6036 6 view .LVU3671 10574 0038 1AB1 cbz r2, .L656 6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10575 .loc 1 6036 30 discriminator 1 view .LVU3672 10576 003a 112B cmp r3, #17 10577 003c 1BD0 beq .L657 6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10578 .loc 1 6036 81 discriminator 2 view .LVU3673 10579 003e 212B cmp r3, #33 10580 0040 19D0 beq .L657 10581 .L656: 6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10582 .loc 1 6066 8 is_stmt 1 view .LVU3674 6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10583 .loc 1 6066 17 is_stmt 0 view .LVU3675 10584 0042 E26B ldr r2, [r4, #60] 6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10585 .loc 1 6066 11 view .LVU3676 10586 0044 1AB1 cbz r2, .L661 6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10587 .loc 1 6066 35 discriminator 1 view .LVU3677 10588 0046 122B cmp r3, #18 ARM GAS /tmp/ccbUHtu7.s page 368 10589 0048 36D0 beq .L662 6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10590 .loc 1 6066 86 discriminator 2 view .LVU3678 10591 004a 222B cmp r3, #34 10592 004c 34D0 beq .L662 10593 .L661: 6097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10594 .loc 1 6097 5 is_stmt 1 view .LVU3679 10595 004e 2046 mov r0, r4 10596 0050 FFF7FEFF bl I2C_TreatErrorCallback 10597 .LVL728: 10598 .L652: 6099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10599 .loc 1 6099 1 is_stmt 0 view .LVU3680 10600 0054 10BD pop {r4, pc} 10601 .LVL729: 10602 .L653: 6022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10603 .loc 1 6022 5 is_stmt 1 view .LVU3681 10604 0056 48F20301 movw r1, #32771 10605 .LVL730: 6022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10606 .loc 1 6022 5 is_stmt 0 view .LVU3682 10607 005a 2046 mov r0, r4 10608 005c FFF7FEFF bl I2C_Disable_IRQ 10609 .LVL731: 6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10610 .loc 1 6026 5 is_stmt 1 view .LVU3683 6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10611 .loc 1 6026 13 is_stmt 0 view .LVU3684 10612 0060 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10613 0064 DBB2 uxtb r3, r3 6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10614 .loc 1 6026 8 view .LVU3685 10615 0066 602B cmp r3, #96 10616 0068 02D0 beq .L655 6029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10617 .loc 1 6029 7 is_stmt 1 view .LVU3686 6029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10618 .loc 1 6029 27 is_stmt 0 view .LVU3687 10619 006a 2023 movs r3, #32 10620 006c 84F84130 strb r3, [r4, #65] 10621 .L655: 6031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10622 .loc 1 6031 5 is_stmt 1 view .LVU3688 6031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10623 .loc 1 6031 25 is_stmt 0 view .LVU3689 10624 0070 0023 movs r3, #0 10625 0072 6363 str r3, [r4, #52] 10626 0074 DEE7 b .L654 10627 .LVL732: 10628 .L657: 6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10629 .loc 1 6039 5 is_stmt 1 view .LVU3690 6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10630 .loc 1 6039 14 is_stmt 0 view .LVU3691 10631 0076 2368 ldr r3, [r4] ARM GAS /tmp/ccbUHtu7.s page 369 10632 .LVL733: 6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10633 .loc 1 6039 24 view .LVU3692 10634 0078 1A68 ldr r2, [r3] 6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10635 .loc 1 6039 8 view .LVU3693 10636 007a 12F4804F tst r2, #16384 10637 007e 03D0 beq .L658 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10638 .loc 1 6041 7 is_stmt 1 view .LVU3694 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10639 .loc 1 6041 21 is_stmt 0 view .LVU3695 10640 0080 1A68 ldr r2, [r3] 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10641 .loc 1 6041 27 view .LVU3696 10642 0082 22F48042 bic r2, r2, #16384 10643 0086 1A60 str r2, [r3] 10644 .L658: 6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10645 .loc 1 6044 5 is_stmt 1 view .LVU3697 6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10646 .loc 1 6044 9 is_stmt 0 view .LVU3698 10647 0088 A06B ldr r0, [r4, #56] 10648 008a FFF7FEFF bl HAL_DMA_GetState 10649 .LVL734: 6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10650 .loc 1 6044 8 view .LVU3699 10651 008e 0128 cmp r0, #1 10652 0090 0ED0 beq .L659 6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10653 .loc 1 6048 7 is_stmt 1 view .LVU3700 6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10654 .loc 1 6048 11 is_stmt 0 view .LVU3701 10655 0092 A36B ldr r3, [r4, #56] 6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10656 .loc 1 6048 39 view .LVU3702 10657 0094 1B4A ldr r2, .L666+8 10658 0096 9A63 str r2, [r3, #56] 6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10659 .loc 1 6051 7 is_stmt 1 view .LVU3703 6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10660 .loc 1 6051 7 view .LVU3704 10661 0098 0023 movs r3, #0 10662 009a 84F84030 strb r3, [r4, #64] 6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10663 .loc 1 6051 7 view .LVU3705 6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10664 .loc 1 6054 7 view .LVU3706 6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10665 .loc 1 6054 11 is_stmt 0 view .LVU3707 10666 009e A06B ldr r0, [r4, #56] 10667 00a0 FFF7FEFF bl HAL_DMA_Abort_IT 10668 .LVL735: 6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10669 .loc 1 6054 10 view .LVU3708 10670 00a4 0028 cmp r0, #0 10671 00a6 D5D0 beq .L652 ARM GAS /tmp/ccbUHtu7.s page 370 6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10672 .loc 1 6057 9 is_stmt 1 view .LVU3709 6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10673 .loc 1 6057 13 is_stmt 0 view .LVU3710 10674 00a8 A06B ldr r0, [r4, #56] 6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10675 .loc 1 6057 21 view .LVU3711 10676 00aa 836B ldr r3, [r0, #56] 6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10677 .loc 1 6057 9 view .LVU3712 10678 00ac 9847 blx r3 10679 .LVL736: 10680 00ae D1E7 b .L652 10681 .L659: 6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10682 .loc 1 6062 7 is_stmt 1 view .LVU3713 10683 00b0 2046 mov r0, r4 10684 00b2 FFF7FEFF bl I2C_TreatErrorCallback 10685 .LVL737: 10686 00b6 CDE7 b .L652 10687 .LVL738: 10688 .L662: 6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10689 .loc 1 6069 5 view .LVU3714 6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10690 .loc 1 6069 14 is_stmt 0 view .LVU3715 10691 00b8 2368 ldr r3, [r4] 10692 .LVL739: 6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10693 .loc 1 6069 24 view .LVU3716 10694 00ba 1A68 ldr r2, [r3] 6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10695 .loc 1 6069 8 view .LVU3717 10696 00bc 12F4004F tst r2, #32768 10697 00c0 03D0 beq .L663 6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10698 .loc 1 6071 7 is_stmt 1 view .LVU3718 6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10699 .loc 1 6071 21 is_stmt 0 view .LVU3719 10700 00c2 1A68 ldr r2, [r3] 6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10701 .loc 1 6071 27 view .LVU3720 10702 00c4 22F40042 bic r2, r2, #32768 10703 00c8 1A60 str r2, [r3] 10704 .L663: 6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10705 .loc 1 6074 5 is_stmt 1 view .LVU3721 6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10706 .loc 1 6074 9 is_stmt 0 view .LVU3722 10707 00ca E06B ldr r0, [r4, #60] 10708 00cc FFF7FEFF bl HAL_DMA_GetState 10709 .LVL740: 6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10710 .loc 1 6074 8 view .LVU3723 10711 00d0 0128 cmp r0, #1 10712 00d2 0ED0 beq .L664 6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 371 10713 .loc 1 6078 7 is_stmt 1 view .LVU3724 6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10714 .loc 1 6078 11 is_stmt 0 view .LVU3725 10715 00d4 E36B ldr r3, [r4, #60] 6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10716 .loc 1 6078 39 view .LVU3726 10717 00d6 0B4A ldr r2, .L666+8 10718 00d8 9A63 str r2, [r3, #56] 6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10719 .loc 1 6081 7 is_stmt 1 view .LVU3727 6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10720 .loc 1 6081 7 view .LVU3728 10721 00da 0023 movs r3, #0 10722 00dc 84F84030 strb r3, [r4, #64] 6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10723 .loc 1 6081 7 view .LVU3729 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10724 .loc 1 6084 7 view .LVU3730 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10725 .loc 1 6084 11 is_stmt 0 view .LVU3731 10726 00e0 E06B ldr r0, [r4, #60] 10727 00e2 FFF7FEFF bl HAL_DMA_Abort_IT 10728 .LVL741: 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10729 .loc 1 6084 10 view .LVU3732 10730 00e6 0028 cmp r0, #0 10731 00e8 B4D0 beq .L652 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10732 .loc 1 6087 9 is_stmt 1 view .LVU3733 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10733 .loc 1 6087 13 is_stmt 0 view .LVU3734 10734 00ea E06B ldr r0, [r4, #60] 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10735 .loc 1 6087 21 view .LVU3735 10736 00ec 836B ldr r3, [r0, #56] 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10737 .loc 1 6087 9 view .LVU3736 10738 00ee 9847 blx r3 10739 .LVL742: 10740 00f0 B0E7 b .L652 10741 .L664: 6092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10742 .loc 1 6092 7 is_stmt 1 view .LVU3737 10743 00f2 2046 mov r0, r4 10744 00f4 FFF7FEFF bl I2C_TreatErrorCallback 10745 .LVL743: 10746 00f8 ACE7 b .L652 10747 .L667: 10748 00fa 00BF .align 2 10749 .L666: 10750 00fc 0000FFFF .word -65536 10751 0100 00000000 .word I2C_Slave_ISR_IT 10752 0104 00000000 .word I2C_DMAAbort 10753 .cfi_endproc 10754 .LFE390: 10756 .section .text.I2C_ITSlaveCplt,"ax",%progbits 10757 .align 1 ARM GAS /tmp/ccbUHtu7.s page 372 10758 .syntax unified 10759 .thumb 10760 .thumb_func 10762 I2C_ITSlaveCplt: 10763 .LVL744: 10764 .LFB388: 5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10765 .loc 1 5785 1 view -0 10766 .cfi_startproc 10767 @ args = 0, pretend = 0, frame = 0 10768 @ frame_needed = 0, uses_anonymous_args = 0 5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10769 .loc 1 5785 1 is_stmt 0 view .LVU3739 10770 0000 70B5 push {r4, r5, r6, lr} 10771 .LCFI120: 10772 .cfi_def_cfa_offset 16 10773 .cfi_offset 4, -16 10774 .cfi_offset 5, -12 10775 .cfi_offset 6, -8 10776 .cfi_offset 14, -4 10777 0002 0446 mov r4, r0 10778 0004 0D46 mov r5, r1 5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10779 .loc 1 5786 3 is_stmt 1 view .LVU3740 5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10780 .loc 1 5786 26 is_stmt 0 view .LVU3741 10781 0006 0268 ldr r2, [r0] 5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10782 .loc 1 5786 12 view .LVU3742 10783 0008 1668 ldr r6, [r2] 10784 .LVL745: 5787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10785 .loc 1 5787 3 is_stmt 1 view .LVU3743 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10786 .loc 1 5788 3 view .LVU3744 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10787 .loc 1 5788 24 is_stmt 0 view .LVU3745 10788 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10789 000e DBB2 uxtb r3, r3 10790 .LVL746: 5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10791 .loc 1 5791 3 is_stmt 1 view .LVU3746 10792 0010 2021 movs r1, #32 10793 .LVL747: 5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10794 .loc 1 5791 3 is_stmt 0 view .LVU3747 10795 0012 D161 str r1, [r2, #28] 5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10796 .loc 1 5794 3 is_stmt 1 view .LVU3748 5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10797 .loc 1 5794 6 is_stmt 0 view .LVU3749 10798 0014 212B cmp r3, #33 10799 0016 0DD0 beq .L669 5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10800 .loc 1 5794 43 discriminator 1 view .LVU3750 10801 0018 292B cmp r3, #41 10802 001a 0BD0 beq .L669 ARM GAS /tmp/ccbUHtu7.s page 373 5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10803 .loc 1 5799 8 is_stmt 1 view .LVU3751 5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10804 .loc 1 5799 11 is_stmt 0 view .LVU3752 10805 001c 222B cmp r3, #34 10806 001e 01D0 beq .L672 5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10807 .loc 1 5799 48 discriminator 1 view .LVU3753 10808 0020 2A2B cmp r3, #42 10809 0022 0ED1 bne .L671 10810 .L672: 5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10811 .loc 1 5801 5 is_stmt 1 view .LVU3754 10812 0024 48F20201 movw r1, #32770 10813 0028 2046 mov r0, r4 10814 .LVL748: 5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10815 .loc 1 5801 5 is_stmt 0 view .LVU3755 10816 002a FFF7FEFF bl I2C_Disable_IRQ 10817 .LVL749: 5802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10818 .loc 1 5802 5 is_stmt 1 view .LVU3756 5802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10819 .loc 1 5802 25 is_stmt 0 view .LVU3757 10820 002e 2223 movs r3, #34 10821 0030 2363 str r3, [r4, #48] 10822 0032 06E0 b .L671 10823 .LVL750: 10824 .L669: 5796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10825 .loc 1 5796 5 is_stmt 1 view .LVU3758 10826 0034 48F20101 movw r1, #32769 10827 0038 2046 mov r0, r4 10828 .LVL751: 5796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10829 .loc 1 5796 5 is_stmt 0 view .LVU3759 10830 003a FFF7FEFF bl I2C_Disable_IRQ 10831 .LVL752: 5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10832 .loc 1 5797 5 is_stmt 1 view .LVU3760 5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10833 .loc 1 5797 25 is_stmt 0 view .LVU3761 10834 003e 2123 movs r3, #33 10835 0040 2363 str r3, [r4, #48] 10836 .L671: 5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10837 .loc 1 5810 3 is_stmt 1 view .LVU3762 5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10838 .loc 1 5810 7 is_stmt 0 view .LVU3763 10839 0042 2268 ldr r2, [r4] 5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10840 .loc 1 5810 17 view .LVU3764 10841 0044 5368 ldr r3, [r2, #4] 5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10842 .loc 1 5810 23 view .LVU3765 10843 0046 43F40043 orr r3, r3, #32768 10844 004a 5360 str r3, [r2, #4] ARM GAS /tmp/ccbUHtu7.s page 374 5813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10845 .loc 1 5813 3 is_stmt 1 view .LVU3766 10846 004c 2268 ldr r2, [r4] 10847 004e 5368 ldr r3, [r2, #4] 10848 0050 23F0FF73 bic r3, r3, #33423360 10849 0054 23F48B33 bic r3, r3, #71168 10850 0058 23F4FF73 bic r3, r3, #510 10851 005c 23F00103 bic r3, r3, #1 10852 0060 5360 str r3, [r2, #4] 5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10853 .loc 1 5816 3 view .LVU3767 10854 0062 2046 mov r0, r4 10855 0064 FFF7FEFF bl I2C_Flush_TXDR 10856 .LVL753: 5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10857 .loc 1 5819 3 view .LVU3768 5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10858 .loc 1 5819 6 is_stmt 0 view .LVU3769 10859 0068 16F4804F tst r6, #16384 10860 006c 40D0 beq .L673 5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10861 .loc 1 5822 5 is_stmt 1 view .LVU3770 5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10862 .loc 1 5822 9 is_stmt 0 view .LVU3771 10863 006e 2268 ldr r2, [r4] 5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10864 .loc 1 5822 19 view .LVU3772 10865 0070 1368 ldr r3, [r2] 5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10866 .loc 1 5822 25 view .LVU3773 10867 0072 23F48043 bic r3, r3, #16384 10868 0076 1360 str r3, [r2] 5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10869 .loc 1 5824 5 is_stmt 1 view .LVU3774 5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10870 .loc 1 5824 13 is_stmt 0 view .LVU3775 10871 0078 A36B ldr r3, [r4, #56] 5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10872 .loc 1 5824 8 view .LVU3776 10873 007a 1BB1 cbz r3, .L674 5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10874 .loc 1 5826 7 is_stmt 1 view .LVU3777 5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10875 .loc 1 5826 35 is_stmt 0 view .LVU3778 10876 007c 1B68 ldr r3, [r3] 10877 007e 5B68 ldr r3, [r3, #4] 5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10878 .loc 1 5826 25 view .LVU3779 10879 0080 9BB2 uxth r3, r3 5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10880 .loc 1 5826 23 view .LVU3780 10881 0082 6385 strh r3, [r4, #42] @ movhi 10882 .L674: 5842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10883 .loc 1 5842 3 is_stmt 1 view .LVU3781 5845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10884 .loc 1 5845 3 view .LVU3782 ARM GAS /tmp/ccbUHtu7.s page 375 5845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10885 .loc 1 5845 6 is_stmt 0 view .LVU3783 10886 0084 15F0040F tst r5, #4 10887 0088 11D0 beq .L675 5848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10888 .loc 1 5848 5 is_stmt 1 view .LVU3784 5848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10889 .loc 1 5848 16 is_stmt 0 view .LVU3785 10890 008a 25F00405 bic r5, r5, #4 10891 .LVL754: 5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10892 .loc 1 5851 5 is_stmt 1 view .LVU3786 5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10893 .loc 1 5851 36 is_stmt 0 view .LVU3787 10894 008e 2368 ldr r3, [r4] 5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10895 .loc 1 5851 46 view .LVU3788 10896 0090 5A6A ldr r2, [r3, #36] 5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10897 .loc 1 5851 10 view .LVU3789 10898 0092 636A ldr r3, [r4, #36] 5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10899 .loc 1 5851 21 view .LVU3790 10900 0094 1A70 strb r2, [r3] 5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10901 .loc 1 5854 5 is_stmt 1 view .LVU3791 5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10902 .loc 1 5854 9 is_stmt 0 view .LVU3792 10903 0096 636A ldr r3, [r4, #36] 5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10904 .loc 1 5854 19 view .LVU3793 10905 0098 0133 adds r3, r3, #1 10906 009a 6362 str r3, [r4, #36] 5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10907 .loc 1 5856 5 is_stmt 1 view .LVU3794 5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10908 .loc 1 5856 14 is_stmt 0 view .LVU3795 10909 009c 238D ldrh r3, [r4, #40] 5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10910 .loc 1 5856 8 view .LVU3796 10911 009e 33B1 cbz r3, .L675 5858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 10912 .loc 1 5858 7 is_stmt 1 view .LVU3797 5858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 10913 .loc 1 5858 21 is_stmt 0 view .LVU3798 10914 00a0 013B subs r3, r3, #1 10915 00a2 2385 strh r3, [r4, #40] @ movhi 5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10916 .loc 1 5859 7 is_stmt 1 view .LVU3799 5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10917 .loc 1 5859 11 is_stmt 0 view .LVU3800 10918 00a4 638D ldrh r3, [r4, #42] 10919 00a6 9BB2 uxth r3, r3 5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10920 .loc 1 5859 22 view .LVU3801 10921 00a8 013B subs r3, r3, #1 10922 00aa 9BB2 uxth r3, r3 ARM GAS /tmp/ccbUHtu7.s page 376 10923 00ac 6385 strh r3, [r4, #42] @ movhi 10924 .L675: 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10925 .loc 1 5864 3 is_stmt 1 view .LVU3802 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10926 .loc 1 5864 11 is_stmt 0 view .LVU3803 10927 00ae 638D ldrh r3, [r4, #42] 10928 00b0 9BB2 uxth r3, r3 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10929 .loc 1 5864 6 view .LVU3804 10930 00b2 1BB1 cbz r3, .L676 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10931 .loc 1 5867 5 is_stmt 1 view .LVU3805 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10932 .loc 1 5867 9 is_stmt 0 view .LVU3806 10933 00b4 636C ldr r3, [r4, #68] 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10934 .loc 1 5867 21 view .LVU3807 10935 00b6 43F00403 orr r3, r3, #4 10936 00ba 6364 str r3, [r4, #68] 10937 .L676: 5870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10938 .loc 1 5870 3 is_stmt 1 view .LVU3808 5870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10939 .loc 1 5870 14 is_stmt 0 view .LVU3809 10940 00bc 0023 movs r3, #0 10941 00be 84F84230 strb r3, [r4, #66] 5871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10942 .loc 1 5871 3 is_stmt 1 view .LVU3810 5871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10943 .loc 1 5871 17 is_stmt 0 view .LVU3811 10944 00c2 6363 str r3, [r4, #52] 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10945 .loc 1 5873 3 is_stmt 1 view .LVU3812 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10946 .loc 1 5873 11 is_stmt 0 view .LVU3813 10947 00c4 636C ldr r3, [r4, #68] 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10948 .loc 1 5873 6 view .LVU3814 10949 00c6 1BBB cbnz r3, .L682 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10950 .loc 1 5885 8 is_stmt 1 view .LVU3815 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10951 .loc 1 5885 16 is_stmt 0 view .LVU3816 10952 00c8 E36A ldr r3, [r4, #44] 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10953 .loc 1 5885 11 view .LVU3817 10954 00ca 13F5803F cmn r3, #65536 10955 00ce 2DD1 bne .L683 5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10956 .loc 1 5905 8 is_stmt 1 view .LVU3818 5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10957 .loc 1 5905 16 is_stmt 0 view .LVU3819 10958 00d0 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10959 00d4 DBB2 uxtb r3, r3 5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10960 .loc 1 5905 11 view .LVU3820 ARM GAS /tmp/ccbUHtu7.s page 377 10961 00d6 222B cmp r3, #34 10962 00d8 38D0 beq .L684 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10963 .loc 1 5922 5 is_stmt 1 view .LVU3821 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10964 .loc 1 5922 17 is_stmt 0 view .LVU3822 10965 00da 2023 movs r3, #32 10966 00dc 84F84130 strb r3, [r4, #65] 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10967 .loc 1 5923 5 is_stmt 1 view .LVU3823 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10968 .loc 1 5923 25 is_stmt 0 view .LVU3824 10969 00e0 0023 movs r3, #0 10970 00e2 2363 str r3, [r4, #48] 5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10971 .loc 1 5926 5 is_stmt 1 view .LVU3825 5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10972 .loc 1 5926 5 view .LVU3826 10973 00e4 84F84030 strb r3, [r4, #64] 5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10974 .loc 1 5926 5 view .LVU3827 5932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10975 .loc 1 5932 5 view .LVU3828 10976 00e8 2046 mov r0, r4 10977 00ea FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10978 .LVL755: 5935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10979 .loc 1 5935 1 is_stmt 0 view .LVU3829 10980 00ee 2CE0 b .L668 10981 .LVL756: 10982 .L673: 5829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10983 .loc 1 5829 8 is_stmt 1 view .LVU3830 5829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10984 .loc 1 5829 11 is_stmt 0 view .LVU3831 10985 00f0 16F4004F tst r6, #32768 10986 00f4 C6D0 beq .L674 5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10987 .loc 1 5832 5 is_stmt 1 view .LVU3832 5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10988 .loc 1 5832 9 is_stmt 0 view .LVU3833 10989 00f6 2268 ldr r2, [r4] 5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10990 .loc 1 5832 19 view .LVU3834 10991 00f8 1368 ldr r3, [r2] 5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10992 .loc 1 5832 25 view .LVU3835 10993 00fa 23F40043 bic r3, r3, #32768 10994 00fe 1360 str r3, [r2] 5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10995 .loc 1 5834 5 is_stmt 1 view .LVU3836 5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10996 .loc 1 5834 13 is_stmt 0 view .LVU3837 10997 0100 E36B ldr r3, [r4, #60] 5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10998 .loc 1 5834 8 view .LVU3838 10999 0102 002B cmp r3, #0 ARM GAS /tmp/ccbUHtu7.s page 378 11000 0104 BED0 beq .L674 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11001 .loc 1 5836 7 is_stmt 1 view .LVU3839 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11002 .loc 1 5836 35 is_stmt 0 view .LVU3840 11003 0106 1B68 ldr r3, [r3] 11004 0108 5B68 ldr r3, [r3, #4] 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11005 .loc 1 5836 25 view .LVU3841 11006 010a 9BB2 uxth r3, r3 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11007 .loc 1 5836 23 view .LVU3842 11008 010c 6385 strh r3, [r4, #42] @ movhi 11009 010e B9E7 b .L674 11010 .LVL757: 11011 .L682: 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11012 .loc 1 5876 5 is_stmt 1 view .LVU3843 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11013 .loc 1 5876 27 is_stmt 0 view .LVU3844 11014 0110 616C ldr r1, [r4, #68] 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11015 .loc 1 5876 5 view .LVU3845 11016 0112 2046 mov r0, r4 11017 0114 FFF7FEFF bl I2C_ITError 11018 .LVL758: 5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11019 .loc 1 5879 5 is_stmt 1 view .LVU3846 5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11020 .loc 1 5879 13 is_stmt 0 view .LVU3847 11021 0118 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11022 011c DBB2 uxtb r3, r3 5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11023 .loc 1 5879 8 view .LVU3848 11024 011e 282B cmp r3, #40 11025 0120 13D1 bne .L668 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11026 .loc 1 5882 7 is_stmt 1 view .LVU3849 11027 0122 2946 mov r1, r5 11028 0124 2046 mov r0, r4 11029 0126 FFF7FEFF bl I2C_ITListenCplt 11030 .LVL759: 11031 012a 0EE0 b .L668 11032 .L683: 5888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11033 .loc 1 5888 5 view .LVU3850 11034 012c 2046 mov r0, r4 11035 012e FFF7FEFF bl I2C_ITSlaveSeqCplt 11036 .LVL760: 5890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11037 .loc 1 5890 5 view .LVU3851 5890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11038 .loc 1 5890 23 is_stmt 0 view .LVU3852 11039 0132 0C4B ldr r3, .L685 11040 0134 E362 str r3, [r4, #44] 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11041 .loc 1 5891 5 is_stmt 1 view .LVU3853 ARM GAS /tmp/ccbUHtu7.s page 379 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11042 .loc 1 5891 17 is_stmt 0 view .LVU3854 11043 0136 2023 movs r3, #32 11044 0138 84F84130 strb r3, [r4, #65] 5892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11045 .loc 1 5892 5 is_stmt 1 view .LVU3855 5892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11046 .loc 1 5892 25 is_stmt 0 view .LVU3856 11047 013c 0023 movs r3, #0 11048 013e 2363 str r3, [r4, #48] 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11049 .loc 1 5895 5 is_stmt 1 view .LVU3857 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11050 .loc 1 5895 5 view .LVU3858 11051 0140 84F84030 strb r3, [r4, #64] 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11052 .loc 1 5895 5 view .LVU3859 5901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11053 .loc 1 5901 5 view .LVU3860 11054 0144 2046 mov r0, r4 11055 0146 FFF7FEFF bl HAL_I2C_ListenCpltCallback 11056 .LVL761: 11057 .L668: 5935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11058 .loc 1 5935 1 is_stmt 0 view .LVU3861 11059 014a 70BD pop {r4, r5, r6, pc} 11060 .LVL762: 11061 .L684: 5907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11062 .loc 1 5907 5 is_stmt 1 view .LVU3862 5907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11063 .loc 1 5907 17 is_stmt 0 view .LVU3863 11064 014c 2023 movs r3, #32 11065 014e 84F84130 strb r3, [r4, #65] 5908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11066 .loc 1 5908 5 is_stmt 1 view .LVU3864 5908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11067 .loc 1 5908 25 is_stmt 0 view .LVU3865 11068 0152 0023 movs r3, #0 11069 0154 2363 str r3, [r4, #48] 5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11070 .loc 1 5911 5 is_stmt 1 view .LVU3866 5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11071 .loc 1 5911 5 view .LVU3867 11072 0156 84F84030 strb r3, [r4, #64] 5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11073 .loc 1 5911 5 view .LVU3868 5917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11074 .loc 1 5917 5 view .LVU3869 11075 015a 2046 mov r0, r4 11076 015c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11077 .LVL763: 11078 0160 F3E7 b .L668 11079 .L686: 11080 0162 00BF .align 2 11081 .L685: 11082 0164 0000FFFF .word -65536 ARM GAS /tmp/ccbUHtu7.s page 380 11083 .cfi_endproc 11084 .LFE388: 11086 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11087 .align 1 11088 .syntax unified 11089 .thumb 11090 .thumb_func 11092 I2C_Slave_ISR_IT: 11093 .LVL764: 11094 .LFB379: 4891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11095 .loc 1 4891 1 view -0 11096 .cfi_startproc 11097 @ args = 0, pretend = 0, frame = 0 11098 @ frame_needed = 0, uses_anonymous_args = 0 4891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11099 .loc 1 4891 1 is_stmt 0 view .LVU3871 11100 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11101 .LCFI121: 11102 .cfi_def_cfa_offset 24 11103 .cfi_offset 3, -24 11104 .cfi_offset 4, -20 11105 .cfi_offset 5, -16 11106 .cfi_offset 6, -12 11107 .cfi_offset 7, -8 11108 .cfi_offset 14, -4 4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11109 .loc 1 4892 3 is_stmt 1 view .LVU3872 4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11110 .loc 1 4892 12 is_stmt 0 view .LVU3873 11111 0002 C76A ldr r7, [r0, #44] 11112 .LVL765: 4893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11113 .loc 1 4893 3 is_stmt 1 view .LVU3874 4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11114 .loc 1 4896 3 view .LVU3875 4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11115 .loc 1 4896 3 view .LVU3876 11116 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 11117 0008 012B cmp r3, #1 11118 000a 00F09E80 beq .L701 11119 000e 0446 mov r4, r0 11120 0010 0D46 mov r5, r1 11121 0012 1646 mov r6, r2 4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11122 .loc 1 4896 3 discriminator 2 view .LVU3877 11123 0014 0123 movs r3, #1 11124 0016 80F84030 strb r3, [r0, #64] 4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11125 .loc 1 4896 3 discriminator 2 view .LVU3878 4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11126 .loc 1 4899 3 discriminator 2 view .LVU3879 4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11127 .loc 1 4899 6 is_stmt 0 discriminator 2 view .LVU3880 11128 001a 11F0200F tst r1, #32 11129 001e 02D0 beq .L689 4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) ARM GAS /tmp/ccbUHtu7.s page 381 11130 .loc 1 4899 61 discriminator 1 view .LVU3881 11131 0020 12F0200F tst r2, #32 11132 0024 19D1 bne .L703 11133 .LVL766: 11134 .L689: 4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11135 .loc 1 4906 3 is_stmt 1 view .LVU3882 4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11136 .loc 1 4906 6 is_stmt 0 view .LVU3883 11137 0026 15F0100F tst r5, #16 11138 002a 3ED0 beq .L690 4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11139 .loc 1 4906 58 discriminator 1 view .LVU3884 11140 002c 16F0100F tst r6, #16 11141 0030 3BD0 beq .L690 4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11142 .loc 1 4913 5 is_stmt 1 view .LVU3885 4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11143 .loc 1 4913 13 is_stmt 0 view .LVU3886 11144 0032 638D ldrh r3, [r4, #42] 11145 0034 9BB2 uxth r3, r3 4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11146 .loc 1 4913 8 view .LVU3887 11147 0036 43BB cbnz r3, .L691 4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11148 .loc 1 4915 7 is_stmt 1 view .LVU3888 4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11149 .loc 1 4915 16 is_stmt 0 view .LVU3889 11150 0038 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11151 003c DBB2 uxtb r3, r3 4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11152 .loc 1 4915 10 view .LVU3890 11153 003e 282B cmp r3, #40 11154 0040 0ED0 beq .L704 11155 .L692: 4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11156 .loc 1 4922 12 is_stmt 1 view .LVU3891 4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11157 .loc 1 4922 21 is_stmt 0 view .LVU3892 11158 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11159 0046 DBB2 uxtb r3, r3 4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11160 .loc 1 4922 15 view .LVU3893 11161 0048 292B cmp r3, #41 11162 004a 11D0 beq .L705 11163 .L694: 4937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11164 .loc 1 4937 9 is_stmt 1 view .LVU3894 11165 004c 2368 ldr r3, [r4] 11166 004e 1022 movs r2, #16 11167 0050 DA61 str r2, [r3, #28] 11168 .L693: 5014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11169 .loc 1 5014 3 view .LVU3895 5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11170 .loc 1 5017 3 view .LVU3896 5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 382 11171 .loc 1 5017 3 view .LVU3897 11172 0052 0020 movs r0, #0 11173 0054 84F84000 strb r0, [r4, #64] 5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11174 .loc 1 5017 3 view .LVU3898 5019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11175 .loc 1 5019 3 view .LVU3899 11176 .LVL767: 11177 .L688: 5020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11178 .loc 1 5020 1 is_stmt 0 view .LVU3900 11179 0058 F8BD pop {r3, r4, r5, r6, r7, pc} 11180 .LVL768: 11181 .L703: 4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11182 .loc 1 4903 5 is_stmt 1 view .LVU3901 11183 005a FFF7FEFF bl I2C_ITSlaveCplt 11184 .LVL769: 4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11185 .loc 1 4903 5 is_stmt 0 view .LVU3902 11186 005e E2E7 b .L689 11187 .L704: 4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11188 .loc 1 4915 49 discriminator 1 view .LVU3903 11189 0060 B7F1007F cmp r7, #33554432 11190 0064 EDD1 bne .L692 4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11191 .loc 1 4920 9 is_stmt 1 view .LVU3904 11192 0066 2946 mov r1, r5 11193 0068 2046 mov r0, r4 11194 006a FFF7FEFF bl I2C_ITListenCplt 11195 .LVL770: 11196 006e F0E7 b .L693 11197 .L705: 4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11198 .loc 1 4922 62 is_stmt 0 discriminator 1 view .LVU3905 11199 0070 17F5803F cmn r7, #65536 11200 0074 EAD0 beq .L694 4925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11201 .loc 1 4925 9 is_stmt 1 view .LVU3906 11202 0076 2368 ldr r3, [r4] 11203 0078 1022 movs r2, #16 11204 007a DA61 str r2, [r3, #28] 4928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11205 .loc 1 4928 9 view .LVU3907 11206 007c 2046 mov r0, r4 11207 007e FFF7FEFF bl I2C_Flush_TXDR 11208 .LVL771: 4932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11209 .loc 1 4932 9 view .LVU3908 11210 0082 2046 mov r0, r4 11211 0084 FFF7FEFF bl I2C_ITSlaveSeqCplt 11212 .LVL772: 11213 0088 E3E7 b .L693 11214 .L691: 4944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11215 .loc 1 4944 7 view .LVU3909 ARM GAS /tmp/ccbUHtu7.s page 383 11216 008a 2368 ldr r3, [r4] 11217 008c 1022 movs r2, #16 11218 008e DA61 str r2, [r3, #28] 4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11219 .loc 1 4947 7 view .LVU3910 4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11220 .loc 1 4947 11 is_stmt 0 view .LVU3911 11221 0090 636C ldr r3, [r4, #68] 4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11222 .loc 1 4947 23 view .LVU3912 11223 0092 43F00403 orr r3, r3, #4 11224 0096 6364 str r3, [r4, #68] 4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11225 .loc 1 4949 7 is_stmt 1 view .LVU3913 4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11226 .loc 1 4949 10 is_stmt 0 view .LVU3914 11227 0098 17B1 cbz r7, .L695 4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11228 .loc 1 4949 43 discriminator 1 view .LVU3915 11229 009a B7F1807F cmp r7, #16777216 11230 009e D8D1 bne .L693 11231 .L695: 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11232 .loc 1 4952 9 is_stmt 1 view .LVU3916 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11233 .loc 1 4952 31 is_stmt 0 view .LVU3917 11234 00a0 616C ldr r1, [r4, #68] 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11235 .loc 1 4952 9 view .LVU3918 11236 00a2 2046 mov r0, r4 11237 00a4 FFF7FEFF bl I2C_ITError 11238 .LVL773: 11239 00a8 D3E7 b .L693 11240 .L690: 4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11241 .loc 1 4956 8 is_stmt 1 view .LVU3919 4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11242 .loc 1 4956 11 is_stmt 0 view .LVU3920 11243 00aa 15F0040F tst r5, #4 11244 00ae 1FD0 beq .L696 4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11245 .loc 1 4956 65 discriminator 1 view .LVU3921 11246 00b0 16F0040F tst r6, #4 11247 00b4 1CD0 beq .L696 4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11248 .loc 1 4959 5 is_stmt 1 view .LVU3922 4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11249 .loc 1 4959 13 is_stmt 0 view .LVU3923 11250 00b6 638D ldrh r3, [r4, #42] 11251 00b8 9BB2 uxth r3, r3 4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11252 .loc 1 4959 8 view .LVU3924 11253 00ba 73B1 cbz r3, .L697 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11254 .loc 1 4962 7 is_stmt 1 view .LVU3925 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11255 .loc 1 4962 38 is_stmt 0 view .LVU3926 ARM GAS /tmp/ccbUHtu7.s page 384 11256 00bc 2368 ldr r3, [r4] 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11257 .loc 1 4962 48 view .LVU3927 11258 00be 5A6A ldr r2, [r3, #36] 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11259 .loc 1 4962 12 view .LVU3928 11260 00c0 636A ldr r3, [r4, #36] 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11261 .loc 1 4962 23 view .LVU3929 11262 00c2 1A70 strb r2, [r3] 4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11263 .loc 1 4965 7 is_stmt 1 view .LVU3930 4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11264 .loc 1 4965 11 is_stmt 0 view .LVU3931 11265 00c4 636A ldr r3, [r4, #36] 4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11266 .loc 1 4965 21 view .LVU3932 11267 00c6 0133 adds r3, r3, #1 11268 00c8 6362 str r3, [r4, #36] 4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11269 .loc 1 4967 7 is_stmt 1 view .LVU3933 4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11270 .loc 1 4967 11 is_stmt 0 view .LVU3934 11271 00ca 238D ldrh r3, [r4, #40] 4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11272 .loc 1 4967 21 view .LVU3935 11273 00cc 013B subs r3, r3, #1 11274 00ce 2385 strh r3, [r4, #40] @ movhi 4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11275 .loc 1 4968 7 is_stmt 1 view .LVU3936 4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11276 .loc 1 4968 11 is_stmt 0 view .LVU3937 11277 00d0 638D ldrh r3, [r4, #42] 11278 00d2 9BB2 uxth r3, r3 4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11279 .loc 1 4968 22 view .LVU3938 11280 00d4 013B subs r3, r3, #1 11281 00d6 9BB2 uxth r3, r3 11282 00d8 6385 strh r3, [r4, #42] @ movhi 11283 .L697: 4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11284 .loc 1 4971 5 is_stmt 1 view .LVU3939 4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11285 .loc 1 4971 14 is_stmt 0 view .LVU3940 11286 00da 638D ldrh r3, [r4, #42] 11287 00dc 9BB2 uxth r3, r3 4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11288 .loc 1 4971 8 view .LVU3941 11289 00de 002B cmp r3, #0 11290 00e0 B7D1 bne .L693 4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11291 .loc 1 4971 33 discriminator 1 view .LVU3942 11292 00e2 17F5803F cmn r7, #65536 11293 00e6 B4D0 beq .L693 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11294 .loc 1 4975 7 is_stmt 1 view .LVU3943 11295 00e8 2046 mov r0, r4 ARM GAS /tmp/ccbUHtu7.s page 385 11296 00ea FFF7FEFF bl I2C_ITSlaveSeqCplt 11297 .LVL774: 11298 00ee B0E7 b .L693 11299 .L696: 4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11300 .loc 1 4978 8 view .LVU3944 4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11301 .loc 1 4978 11 is_stmt 0 view .LVU3945 11302 00f0 15F0080F tst r5, #8 11303 00f4 02D0 beq .L698 4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11304 .loc 1 4978 65 discriminator 1 view .LVU3946 11305 00f6 16F0080F tst r6, #8 11306 00fa 18D1 bne .L706 11307 .L698: 4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11308 .loc 1 4983 8 is_stmt 1 view .LVU3947 4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11309 .loc 1 4983 11 is_stmt 0 view .LVU3948 11310 00fc 15F0020F tst r5, #2 11311 0100 A7D0 beq .L693 4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11312 .loc 1 4983 65 discriminator 1 view .LVU3949 11313 0102 16F0020F tst r6, #2 11314 0106 A4D0 beq .L693 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11315 .loc 1 4990 5 is_stmt 1 view .LVU3950 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11316 .loc 1 4990 13 is_stmt 0 view .LVU3951 11317 0108 638D ldrh r3, [r4, #42] 11318 010a 9BB2 uxth r3, r3 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11319 .loc 1 4990 8 view .LVU3952 11320 010c A3B1 cbz r3, .L699 4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11321 .loc 1 4993 7 is_stmt 1 view .LVU3953 4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11322 .loc 1 4993 35 is_stmt 0 view .LVU3954 11323 010e 626A ldr r2, [r4, #36] 4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11324 .loc 1 4993 11 view .LVU3955 11325 0110 2368 ldr r3, [r4] 4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11326 .loc 1 4993 30 view .LVU3956 11327 0112 1278 ldrb r2, [r2] @ zero_extendqisi2 4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11328 .loc 1 4993 28 view .LVU3957 11329 0114 9A62 str r2, [r3, #40] 4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11330 .loc 1 4996 7 is_stmt 1 view .LVU3958 4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11331 .loc 1 4996 11 is_stmt 0 view .LVU3959 11332 0116 636A ldr r3, [r4, #36] 4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11333 .loc 1 4996 21 view .LVU3960 11334 0118 0133 adds r3, r3, #1 11335 011a 6362 str r3, [r4, #36] ARM GAS /tmp/ccbUHtu7.s page 386 4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11336 .loc 1 4998 7 is_stmt 1 view .LVU3961 4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11337 .loc 1 4998 11 is_stmt 0 view .LVU3962 11338 011c 638D ldrh r3, [r4, #42] 11339 011e 9BB2 uxth r3, r3 4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11340 .loc 1 4998 22 view .LVU3963 11341 0120 013B subs r3, r3, #1 11342 0122 9BB2 uxth r3, r3 11343 0124 6385 strh r3, [r4, #42] @ movhi 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11344 .loc 1 4999 7 is_stmt 1 view .LVU3964 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11345 .loc 1 4999 11 is_stmt 0 view .LVU3965 11346 0126 238D ldrh r3, [r4, #40] 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11347 .loc 1 4999 21 view .LVU3966 11348 0128 013B subs r3, r3, #1 11349 012a 2385 strh r3, [r4, #40] @ movhi 11350 012c 91E7 b .L693 11351 .L706: 4981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11352 .loc 1 4981 5 is_stmt 1 view .LVU3967 11353 012e 2946 mov r1, r5 11354 0130 2046 mov r0, r4 11355 0132 FFF7FEFF bl I2C_ITAddrCplt 11356 .LVL775: 11357 0136 8CE7 b .L693 11358 .L699: 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11359 .loc 1 5003 7 view .LVU3968 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11360 .loc 1 5003 10 is_stmt 0 view .LVU3969 11361 0138 B7F1807F cmp r7, #16777216 11362 013c 01D0 beq .L700 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11363 .loc 1 5003 42 discriminator 1 view .LVU3970 11364 013e 002F cmp r7, #0 11365 0140 87D1 bne .L693 11366 .L700: 5007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11367 .loc 1 5007 9 is_stmt 1 view .LVU3971 11368 0142 2046 mov r0, r4 11369 0144 FFF7FEFF bl I2C_ITSlaveSeqCplt 11370 .LVL776: 11371 0148 83E7 b .L693 11372 .LVL777: 11373 .L701: 4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11374 .loc 1 4896 3 is_stmt 0 view .LVU3972 11375 014a 0220 movs r0, #2 11376 .LVL778: 4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11377 .loc 1 4896 3 view .LVU3973 11378 014c 84E7 b .L688 11379 .cfi_endproc ARM GAS /tmp/ccbUHtu7.s page 387 11380 .LFE379: 11382 .section .text.I2C_ITMasterCplt,"ax",%progbits 11383 .align 1 11384 .syntax unified 11385 .thumb 11386 .thumb_func 11388 I2C_ITMasterCplt: 11389 .LVL779: 11390 .LFB387: 5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 11391 .loc 1 5642 1 is_stmt 1 view -0 11392 .cfi_startproc 11393 @ args = 0, pretend = 0, frame = 8 11394 @ frame_needed = 0, uses_anonymous_args = 0 5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 11395 .loc 1 5642 1 is_stmt 0 view .LVU3975 11396 0000 30B5 push {r4, r5, lr} 11397 .LCFI122: 11398 .cfi_def_cfa_offset 12 11399 .cfi_offset 4, -12 11400 .cfi_offset 5, -8 11401 .cfi_offset 14, -4 11402 0002 83B0 sub sp, sp, #12 11403 .LCFI123: 11404 .cfi_def_cfa_offset 24 11405 0004 0446 mov r4, r0 11406 0006 0D46 mov r5, r1 5643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11407 .loc 1 5643 3 is_stmt 1 view .LVU3976 5644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t tmpreg; 11408 .loc 1 5644 3 view .LVU3977 11409 .LVL780: 5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11410 .loc 1 5645 3 view .LVU3978 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11411 .loc 1 5648 3 view .LVU3979 11412 0008 0368 ldr r3, [r0] 11413 000a 2022 movs r2, #32 11414 000c DA61 str r2, [r3, #28] 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11415 .loc 1 5651 3 view .LVU3980 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11416 .loc 1 5651 11 is_stmt 0 view .LVU3981 11417 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11418 0012 DBB2 uxtb r3, r3 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11419 .loc 1 5651 6 view .LVU3982 11420 0014 212B cmp r3, #33 11421 0016 33D0 beq .L719 5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11422 .loc 1 5656 8 is_stmt 1 view .LVU3983 5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11423 .loc 1 5656 16 is_stmt 0 view .LVU3984 11424 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11425 001c DBB2 uxtb r3, r3 5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11426 .loc 1 5656 11 view .LVU3985 ARM GAS /tmp/ccbUHtu7.s page 388 11427 001e 222B cmp r3, #34 11428 0020 34D0 beq .L720 11429 .LVL781: 11430 .L709: 5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11431 .loc 1 5664 3 is_stmt 1 view .LVU3986 5667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11432 .loc 1 5667 3 view .LVU3987 11433 0022 2268 ldr r2, [r4] 11434 0024 5368 ldr r3, [r2, #4] 11435 0026 23F0FF73 bic r3, r3, #33423360 11436 002a 23F48B33 bic r3, r3, #71168 11437 002e 23F4FF73 bic r3, r3, #510 11438 0032 23F00103 bic r3, r3, #1 11439 0036 5360 str r3, [r2, #4] 5670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11440 .loc 1 5670 3 view .LVU3988 5670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11441 .loc 1 5670 23 is_stmt 0 view .LVU3989 11442 0038 0023 movs r3, #0 11443 003a 6363 str r3, [r4, #52] 5671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11444 .loc 1 5671 3 is_stmt 1 view .LVU3990 5671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11445 .loc 1 5671 23 is_stmt 0 view .LVU3991 11446 003c A3F58033 sub r3, r3, #65536 11447 0040 E362 str r3, [r4, #44] 5673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11448 .loc 1 5673 3 is_stmt 1 view .LVU3992 5673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11449 .loc 1 5673 6 is_stmt 0 view .LVU3993 11450 0042 15F0100F tst r5, #16 11451 0046 06D0 beq .L710 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11452 .loc 1 5676 5 is_stmt 1 view .LVU3994 11453 0048 2368 ldr r3, [r4] 11454 004a 1022 movs r2, #16 11455 004c DA61 str r2, [r3, #28] 5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11456 .loc 1 5679 5 view .LVU3995 5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11457 .loc 1 5679 9 is_stmt 0 view .LVU3996 11458 004e 636C ldr r3, [r4, #68] 5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11459 .loc 1 5679 21 view .LVU3997 11460 0050 43F00403 orr r3, r3, #4 11461 0054 6364 str r3, [r4, #68] 11462 .L710: 5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11463 .loc 1 5683 3 is_stmt 1 view .LVU3998 5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11464 .loc 1 5683 12 is_stmt 0 view .LVU3999 11465 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11466 005a DBB2 uxtb r3, r3 5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11467 .loc 1 5683 6 view .LVU4000 11468 005c 602B cmp r3, #96 ARM GAS /tmp/ccbUHtu7.s page 389 11469 005e 1BD0 beq .L721 11470 .L711: 5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11471 .loc 1 5691 3 is_stmt 1 view .LVU4001 11472 0060 2046 mov r0, r4 11473 0062 FFF7FEFF bl I2C_Flush_TXDR 11474 .LVL782: 5694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11475 .loc 1 5694 3 view .LVU4002 5694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11476 .loc 1 5694 12 is_stmt 0 view .LVU4003 11477 0066 626C ldr r2, [r4, #68] 11478 .LVL783: 5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11479 .loc 1 5697 3 is_stmt 1 view .LVU4004 5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11480 .loc 1 5697 12 is_stmt 0 view .LVU4005 11481 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11482 006c DBB2 uxtb r3, r3 5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11483 .loc 1 5697 6 view .LVU4006 11484 006e 602B cmp r3, #96 11485 0070 00D0 beq .L712 5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11486 .loc 1 5697 44 discriminator 1 view .LVU4007 11487 0072 D2B1 cbz r2, .L713 11488 .L712: 5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11489 .loc 1 5700 5 is_stmt 1 view .LVU4008 5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11490 .loc 1 5700 27 is_stmt 0 view .LVU4009 11491 0074 616C ldr r1, [r4, #68] 5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11492 .loc 1 5700 5 view .LVU4010 11493 0076 2046 mov r0, r4 11494 0078 FFF7FEFF bl I2C_ITError 11495 .LVL784: 11496 .L707: 5776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11497 .loc 1 5776 1 view .LVU4011 11498 007c 03B0 add sp, sp, #12 11499 .LCFI124: 11500 .cfi_remember_state 11501 .cfi_def_cfa_offset 12 11502 @ sp needed 11503 007e 30BD pop {r4, r5, pc} 11504 .LVL785: 11505 .L719: 11506 .LCFI125: 11507 .cfi_restore_state 5653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 11508 .loc 1 5653 5 is_stmt 1 view .LVU4012 11509 0080 0121 movs r1, #1 11510 .LVL786: 5653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 11511 .loc 1 5653 5 is_stmt 0 view .LVU4013 11512 0082 FFF7FEFF bl I2C_Disable_IRQ ARM GAS /tmp/ccbUHtu7.s page 390 11513 .LVL787: 5654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11514 .loc 1 5654 5 is_stmt 1 view .LVU4014 5654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11515 .loc 1 5654 25 is_stmt 0 view .LVU4015 11516 0086 1123 movs r3, #17 11517 0088 2363 str r3, [r4, #48] 11518 008a CAE7 b .L709 11519 .LVL788: 11520 .L720: 5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 11521 .loc 1 5658 5 is_stmt 1 view .LVU4016 11522 008c 0221 movs r1, #2 11523 .LVL789: 5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 11524 .loc 1 5658 5 is_stmt 0 view .LVU4017 11525 008e FFF7FEFF bl I2C_Disable_IRQ 11526 .LVL790: 5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11527 .loc 1 5659 5 is_stmt 1 view .LVU4018 5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11528 .loc 1 5659 25 is_stmt 0 view .LVU4019 11529 0092 1223 movs r3, #18 11530 0094 2363 str r3, [r4, #48] 11531 0096 C4E7 b .L709 11532 .L721: 5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11533 .loc 1 5683 44 discriminator 1 view .LVU4020 11534 0098 15F0040F tst r5, #4 11535 009c E0D0 beq .L711 5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 11536 .loc 1 5686 5 is_stmt 1 view .LVU4021 5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 11537 .loc 1 5686 27 is_stmt 0 view .LVU4022 11538 009e 2368 ldr r3, [r4] 5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 11539 .loc 1 5686 37 view .LVU4023 11540 00a0 5B6A ldr r3, [r3, #36] 11541 00a2 DBB2 uxtb r3, r3 5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 11542 .loc 1 5686 12 view .LVU4024 11543 00a4 0193 str r3, [sp, #4] 5687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11544 .loc 1 5687 5 is_stmt 1 view .LVU4025 11545 00a6 019B ldr r3, [sp, #4] 11546 00a8 DAE7 b .L711 11547 .LVL791: 11548 .L713: 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11549 .loc 1 5703 8 view .LVU4026 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11550 .loc 1 5703 16 is_stmt 0 view .LVU4027 11551 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11552 00ae DBB2 uxtb r3, r3 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11553 .loc 1 5703 11 view .LVU4028 11554 00b0 212B cmp r3, #33 ARM GAS /tmp/ccbUHtu7.s page 391 11555 00b2 17D0 beq .L722 5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11556 .loc 1 5738 8 is_stmt 1 view .LVU4029 5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11557 .loc 1 5738 16 is_stmt 0 view .LVU4030 11558 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11559 00b8 DBB2 uxtb r3, r3 5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11560 .loc 1 5738 11 view .LVU4031 11561 00ba 222B cmp r3, #34 11562 00bc DED1 bne .L707 5740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11563 .loc 1 5740 5 is_stmt 1 view .LVU4032 5740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11564 .loc 1 5740 17 is_stmt 0 view .LVU4033 11565 00be 2023 movs r3, #32 11566 00c0 84F84130 strb r3, [r4, #65] 5741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11567 .loc 1 5741 5 is_stmt 1 view .LVU4034 5741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11568 .loc 1 5741 25 is_stmt 0 view .LVU4035 11569 00c4 0023 movs r3, #0 11570 00c6 2363 str r3, [r4, #48] 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11571 .loc 1 5743 5 is_stmt 1 view .LVU4036 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11572 .loc 1 5743 13 is_stmt 0 view .LVU4037 11573 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 11574 00cc DBB2 uxtb r3, r3 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11575 .loc 1 5743 8 view .LVU4038 11576 00ce 402B cmp r3, #64 11577 00d0 24D0 beq .L723 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11578 .loc 1 5759 7 is_stmt 1 view .LVU4039 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11579 .loc 1 5759 18 is_stmt 0 view .LVU4040 11580 00d2 0023 movs r3, #0 11581 00d4 84F84230 strb r3, [r4, #66] 5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11582 .loc 1 5762 7 is_stmt 1 view .LVU4041 5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11583 .loc 1 5762 7 view .LVU4042 11584 00d8 84F84030 strb r3, [r4, #64] 5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11585 .loc 1 5762 7 view .LVU4043 5768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11586 .loc 1 5768 7 view .LVU4044 11587 00dc 2046 mov r0, r4 11588 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 11589 .LVL792: 5775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11590 .loc 1 5775 3 view .LVU4045 5776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11591 .loc 1 5776 1 is_stmt 0 view .LVU4046 11592 00e2 CBE7 b .L707 11593 .LVL793: ARM GAS /tmp/ccbUHtu7.s page 392 11594 .L722: 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11595 .loc 1 5705 5 is_stmt 1 view .LVU4047 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11596 .loc 1 5705 17 is_stmt 0 view .LVU4048 11597 00e4 2023 movs r3, #32 11598 00e6 84F84130 strb r3, [r4, #65] 5706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11599 .loc 1 5706 5 is_stmt 1 view .LVU4049 5706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11600 .loc 1 5706 25 is_stmt 0 view .LVU4050 11601 00ea 0023 movs r3, #0 11602 00ec 2363 str r3, [r4, #48] 5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11603 .loc 1 5708 5 is_stmt 1 view .LVU4051 5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11604 .loc 1 5708 13 is_stmt 0 view .LVU4052 11605 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 11606 00f2 DBB2 uxtb r3, r3 5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11607 .loc 1 5708 8 view .LVU4053 11608 00f4 402B cmp r3, #64 11609 00f6 08D0 beq .L724 5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11610 .loc 1 5724 7 is_stmt 1 view .LVU4054 5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11611 .loc 1 5724 18 is_stmt 0 view .LVU4055 11612 00f8 0023 movs r3, #0 11613 00fa 84F84230 strb r3, [r4, #66] 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11614 .loc 1 5727 7 is_stmt 1 view .LVU4056 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11615 .loc 1 5727 7 view .LVU4057 11616 00fe 84F84030 strb r3, [r4, #64] 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11617 .loc 1 5727 7 view .LVU4058 5733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11618 .loc 1 5733 7 view .LVU4059 11619 0102 2046 mov r0, r4 11620 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 11621 .LVL794: 5733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11622 .loc 1 5733 7 is_stmt 0 view .LVU4060 11623 0108 B8E7 b .L707 11624 .LVL795: 11625 .L724: 5710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11626 .loc 1 5710 7 is_stmt 1 view .LVU4061 5710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11627 .loc 1 5710 18 is_stmt 0 view .LVU4062 11628 010a 0023 movs r3, #0 11629 010c 84F84230 strb r3, [r4, #66] 5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11630 .loc 1 5713 7 is_stmt 1 view .LVU4063 5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11631 .loc 1 5713 7 view .LVU4064 11632 0110 84F84030 strb r3, [r4, #64] ARM GAS /tmp/ccbUHtu7.s page 393 5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11633 .loc 1 5713 7 view .LVU4065 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11634 .loc 1 5719 7 view .LVU4066 11635 0114 2046 mov r0, r4 11636 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 11637 .LVL796: 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11638 .loc 1 5719 7 is_stmt 0 view .LVU4067 11639 011a AFE7 b .L707 11640 .LVL797: 11641 .L723: 5745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11642 .loc 1 5745 7 is_stmt 1 view .LVU4068 5745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11643 .loc 1 5745 18 is_stmt 0 view .LVU4069 11644 011c 0023 movs r3, #0 11645 011e 84F84230 strb r3, [r4, #66] 5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11646 .loc 1 5748 7 is_stmt 1 view .LVU4070 5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11647 .loc 1 5748 7 view .LVU4071 11648 0122 84F84030 strb r3, [r4, #64] 5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11649 .loc 1 5748 7 view .LVU4072 5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11650 .loc 1 5754 7 view .LVU4073 11651 0126 2046 mov r0, r4 11652 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 11653 .LVL798: 5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11654 .loc 1 5754 7 is_stmt 0 view .LVU4074 11655 012c A6E7 b .L707 11656 .cfi_endproc 11657 .LFE387: 11659 .section .text.I2C_Master_ISR_IT,"ax",%progbits 11660 .align 1 11661 .syntax unified 11662 .thumb 11663 .thumb_func 11665 I2C_Master_ISR_IT: 11666 .LVL799: 11667 .LFB378: 4745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 11668 .loc 1 4745 1 is_stmt 1 view -0 11669 .cfi_startproc 11670 @ args = 0, pretend = 0, frame = 0 11671 @ frame_needed = 0, uses_anonymous_args = 0 4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11672 .loc 1 4746 3 view .LVU4076 4747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11673 .loc 1 4747 3 view .LVU4077 4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11674 .loc 1 4750 3 view .LVU4078 4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11675 .loc 1 4750 3 view .LVU4079 11676 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 ARM GAS /tmp/ccbUHtu7.s page 394 11677 0004 012B cmp r3, #1 11678 0006 00F0B980 beq .L739 4745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 11679 .loc 1 4745 1 is_stmt 0 discriminator 2 view .LVU4080 11680 000a 70B5 push {r4, r5, r6, lr} 11681 .LCFI126: 11682 .cfi_def_cfa_offset 16 11683 .cfi_offset 4, -16 11684 .cfi_offset 5, -12 11685 .cfi_offset 6, -8 11686 .cfi_offset 14, -4 11687 000c 82B0 sub sp, sp, #8 11688 .LCFI127: 11689 .cfi_def_cfa_offset 24 11690 000e 0446 mov r4, r0 11691 0010 0D46 mov r5, r1 11692 0012 1646 mov r6, r2 4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11693 .loc 1 4750 3 is_stmt 1 discriminator 2 view .LVU4081 11694 0014 0123 movs r3, #1 11695 0016 80F84030 strb r3, [r0, #64] 4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11696 .loc 1 4750 3 discriminator 2 view .LVU4082 4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11697 .loc 1 4752 3 discriminator 2 view .LVU4083 4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11698 .loc 1 4752 6 is_stmt 0 discriminator 2 view .LVU4084 11699 001a 11F0100F tst r1, #16 11700 001e 02D0 beq .L727 4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11701 .loc 1 4752 58 discriminator 1 view .LVU4085 11702 0020 12F0100F tst r2, #16 11703 0024 22D1 bne .L744 11704 .L727: 4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11705 .loc 1 4766 8 is_stmt 1 view .LVU4086 4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11706 .loc 1 4766 11 is_stmt 0 view .LVU4087 11707 0026 15F0040F tst r5, #4 11708 002a 29D0 beq .L729 4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11709 .loc 1 4766 65 discriminator 1 view .LVU4088 11710 002c 16F0040F tst r6, #4 11711 0030 26D0 beq .L729 4770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11712 .loc 1 4770 5 is_stmt 1 view .LVU4089 4770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11713 .loc 1 4770 16 is_stmt 0 view .LVU4090 11714 0032 25F00405 bic r5, r5, #4 11715 .LVL800: 4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11716 .loc 1 4773 5 is_stmt 1 view .LVU4091 4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11717 .loc 1 4773 36 is_stmt 0 view .LVU4092 11718 0036 2368 ldr r3, [r4] 4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11719 .loc 1 4773 46 view .LVU4093 ARM GAS /tmp/ccbUHtu7.s page 395 11720 0038 5A6A ldr r2, [r3, #36] 11721 .LVL801: 4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11722 .loc 1 4773 10 view .LVU4094 11723 003a 636A ldr r3, [r4, #36] 4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11724 .loc 1 4773 21 view .LVU4095 11725 003c 1A70 strb r2, [r3] 4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11726 .loc 1 4776 5 is_stmt 1 view .LVU4096 4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11727 .loc 1 4776 9 is_stmt 0 view .LVU4097 11728 003e 636A ldr r3, [r4, #36] 4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11729 .loc 1 4776 19 view .LVU4098 11730 0040 0133 adds r3, r3, #1 11731 0042 6362 str r3, [r4, #36] 4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11732 .loc 1 4778 5 is_stmt 1 view .LVU4099 4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11733 .loc 1 4778 9 is_stmt 0 view .LVU4100 11734 0044 238D ldrh r3, [r4, #40] 4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11735 .loc 1 4778 19 view .LVU4101 11736 0046 013B subs r3, r3, #1 11737 0048 2385 strh r3, [r4, #40] @ movhi 4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11738 .loc 1 4779 5 is_stmt 1 view .LVU4102 4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11739 .loc 1 4779 9 is_stmt 0 view .LVU4103 11740 004a 638D ldrh r3, [r4, #42] 11741 004c 9BB2 uxth r3, r3 4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11742 .loc 1 4779 20 view .LVU4104 11743 004e 013B subs r3, r3, #1 11744 0050 9BB2 uxth r3, r3 11745 0052 6385 strh r3, [r4, #42] @ movhi 11746 .LVL802: 11747 .L728: 4866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11748 .loc 1 4866 3 is_stmt 1 view .LVU4105 4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11749 .loc 1 4868 3 view .LVU4106 4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11750 .loc 1 4868 6 is_stmt 0 view .LVU4107 11751 0054 15F0200F tst r5, #32 11752 0058 03D0 beq .L738 4868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11753 .loc 1 4868 61 discriminator 1 view .LVU4108 11754 005a 16F0200F tst r6, #32 11755 005e 40F08880 bne .L745 11756 .L738: 4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11757 .loc 1 4876 3 is_stmt 1 view .LVU4109 4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11758 .loc 1 4876 3 view .LVU4110 11759 0062 0020 movs r0, #0 ARM GAS /tmp/ccbUHtu7.s page 396 11760 0064 84F84000 strb r0, [r4, #64] 4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11761 .loc 1 4876 3 view .LVU4111 4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11762 .loc 1 4878 3 view .LVU4112 4879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11763 .loc 1 4879 1 is_stmt 0 view .LVU4113 11764 0068 02B0 add sp, sp, #8 11765 .LCFI128: 11766 .cfi_remember_state 11767 .cfi_def_cfa_offset 16 11768 @ sp needed 11769 006a 70BD pop {r4, r5, r6, pc} 11770 .LVL803: 11771 .L744: 11772 .LCFI129: 11773 .cfi_restore_state 4756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11774 .loc 1 4756 5 is_stmt 1 view .LVU4114 11775 006c 0368 ldr r3, [r0] 11776 006e 1022 movs r2, #16 11777 .LVL804: 4756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11778 .loc 1 4756 5 is_stmt 0 view .LVU4115 11779 0070 DA61 str r2, [r3, #28] 4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11780 .loc 1 4761 5 is_stmt 1 view .LVU4116 4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11781 .loc 1 4761 9 is_stmt 0 view .LVU4117 11782 0072 436C ldr r3, [r0, #68] 4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11783 .loc 1 4761 21 view .LVU4118 11784 0074 43F00403 orr r3, r3, #4 11785 0078 4364 str r3, [r0, #68] 4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11786 .loc 1 4764 5 is_stmt 1 view .LVU4119 11787 007a FFF7FEFF bl I2C_Flush_TXDR 11788 .LVL805: 4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11789 .loc 1 4764 5 is_stmt 0 view .LVU4120 11790 007e E9E7 b .L728 11791 .LVL806: 11792 .L729: 4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11793 .loc 1 4781 8 is_stmt 1 view .LVU4121 4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11794 .loc 1 4781 11 is_stmt 0 view .LVU4122 11795 0080 15F0020F tst r5, #2 11796 0084 12D0 beq .L730 4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11797 .loc 1 4781 65 discriminator 1 view .LVU4123 11798 0086 16F0020F tst r6, #2 11799 008a 0FD0 beq .L730 4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11800 .loc 1 4785 5 is_stmt 1 view .LVU4124 4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11801 .loc 1 4785 33 is_stmt 0 view .LVU4125 ARM GAS /tmp/ccbUHtu7.s page 397 11802 008c 626A ldr r2, [r4, #36] 11803 .LVL807: 4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11804 .loc 1 4785 9 view .LVU4126 11805 008e 2368 ldr r3, [r4] 4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11806 .loc 1 4785 28 view .LVU4127 11807 0090 1278 ldrb r2, [r2] @ zero_extendqisi2 4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11808 .loc 1 4785 26 view .LVU4128 11809 0092 9A62 str r2, [r3, #40] 4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11810 .loc 1 4788 5 is_stmt 1 view .LVU4129 4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11811 .loc 1 4788 9 is_stmt 0 view .LVU4130 11812 0094 636A ldr r3, [r4, #36] 4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11813 .loc 1 4788 19 view .LVU4131 11814 0096 0133 adds r3, r3, #1 11815 0098 6362 str r3, [r4, #36] 4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11816 .loc 1 4790 5 is_stmt 1 view .LVU4132 4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11817 .loc 1 4790 9 is_stmt 0 view .LVU4133 11818 009a 238D ldrh r3, [r4, #40] 4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11819 .loc 1 4790 19 view .LVU4134 11820 009c 013B subs r3, r3, #1 11821 009e 2385 strh r3, [r4, #40] @ movhi 4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11822 .loc 1 4791 5 is_stmt 1 view .LVU4135 4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11823 .loc 1 4791 9 is_stmt 0 view .LVU4136 11824 00a0 638D ldrh r3, [r4, #42] 11825 00a2 9BB2 uxth r3, r3 4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11826 .loc 1 4791 20 view .LVU4137 11827 00a4 013B subs r3, r3, #1 11828 00a6 9BB2 uxth r3, r3 11829 00a8 6385 strh r3, [r4, #42] @ movhi 11830 00aa D3E7 b .L728 11831 .LVL808: 11832 .L730: 4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11833 .loc 1 4793 8 is_stmt 1 view .LVU4138 4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11834 .loc 1 4793 11 is_stmt 0 view .LVU4139 11835 00ac 15F0800F tst r5, #128 11836 00b0 3FD0 beq .L731 4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11837 .loc 1 4793 64 discriminator 1 view .LVU4140 11838 00b2 16F0400F tst r6, #64 11839 00b6 3CD0 beq .L731 4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11840 .loc 1 4796 5 is_stmt 1 view .LVU4141 4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11841 .loc 1 4796 14 is_stmt 0 view .LVU4142 ARM GAS /tmp/ccbUHtu7.s page 398 11842 00b8 638D ldrh r3, [r4, #42] 11843 00ba 9BB2 uxth r3, r3 4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11844 .loc 1 4796 8 view .LVU4143 11845 00bc 5BB3 cbz r3, .L732 4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11846 .loc 1 4796 41 discriminator 1 view .LVU4144 11847 00be 238D ldrh r3, [r4, #40] 4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11848 .loc 1 4796 33 discriminator 1 view .LVU4145 11849 00c0 4BBB cbnz r3, .L732 4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11850 .loc 1 4798 7 is_stmt 1 view .LVU4146 4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11851 .loc 1 4798 35 is_stmt 0 view .LVU4147 11852 00c2 2368 ldr r3, [r4] 4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11853 .loc 1 4798 45 view .LVU4148 11854 00c4 5968 ldr r1, [r3, #4] 11855 .LVL809: 4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11856 .loc 1 4798 18 view .LVU4149 11857 00c6 C1F30901 ubfx r1, r1, #0, #10 11858 .LVL810: 4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11859 .loc 1 4800 7 is_stmt 1 view .LVU4150 4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11860 .loc 1 4800 15 is_stmt 0 view .LVU4151 11861 00ca 638D ldrh r3, [r4, #42] 11862 00cc 9BB2 uxth r3, r3 4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11863 .loc 1 4800 10 view .LVU4152 11864 00ce FF2B cmp r3, #255 11865 00d0 0ED8 bhi .L746 4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11866 .loc 1 4807 9 is_stmt 1 view .LVU4153 4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11867 .loc 1 4807 30 is_stmt 0 view .LVU4154 11868 00d2 628D ldrh r2, [r4, #42] 11869 .LVL811: 4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11870 .loc 1 4807 30 view .LVU4155 11871 00d4 92B2 uxth r2, r2 4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11872 .loc 1 4807 24 view .LVU4156 11873 00d6 2285 strh r2, [r4, #40] @ movhi 4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11874 .loc 1 4808 9 is_stmt 1 view .LVU4157 4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11875 .loc 1 4808 17 is_stmt 0 view .LVU4158 11876 00d8 E36A ldr r3, [r4, #44] 4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11877 .loc 1 4808 12 view .LVU4159 11878 00da 13F5803F cmn r3, #65536 11879 00de 11D0 beq .L734 4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 11880 .loc 1 4810 11 is_stmt 1 view .LVU4160 ARM GAS /tmp/ccbUHtu7.s page 399 4811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11881 .loc 1 4811 34 is_stmt 0 view .LVU4161 11882 00e0 E36A ldr r3, [r4, #44] 4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 11883 .loc 1 4810 11 view .LVU4162 11884 00e2 0020 movs r0, #0 11885 .LVL812: 4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 11886 .loc 1 4810 11 view .LVU4163 11887 00e4 0090 str r0, [sp] 11888 00e6 D2B2 uxtb r2, r2 11889 00e8 2046 mov r0, r4 11890 00ea FFF7FEFF bl I2C_TransferConfig 11891 .LVL813: 4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 11892 .loc 1 4810 11 view .LVU4164 11893 00ee B1E7 b .L728 11894 .LVL814: 11895 .L746: 4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11896 .loc 1 4802 9 is_stmt 1 view .LVU4165 4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11897 .loc 1 4802 24 is_stmt 0 view .LVU4166 11898 00f0 FF22 movs r2, #255 11899 .LVL815: 4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11900 .loc 1 4802 24 view .LVU4167 11901 00f2 2285 strh r2, [r4, #40] @ movhi 4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11902 .loc 1 4803 9 is_stmt 1 view .LVU4168 11903 00f4 0023 movs r3, #0 11904 00f6 0093 str r3, [sp] 11905 00f8 4FF08073 mov r3, #16777216 11906 00fc 2046 mov r0, r4 11907 .LVL816: 4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11908 .loc 1 4803 9 is_stmt 0 view .LVU4169 11909 00fe FFF7FEFF bl I2C_TransferConfig 11910 .LVL817: 4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11911 .loc 1 4803 9 view .LVU4170 11912 0102 A7E7 b .L728 11913 .LVL818: 11914 .L734: 4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 11915 .loc 1 4815 11 is_stmt 1 view .LVU4171 11916 0104 0023 movs r3, #0 11917 0106 0093 str r3, [sp] 11918 0108 4FF00073 mov r3, #33554432 11919 010c D2B2 uxtb r2, r2 11920 010e 2046 mov r0, r4 11921 .LVL819: 4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 11922 .loc 1 4815 11 is_stmt 0 view .LVU4172 11923 0110 FFF7FEFF bl I2C_TransferConfig 11924 .LVL820: 4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); ARM GAS /tmp/ccbUHtu7.s page 400 11925 .loc 1 4815 11 view .LVU4173 11926 0114 9EE7 b .L728 11927 .LVL821: 11928 .L732: 4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11929 .loc 1 4823 7 is_stmt 1 view .LVU4174 4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11930 .loc 1 4823 11 is_stmt 0 view .LVU4175 11931 0116 2368 ldr r3, [r4] 11932 0118 5B68 ldr r3, [r3, #4] 4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11933 .loc 1 4823 10 view .LVU4176 11934 011a 13F0007F tst r3, #33554432 11935 011e 03D1 bne .L735 4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11936 .loc 1 4826 9 is_stmt 1 view .LVU4177 11937 0120 2046 mov r0, r4 11938 .LVL822: 4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11939 .loc 1 4826 9 is_stmt 0 view .LVU4178 11940 0122 FFF7FEFF bl I2C_ITMasterSeqCplt 11941 .LVL823: 4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11942 .loc 1 4826 9 view .LVU4179 11943 0126 95E7 b .L728 11944 .LVL824: 11945 .L735: 4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11946 .loc 1 4832 9 is_stmt 1 view .LVU4180 11947 0128 4021 movs r1, #64 11948 .LVL825: 4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11949 .loc 1 4832 9 is_stmt 0 view .LVU4181 11950 012a 2046 mov r0, r4 11951 .LVL826: 4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11952 .loc 1 4832 9 view .LVU4182 11953 012c FFF7FEFF bl I2C_ITError 11954 .LVL827: 4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11955 .loc 1 4832 9 view .LVU4183 11956 0130 90E7 b .L728 11957 .LVL828: 11958 .L731: 4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11959 .loc 1 4836 8 is_stmt 1 view .LVU4184 4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11960 .loc 1 4836 11 is_stmt 0 view .LVU4185 11961 0132 15F0400F tst r5, #64 11962 0136 8DD0 beq .L728 4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11963 .loc 1 4836 63 discriminator 1 view .LVU4186 11964 0138 16F0400F tst r6, #64 11965 013c 8AD0 beq .L728 4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11966 .loc 1 4839 5 is_stmt 1 view .LVU4187 4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 401 11967 .loc 1 4839 13 is_stmt 0 view .LVU4188 11968 013e 638D ldrh r3, [r4, #42] 11969 0140 9BB2 uxth r3, r3 4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11970 .loc 1 4839 8 view .LVU4189 11971 0142 8BB9 cbnz r3, .L736 4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11972 .loc 1 4841 7 is_stmt 1 view .LVU4190 4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11973 .loc 1 4841 11 is_stmt 0 view .LVU4191 11974 0144 2368 ldr r3, [r4] 11975 0146 5A68 ldr r2, [r3, #4] 11976 .LVL829: 4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11977 .loc 1 4841 10 view .LVU4192 11978 0148 12F0007F tst r2, #33554432 11979 014c 82D1 bne .L728 4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11980 .loc 1 4844 9 is_stmt 1 view .LVU4193 4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11981 .loc 1 4844 17 is_stmt 0 view .LVU4194 11982 014e E26A ldr r2, [r4, #44] 4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11983 .loc 1 4844 12 view .LVU4195 11984 0150 12F5803F cmn r2, #65536 11985 0154 04D1 bne .L737 4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11986 .loc 1 4847 11 is_stmt 1 view .LVU4196 4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11987 .loc 1 4847 25 is_stmt 0 view .LVU4197 11988 0156 5A68 ldr r2, [r3, #4] 4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11989 .loc 1 4847 31 view .LVU4198 11990 0158 42F48042 orr r2, r2, #16384 11991 015c 5A60 str r2, [r3, #4] 11992 015e 79E7 b .L728 11993 .L737: 4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11994 .loc 1 4852 11 is_stmt 1 view .LVU4199 11995 0160 2046 mov r0, r4 11996 .LVL830: 4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11997 .loc 1 4852 11 is_stmt 0 view .LVU4200 11998 0162 FFF7FEFF bl I2C_ITMasterSeqCplt 11999 .LVL831: 4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12000 .loc 1 4852 11 view .LVU4201 12001 0166 75E7 b .L728 12002 .LVL832: 12003 .L736: 4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12004 .loc 1 4860 7 is_stmt 1 view .LVU4202 12005 0168 4021 movs r1, #64 12006 .LVL833: 4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12007 .loc 1 4860 7 is_stmt 0 view .LVU4203 12008 016a 2046 mov r0, r4 ARM GAS /tmp/ccbUHtu7.s page 402 12009 .LVL834: 4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12010 .loc 1 4860 7 view .LVU4204 12011 016c FFF7FEFF bl I2C_ITError 12012 .LVL835: 4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12013 .loc 1 4860 7 view .LVU4205 12014 0170 70E7 b .L728 12015 .LVL836: 12016 .L745: 4872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12017 .loc 1 4872 5 is_stmt 1 view .LVU4206 12018 0172 2946 mov r1, r5 12019 0174 2046 mov r0, r4 12020 0176 FFF7FEFF bl I2C_ITMasterCplt 12021 .LVL837: 12022 017a 72E7 b .L738 12023 .LVL838: 12024 .L739: 12025 .LCFI130: 12026 .cfi_def_cfa_offset 0 12027 .cfi_restore 4 12028 .cfi_restore 5 12029 .cfi_restore 6 12030 .cfi_restore 14 4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12031 .loc 1 4750 3 is_stmt 0 view .LVU4207 12032 017c 0220 movs r0, #2 12033 .LVL839: 4879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12034 .loc 1 4879 1 view .LVU4208 12035 017e 7047 bx lr 12036 .cfi_endproc 12037 .LFE378: 12039 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 12040 .align 1 12041 .syntax unified 12042 .thumb 12043 .thumb_func 12045 I2C_Slave_ISR_DMA: 12046 .LVL840: 12047 .LFB381: 5172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12048 .loc 1 5172 1 is_stmt 1 view -0 12049 .cfi_startproc 12050 @ args = 0, pretend = 0, frame = 0 12051 @ frame_needed = 0, uses_anonymous_args = 0 5172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12052 .loc 1 5172 1 is_stmt 0 view .LVU4210 12053 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 12054 .LCFI131: 12055 .cfi_def_cfa_offset 24 12056 .cfi_offset 3, -24 12057 .cfi_offset 4, -20 12058 .cfi_offset 5, -16 12059 .cfi_offset 6, -12 12060 .cfi_offset 7, -8 ARM GAS /tmp/ccbUHtu7.s page 403 12061 .cfi_offset 14, -4 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 12062 .loc 1 5173 3 is_stmt 1 view .LVU4211 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 12063 .loc 1 5173 12 is_stmt 0 view .LVU4212 12064 0002 C76A ldr r7, [r0, #44] 12065 .LVL841: 5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12066 .loc 1 5174 3 is_stmt 1 view .LVU4213 5175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12067 .loc 1 5175 3 view .LVU4214 5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12068 .loc 1 5178 3 view .LVU4215 5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12069 .loc 1 5178 3 view .LVU4216 12070 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12071 0008 012B cmp r3, #1 12072 000a 00F08780 beq .L764 12073 000e 0446 mov r4, r0 12074 0010 0D46 mov r5, r1 12075 0012 1646 mov r6, r2 5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12076 .loc 1 5178 3 discriminator 2 view .LVU4217 12077 0014 0123 movs r3, #1 12078 0016 80F84030 strb r3, [r0, #64] 5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12079 .loc 1 5178 3 discriminator 2 view .LVU4218 5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12080 .loc 1 5181 3 discriminator 2 view .LVU4219 5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12081 .loc 1 5181 6 is_stmt 0 discriminator 2 view .LVU4220 12082 001a 11F0200F tst r1, #32 12083 001e 02D0 beq .L749 5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12084 .loc 1 5181 58 discriminator 1 view .LVU4221 12085 0020 12F0200F tst r2, #32 12086 0024 12D1 bne .L769 12087 .LVL842: 12088 .L749: 5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12089 .loc 1 5188 3 is_stmt 1 view .LVU4222 5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12090 .loc 1 5188 6 is_stmt 0 view .LVU4223 12091 0026 15F0100F tst r5, #16 12092 002a 68D0 beq .L750 5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12093 .loc 1 5188 55 discriminator 1 view .LVU4224 12094 002c 16F0100F tst r6, #16 12095 0030 65D0 beq .L750 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12096 .loc 1 5195 5 is_stmt 1 view .LVU4225 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12097 .loc 1 5195 8 is_stmt 0 view .LVU4226 12098 0032 16F4404F tst r6, #49152 12099 0036 5ED0 beq .L751 5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12100 .loc 1 5199 7 is_stmt 1 view .LVU4227 ARM GAS /tmp/ccbUHtu7.s page 404 5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12101 .loc 1 5199 15 is_stmt 0 view .LVU4228 12102 0038 E36B ldr r3, [r4, #60] 5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12103 .loc 1 5199 10 view .LVU4229 12104 003a 53B1 cbz r3, .L765 5201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12105 .loc 1 5201 9 is_stmt 1 view .LVU4230 5201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12106 .loc 1 5201 12 is_stmt 0 view .LVU4231 12107 003c 16F40042 ands r2, r6, #32768 12108 0040 08D0 beq .L752 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12109 .loc 1 5203 11 is_stmt 1 view .LVU4232 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12110 .loc 1 5203 15 is_stmt 0 view .LVU4233 12111 0042 1B68 ldr r3, [r3] 12112 0044 5B68 ldr r3, [r3, #4] 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12113 .loc 1 5203 14 view .LVU4234 12114 0046 3BB3 cbz r3, .L766 5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12115 .loc 1 5174 12 view .LVU4235 12116 0048 0022 movs r2, #0 12117 004a 03E0 b .L752 12118 .LVL843: 12119 .L769: 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12120 .loc 1 5185 5 is_stmt 1 view .LVU4236 12121 004c FFF7FEFF bl I2C_ITSlaveCplt 12122 .LVL844: 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12123 .loc 1 5185 5 is_stmt 0 view .LVU4237 12124 0050 E9E7 b .L749 12125 .L765: 5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12126 .loc 1 5174 12 view .LVU4238 12127 0052 0022 movs r2, #0 12128 .L752: 12129 .LVL845: 5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12130 .loc 1 5211 7 is_stmt 1 view .LVU4239 5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12131 .loc 1 5211 15 is_stmt 0 view .LVU4240 12132 0054 A36B ldr r3, [r4, #56] 5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12133 .loc 1 5211 10 view .LVU4241 12134 0056 2BB1 cbz r3, .L753 5213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12135 .loc 1 5213 9 is_stmt 1 view .LVU4242 5213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12136 .loc 1 5213 12 is_stmt 0 view .LVU4243 12137 0058 16F4804F tst r6, #16384 12138 005c 02D0 beq .L753 5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12139 .loc 1 5215 11 is_stmt 1 view .LVU4244 5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccbUHtu7.s page 405 12140 .loc 1 5215 15 is_stmt 0 view .LVU4245 12141 005e 1B68 ldr r3, [r3] 12142 0060 5B68 ldr r3, [r3, #4] 5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12143 .loc 1 5215 14 view .LVU4246 12144 0062 DBB1 cbz r3, .L754 12145 .L753: 5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12146 .loc 1 5222 7 is_stmt 1 view .LVU4247 5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12147 .loc 1 5222 10 is_stmt 0 view .LVU4248 12148 0064 012A cmp r2, #1 12149 0066 19D0 beq .L754 5253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12150 .loc 1 5253 9 is_stmt 1 view .LVU4249 12151 0068 2368 ldr r3, [r4] 12152 006a 1022 movs r2, #16 12153 .LVL846: 5253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12154 .loc 1 5253 9 is_stmt 0 view .LVU4250 12155 006c DA61 str r2, [r3, #28] 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12156 .loc 1 5256 9 is_stmt 1 view .LVU4251 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12157 .loc 1 5256 13 is_stmt 0 view .LVU4252 12158 006e 636C ldr r3, [r4, #68] 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12159 .loc 1 5256 25 view .LVU4253 12160 0070 43F00403 orr r3, r3, #4 12161 0074 6364 str r3, [r4, #68] 5259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12162 .loc 1 5259 9 is_stmt 1 view .LVU4254 5259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12163 .loc 1 5259 18 is_stmt 0 view .LVU4255 12164 0076 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12165 007a DBB2 uxtb r3, r3 12166 .LVL847: 5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12167 .loc 1 5261 9 is_stmt 1 view .LVU4256 5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12168 .loc 1 5261 12 is_stmt 0 view .LVU4257 12169 007c 17B1 cbz r7, .L759 5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12170 .loc 1 5261 45 discriminator 1 view .LVU4258 12171 007e B7F1807F cmp r7, #16777216 12172 0082 42D1 bne .L757 12173 .L759: 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12174 .loc 1 5263 11 is_stmt 1 view .LVU4259 12175 0084 213B subs r3, r3, #33 12176 .LVL848: 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12177 .loc 1 5263 11 is_stmt 0 view .LVU4260 12178 0086 092B cmp r3, #9 12179 0088 2DD8 bhi .L760 12180 008a DFE803F0 tbb [pc, r3] 12181 .L762: ARM GAS /tmp/ccbUHtu7.s page 406 12182 008e 2A .byte (.L763-.L762)/2 12183 008f 31 .byte (.L761-.L762)/2 12184 0090 2C .byte (.L760-.L762)/2 12185 0091 2C .byte (.L760-.L762)/2 12186 0092 2C .byte (.L760-.L762)/2 12187 0093 2C .byte (.L760-.L762)/2 12188 0094 2C .byte (.L760-.L762)/2 12189 0095 2C .byte (.L760-.L762)/2 12190 0096 2A .byte (.L763-.L762)/2 12191 0097 31 .byte (.L761-.L762)/2 12192 .LVL849: 12193 .p2align 1 12194 .L766: 5205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12195 .loc 1 5205 26 view .LVU4261 12196 0098 0122 movs r2, #1 12197 009a DBE7 b .L752 12198 .LVL850: 12199 .L754: 5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12200 .loc 1 5224 9 is_stmt 1 view .LVU4262 5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12201 .loc 1 5224 18 is_stmt 0 view .LVU4263 12202 009c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12203 00a0 DBB2 uxtb r3, r3 5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12204 .loc 1 5224 12 view .LVU4264 12205 00a2 282B cmp r3, #40 12206 00a4 08D0 beq .L770 12207 .L756: 5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12208 .loc 1 5231 14 is_stmt 1 view .LVU4265 5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12209 .loc 1 5231 23 is_stmt 0 view .LVU4266 12210 00a6 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12211 00aa DBB2 uxtb r3, r3 5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12212 .loc 1 5231 17 view .LVU4267 12213 00ac 292B cmp r3, #41 12214 00ae 0BD0 beq .L771 12215 .L758: 5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12216 .loc 1 5246 11 is_stmt 1 view .LVU4268 12217 00b0 2368 ldr r3, [r4] 12218 00b2 1022 movs r2, #16 12219 00b4 DA61 str r2, [r3, #28] 12220 00b6 28E0 b .L757 12221 .L770: 5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12222 .loc 1 5224 51 is_stmt 0 discriminator 1 view .LVU4269 12223 00b8 B7F1007F cmp r7, #33554432 12224 00bc F3D1 bne .L756 5229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12225 .loc 1 5229 11 is_stmt 1 view .LVU4270 12226 00be 2946 mov r1, r5 12227 00c0 2046 mov r0, r4 12228 00c2 FFF7FEFF bl I2C_ITListenCplt ARM GAS /tmp/ccbUHtu7.s page 407 12229 .LVL851: 12230 00c6 20E0 b .L757 12231 .L771: 5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12232 .loc 1 5231 64 is_stmt 0 discriminator 1 view .LVU4271 12233 00c8 17F5803F cmn r7, #65536 12234 00cc F0D0 beq .L758 5234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12235 .loc 1 5234 11 is_stmt 1 view .LVU4272 12236 00ce 2368 ldr r3, [r4] 12237 00d0 1022 movs r2, #16 12238 00d2 DA61 str r2, [r3, #28] 5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12239 .loc 1 5237 11 view .LVU4273 12240 00d4 2046 mov r0, r4 12241 00d6 FFF7FEFF bl I2C_Flush_TXDR 12242 .LVL852: 5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12243 .loc 1 5241 11 view .LVU4274 12244 00da 2046 mov r0, r4 12245 00dc FFF7FEFF bl I2C_ITSlaveSeqCplt 12246 .LVL853: 12247 00e0 13E0 b .L757 12248 .LVL854: 12249 .L763: 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12250 .loc 1 5265 13 view .LVU4275 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12251 .loc 1 5265 33 is_stmt 0 view .LVU4276 12252 00e2 2123 movs r3, #33 12253 .LVL855: 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12254 .loc 1 5265 33 view .LVU4277 12255 00e4 2363 str r3, [r4, #48] 12256 .L760: 5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12257 .loc 1 5277 11 is_stmt 1 view .LVU4278 5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12258 .loc 1 5277 33 is_stmt 0 view .LVU4279 12259 00e6 616C ldr r1, [r4, #68] 5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12260 .loc 1 5277 11 view .LVU4280 12261 00e8 2046 mov r0, r4 12262 00ea FFF7FEFF bl I2C_ITError 12263 .LVL856: 12264 00ee 0CE0 b .L757 12265 .LVL857: 12266 .L761: 5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12267 .loc 1 5269 13 is_stmt 1 view .LVU4281 5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12268 .loc 1 5269 33 is_stmt 0 view .LVU4282 12269 00f0 2223 movs r3, #34 12270 .LVL858: 5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12271 .loc 1 5269 33 view .LVU4283 12272 00f2 2363 str r3, [r4, #48] ARM GAS /tmp/ccbUHtu7.s page 408 12273 00f4 F7E7 b .L760 12274 .LVL859: 12275 .L751: 5284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12276 .loc 1 5284 7 is_stmt 1 view .LVU4284 12277 00f6 2368 ldr r3, [r4] 12278 00f8 1022 movs r2, #16 12279 00fa DA61 str r2, [r3, #28] 12280 00fc 05E0 b .L757 12281 .L750: 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12282 .loc 1 5287 8 view .LVU4285 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12283 .loc 1 5287 11 is_stmt 0 view .LVU4286 12284 00fe 15F0080F tst r5, #8 12285 0102 02D0 beq .L757 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12286 .loc 1 5287 62 discriminator 1 view .LVU4287 12287 0104 16F0080F tst r6, #8 12288 0108 03D1 bne .L772 12289 .LVL860: 12290 .L757: 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12291 .loc 1 5295 3 is_stmt 1 view .LVU4288 5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12292 .loc 1 5298 3 view .LVU4289 5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12293 .loc 1 5298 3 view .LVU4290 12294 010a 0020 movs r0, #0 12295 010c 84F84000 strb r0, [r4, #64] 5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12296 .loc 1 5298 3 view .LVU4291 5300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12297 .loc 1 5300 3 view .LVU4292 12298 .LVL861: 12299 .L748: 5301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12300 .loc 1 5301 1 is_stmt 0 view .LVU4293 12301 0110 F8BD pop {r3, r4, r5, r6, r7, pc} 12302 .LVL862: 12303 .L772: 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12304 .loc 1 5290 5 is_stmt 1 view .LVU4294 12305 0112 2946 mov r1, r5 12306 0114 2046 mov r0, r4 12307 0116 FFF7FEFF bl I2C_ITAddrCplt 12308 .LVL863: 12309 011a F6E7 b .L757 12310 .LVL864: 12311 .L764: 5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12312 .loc 1 5178 3 is_stmt 0 view .LVU4295 12313 011c 0220 movs r0, #2 12314 .LVL865: 5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12315 .loc 1 5178 3 view .LVU4296 12316 011e F7E7 b .L748 ARM GAS /tmp/ccbUHtu7.s page 409 12317 .cfi_endproc 12318 .LFE381: 12320 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 12321 .align 1 12322 .syntax unified 12323 .thumb 12324 .thumb_func 12326 I2C_Master_ISR_DMA: 12327 .LVL866: 12328 .LFB380: 5032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 12329 .loc 1 5032 1 is_stmt 1 view -0 12330 .cfi_startproc 12331 @ args = 0, pretend = 0, frame = 0 12332 @ frame_needed = 0, uses_anonymous_args = 0 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 12333 .loc 1 5033 3 view .LVU4298 5034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12334 .loc 1 5034 3 view .LVU4299 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12335 .loc 1 5037 3 view .LVU4300 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12336 .loc 1 5037 3 view .LVU4301 12337 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12338 0004 012B cmp r3, #1 12339 0006 00F09A80 beq .L786 5032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 12340 .loc 1 5032 1 is_stmt 0 discriminator 2 view .LVU4302 12341 000a 10B5 push {r4, lr} 12342 .LCFI132: 12343 .cfi_def_cfa_offset 8 12344 .cfi_offset 4, -8 12345 .cfi_offset 14, -4 12346 000c 82B0 sub sp, sp, #8 12347 .LCFI133: 12348 .cfi_def_cfa_offset 16 12349 000e 0446 mov r4, r0 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12350 .loc 1 5037 3 is_stmt 1 discriminator 2 view .LVU4303 12351 0010 0123 movs r3, #1 12352 0012 80F84030 strb r3, [r0, #64] 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12353 .loc 1 5037 3 discriminator 2 view .LVU4304 5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12354 .loc 1 5039 3 discriminator 2 view .LVU4305 5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12355 .loc 1 5039 6 is_stmt 0 discriminator 2 view .LVU4306 12356 0016 11F0100F tst r1, #16 12357 001a 02D0 beq .L775 5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12358 .loc 1 5039 55 discriminator 1 view .LVU4307 12359 001c 12F0100F tst r2, #16 12360 0020 32D1 bne .L792 12361 .L775: 5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12362 .loc 1 5056 8 is_stmt 1 view .LVU4308 5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) ARM GAS /tmp/ccbUHtu7.s page 410 12363 .loc 1 5056 11 is_stmt 0 view .LVU4309 12364 0022 11F0800F tst r1, #128 12365 0026 60D0 beq .L777 5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12366 .loc 1 5056 61 discriminator 1 view .LVU4310 12367 0028 12F0400F tst r2, #64 12368 002c 5DD0 beq .L777 5060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12369 .loc 1 5060 5 is_stmt 1 view .LVU4311 12370 002e 2268 ldr r2, [r4] 12371 .LVL867: 5060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12372 .loc 1 5060 5 is_stmt 0 view .LVU4312 12373 0030 1368 ldr r3, [r2] 12374 0032 23F04003 bic r3, r3, #64 12375 0036 1360 str r3, [r2] 5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12376 .loc 1 5062 5 is_stmt 1 view .LVU4313 5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12377 .loc 1 5062 13 is_stmt 0 view .LVU4314 12378 0038 638D ldrh r3, [r4, #42] 12379 003a 9BB2 uxth r3, r3 5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12380 .loc 1 5062 8 view .LVU4315 12381 003c 002B cmp r3, #0 12382 003e 46D0 beq .L778 5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12383 .loc 1 5065 7 is_stmt 1 view .LVU4316 5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12384 .loc 1 5065 35 is_stmt 0 view .LVU4317 12385 0040 2368 ldr r3, [r4] 5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12386 .loc 1 5065 45 view .LVU4318 12387 0042 5968 ldr r1, [r3, #4] 12388 .LVL868: 5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12389 .loc 1 5065 18 view .LVU4319 12390 0044 C1F30901 ubfx r1, r1, #0, #10 12391 .LVL869: 5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12392 .loc 1 5068 7 is_stmt 1 view .LVU4320 5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12393 .loc 1 5068 15 is_stmt 0 view .LVU4321 12394 0048 638D ldrh r3, [r4, #42] 12395 004a 9BB2 uxth r3, r3 5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12396 .loc 1 5068 10 view .LVU4322 12397 004c FF2B cmp r3, #255 12398 004e 2DD9 bls .L779 5070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 12399 .loc 1 5070 9 is_stmt 1 view .LVU4323 5070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 12400 .loc 1 5070 24 is_stmt 0 view .LVU4324 12401 0050 FF23 movs r3, #255 12402 0052 2385 strh r3, [r4, #40] @ movhi 5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12403 .loc 1 5071 9 is_stmt 1 view .LVU4325 ARM GAS /tmp/ccbUHtu7.s page 411 12404 .LVL870: 5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12405 .loc 1 5071 18 is_stmt 0 view .LVU4326 12406 0054 4FF08073 mov r3, #16777216 12407 .LVL871: 12408 .L780: 5087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12409 .loc 1 5087 7 is_stmt 1 view .LVU4327 12410 0058 0022 movs r2, #0 12411 005a 0092 str r2, [sp] 12412 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12413 0060 2046 mov r0, r4 12414 .LVL872: 5087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12415 .loc 1 5087 7 is_stmt 0 view .LVU4328 12416 0062 FFF7FEFF bl I2C_TransferConfig 12417 .LVL873: 5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12418 .loc 1 5090 7 is_stmt 1 view .LVU4329 5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12419 .loc 1 5090 11 is_stmt 0 view .LVU4330 12420 0066 638D ldrh r3, [r4, #42] 12421 0068 9BB2 uxth r3, r3 5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12422 .loc 1 5090 30 view .LVU4331 12423 006a 228D ldrh r2, [r4, #40] 5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12424 .loc 1 5090 23 view .LVU4332 12425 006c 9B1A subs r3, r3, r2 12426 006e 9BB2 uxth r3, r3 12427 0070 6385 strh r3, [r4, #42] @ movhi 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12428 .loc 1 5093 7 is_stmt 1 view .LVU4333 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12429 .loc 1 5093 15 is_stmt 0 view .LVU4334 12430 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12431 0076 DBB2 uxtb r3, r3 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12432 .loc 1 5093 10 view .LVU4335 12433 0078 222B cmp r3, #34 12434 007a 22D0 beq .L793 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12435 .loc 1 5099 9 is_stmt 1 view .LVU4336 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12436 .loc 1 5099 13 is_stmt 0 view .LVU4337 12437 007c 2268 ldr r2, [r4] 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12438 .loc 1 5099 23 view .LVU4338 12439 007e 1368 ldr r3, [r2] 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12440 .loc 1 5099 29 view .LVU4339 12441 0080 43F48043 orr r3, r3, #16384 12442 0084 1360 str r3, [r2] 12443 0086 0CE0 b .L776 12444 .LVL874: 12445 .L792: 5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccbUHtu7.s page 412 12446 .loc 1 5043 5 is_stmt 1 view .LVU4340 12447 0088 0368 ldr r3, [r0] 12448 008a 1022 movs r2, #16 12449 .LVL875: 5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12450 .loc 1 5043 5 is_stmt 0 view .LVU4341 12451 008c DA61 str r2, [r3, #28] 5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12452 .loc 1 5046 5 is_stmt 1 view .LVU4342 5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12453 .loc 1 5046 9 is_stmt 0 view .LVU4343 12454 008e 436C ldr r3, [r0, #68] 5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12455 .loc 1 5046 21 view .LVU4344 12456 0090 43F00403 orr r3, r3, #4 12457 0094 4364 str r3, [r0, #68] 5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12458 .loc 1 5051 5 is_stmt 1 view .LVU4345 12459 0096 2021 movs r1, #32 12460 .LVL876: 5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12461 .loc 1 5051 5 is_stmt 0 view .LVU4346 12462 0098 FFF7FEFF bl I2C_Enable_IRQ 12463 .LVL877: 5054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12464 .loc 1 5054 5 is_stmt 1 view .LVU4347 12465 009c 2046 mov r0, r4 12466 009e FFF7FEFF bl I2C_Flush_TXDR 12467 .LVL878: 12468 .L776: 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12469 .loc 1 5154 3 view .LVU4348 5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12470 .loc 1 5157 3 view .LVU4349 5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12471 .loc 1 5157 3 view .LVU4350 12472 00a2 0020 movs r0, #0 12473 00a4 84F84000 strb r0, [r4, #64] 5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12474 .loc 1 5157 3 view .LVU4351 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12475 .loc 1 5159 3 view .LVU4352 5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12476 .loc 1 5160 1 is_stmt 0 view .LVU4353 12477 00a8 02B0 add sp, sp, #8 12478 .LCFI134: 12479 .cfi_remember_state 12480 .cfi_def_cfa_offset 8 12481 @ sp needed 12482 00aa 10BD pop {r4, pc} 12483 .LVL879: 12484 .L779: 12485 .LCFI135: 12486 .cfi_restore_state 5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12487 .loc 1 5075 9 is_stmt 1 view .LVU4354 5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) ARM GAS /tmp/ccbUHtu7.s page 413 12488 .loc 1 5075 30 is_stmt 0 view .LVU4355 12489 00ac 638D ldrh r3, [r4, #42] 5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12490 .loc 1 5075 24 view .LVU4356 12491 00ae 2385 strh r3, [r4, #40] @ movhi 5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12492 .loc 1 5076 9 is_stmt 1 view .LVU4357 5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12493 .loc 1 5076 17 is_stmt 0 view .LVU4358 12494 00b0 E36A ldr r3, [r4, #44] 5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12495 .loc 1 5076 12 view .LVU4359 12496 00b2 13F5803F cmn r3, #65536 12497 00b6 01D0 beq .L787 5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12498 .loc 1 5078 11 is_stmt 1 view .LVU4360 5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12499 .loc 1 5078 20 is_stmt 0 view .LVU4361 12500 00b8 E36A ldr r3, [r4, #44] 12501 .LVL880: 5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12502 .loc 1 5078 20 view .LVU4362 12503 00ba CDE7 b .L780 12504 .LVL881: 12505 .L787: 5082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12506 .loc 1 5082 20 view .LVU4363 12507 00bc 4FF00073 mov r3, #33554432 12508 00c0 CAE7 b .L780 12509 .LVL882: 12510 .L793: 5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12511 .loc 1 5095 9 is_stmt 1 view .LVU4364 5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12512 .loc 1 5095 13 is_stmt 0 view .LVU4365 12513 00c2 2268 ldr r2, [r4] 5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12514 .loc 1 5095 23 view .LVU4366 12515 00c4 1368 ldr r3, [r2] 5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12516 .loc 1 5095 29 view .LVU4367 12517 00c6 43F40043 orr r3, r3, #32768 12518 00ca 1360 str r3, [r2] 12519 00cc E9E7 b .L776 12520 .LVL883: 12521 .L778: 5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12522 .loc 1 5105 7 is_stmt 1 view .LVU4368 5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12523 .loc 1 5105 11 is_stmt 0 view .LVU4369 12524 00ce 2368 ldr r3, [r4] 12525 00d0 5B68 ldr r3, [r3, #4] 5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12526 .loc 1 5105 10 view .LVU4370 12527 00d2 13F0007F tst r3, #33554432 12528 00d6 03D1 bne .L782 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccbUHtu7.s page 414 12529 .loc 1 5108 9 is_stmt 1 view .LVU4371 12530 00d8 2046 mov r0, r4 12531 .LVL884: 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12532 .loc 1 5108 9 is_stmt 0 view .LVU4372 12533 00da FFF7FEFF bl I2C_ITMasterSeqCplt 12534 .LVL885: 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12535 .loc 1 5108 9 view .LVU4373 12536 00de E0E7 b .L776 12537 .LVL886: 12538 .L782: 5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12539 .loc 1 5114 9 is_stmt 1 view .LVU4374 12540 00e0 4021 movs r1, #64 12541 .LVL887: 5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12542 .loc 1 5114 9 is_stmt 0 view .LVU4375 12543 00e2 2046 mov r0, r4 12544 .LVL888: 5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12545 .loc 1 5114 9 view .LVU4376 12546 00e4 FFF7FEFF bl I2C_ITError 12547 .LVL889: 12548 00e8 DBE7 b .L776 12549 .LVL890: 12550 .L777: 5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12551 .loc 1 5118 8 is_stmt 1 view .LVU4377 5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12552 .loc 1 5118 11 is_stmt 0 view .LVU4378 12553 00ea 11F0400F tst r1, #64 12554 00ee 1CD0 beq .L783 5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12555 .loc 1 5118 60 discriminator 1 view .LVU4379 12556 00f0 12F0400F tst r2, #64 12557 00f4 19D0 beq .L783 5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12558 .loc 1 5121 5 is_stmt 1 view .LVU4380 5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12559 .loc 1 5121 13 is_stmt 0 view .LVU4381 12560 00f6 638D ldrh r3, [r4, #42] 12561 00f8 9BB2 uxth r3, r3 5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12562 .loc 1 5121 8 view .LVU4382 12563 00fa 8BB9 cbnz r3, .L784 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12564 .loc 1 5123 7 is_stmt 1 view .LVU4383 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12565 .loc 1 5123 11 is_stmt 0 view .LVU4384 12566 00fc 2368 ldr r3, [r4] 12567 00fe 5A68 ldr r2, [r3, #4] 12568 .LVL891: 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12569 .loc 1 5123 10 view .LVU4385 12570 0100 12F0007F tst r2, #33554432 12571 0104 CDD1 bne .L776 ARM GAS /tmp/ccbUHtu7.s page 415 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12572 .loc 1 5126 9 is_stmt 1 view .LVU4386 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12573 .loc 1 5126 17 is_stmt 0 view .LVU4387 12574 0106 E26A ldr r2, [r4, #44] 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12575 .loc 1 5126 12 view .LVU4388 12576 0108 12F5803F cmn r2, #65536 12577 010c 04D1 bne .L785 5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12578 .loc 1 5129 11 is_stmt 1 view .LVU4389 5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12579 .loc 1 5129 25 is_stmt 0 view .LVU4390 12580 010e 5A68 ldr r2, [r3, #4] 5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12581 .loc 1 5129 31 view .LVU4391 12582 0110 42F48042 orr r2, r2, #16384 12583 0114 5A60 str r2, [r3, #4] 12584 0116 C4E7 b .L776 12585 .L785: 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12586 .loc 1 5134 11 is_stmt 1 view .LVU4392 12587 0118 2046 mov r0, r4 12588 .LVL892: 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12589 .loc 1 5134 11 is_stmt 0 view .LVU4393 12590 011a FFF7FEFF bl I2C_ITMasterSeqCplt 12591 .LVL893: 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12592 .loc 1 5134 11 view .LVU4394 12593 011e C0E7 b .L776 12594 .LVL894: 12595 .L784: 5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12596 .loc 1 5142 7 is_stmt 1 view .LVU4395 12597 0120 4021 movs r1, #64 12598 .LVL895: 5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12599 .loc 1 5142 7 is_stmt 0 view .LVU4396 12600 0122 2046 mov r0, r4 12601 .LVL896: 5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12602 .loc 1 5142 7 view .LVU4397 12603 0124 FFF7FEFF bl I2C_ITError 12604 .LVL897: 5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12605 .loc 1 5142 7 view .LVU4398 12606 0128 BBE7 b .L776 12607 .LVL898: 12608 .L783: 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12609 .loc 1 5145 8 is_stmt 1 view .LVU4399 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12610 .loc 1 5145 11 is_stmt 0 view .LVU4400 12611 012a 11F0200F tst r1, #32 12612 012e B8D0 beq .L776 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) ARM GAS /tmp/ccbUHtu7.s page 416 12613 .loc 1 5145 63 discriminator 1 view .LVU4401 12614 0130 12F0200F tst r2, #32 12615 0134 B5D0 beq .L776 5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12616 .loc 1 5149 5 is_stmt 1 view .LVU4402 12617 0136 2046 mov r0, r4 12618 .LVL899: 5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12619 .loc 1 5149 5 is_stmt 0 view .LVU4403 12620 0138 FFF7FEFF bl I2C_ITMasterCplt 12621 .LVL900: 5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12622 .loc 1 5149 5 view .LVU4404 12623 013c B1E7 b .L776 12624 .LVL901: 12625 .L786: 12626 .LCFI136: 12627 .cfi_def_cfa_offset 0 12628 .cfi_restore 4 12629 .cfi_restore 14 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12630 .loc 1 5037 3 view .LVU4405 12631 013e 0220 movs r0, #2 12632 .LVL902: 5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12633 .loc 1 5160 1 view .LVU4406 12634 0140 7047 bx lr 12635 .cfi_endproc 12636 .LFE380: 12638 .section .text.I2C_DMAError,"ax",%progbits 12639 .align 1 12640 .syntax unified 12641 .thumb 12642 .thumb_func 12644 I2C_DMAError: 12645 .LVL903: 12646 .LFB397: 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12647 .loc 1 6322 1 is_stmt 1 view -0 12648 .cfi_startproc 12649 @ args = 0, pretend = 0, frame = 0 12650 @ frame_needed = 0, uses_anonymous_args = 0 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12651 .loc 1 6322 1 is_stmt 0 view .LVU4408 12652 0000 08B5 push {r3, lr} 12653 .LCFI137: 12654 .cfi_def_cfa_offset 8 12655 .cfi_offset 3, -8 12656 .cfi_offset 14, -4 6324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12657 .loc 1 6324 3 is_stmt 1 view .LVU4409 6324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12658 .loc 1 6324 22 is_stmt 0 view .LVU4410 12659 0002 806A ldr r0, [r0, #40] 12660 .LVL904: 6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12661 .loc 1 6327 3 is_stmt 1 view .LVU4411 ARM GAS /tmp/ccbUHtu7.s page 417 6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12662 .loc 1 6327 7 is_stmt 0 view .LVU4412 12663 0004 0268 ldr r2, [r0] 6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12664 .loc 1 6327 17 view .LVU4413 12665 0006 5368 ldr r3, [r2, #4] 6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12666 .loc 1 6327 23 view .LVU4414 12667 0008 43F40043 orr r3, r3, #32768 12668 000c 5360 str r3, [r2, #4] 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12669 .loc 1 6330 3 is_stmt 1 view .LVU4415 12670 000e 1021 movs r1, #16 12671 0010 FFF7FEFF bl I2C_ITError 12672 .LVL905: 6331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12673 .loc 1 6331 1 is_stmt 0 view .LVU4416 12674 0014 08BD pop {r3, pc} 12675 .cfi_endproc 12676 .LFE397: 12678 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 12679 .align 1 12680 .syntax unified 12681 .thumb 12682 .thumb_func 12684 I2C_DMAMasterTransmitCplt: 12685 .LVL906: 12686 .LFB393: 6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12687 .loc 1 6166 1 is_stmt 1 view -0 12688 .cfi_startproc 12689 @ args = 0, pretend = 0, frame = 0 12690 @ frame_needed = 0, uses_anonymous_args = 0 6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12691 .loc 1 6166 1 is_stmt 0 view .LVU4418 12692 0000 10B5 push {r4, lr} 12693 .LCFI138: 12694 .cfi_def_cfa_offset 8 12695 .cfi_offset 4, -8 12696 .cfi_offset 14, -4 6168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12697 .loc 1 6168 3 is_stmt 1 view .LVU4419 6168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12698 .loc 1 6168 22 is_stmt 0 view .LVU4420 12699 0002 846A ldr r4, [r0, #40] 12700 .LVL907: 6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12701 .loc 1 6171 3 is_stmt 1 view .LVU4421 6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12702 .loc 1 6171 7 is_stmt 0 view .LVU4422 12703 0004 2268 ldr r2, [r4] 6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12704 .loc 1 6171 17 view .LVU4423 12705 0006 1368 ldr r3, [r2] 6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12706 .loc 1 6171 23 view .LVU4424 12707 0008 23F48043 bic r3, r3, #16384 ARM GAS /tmp/ccbUHtu7.s page 418 12708 000c 1360 str r3, [r2] 6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12709 .loc 1 6174 3 is_stmt 1 view .LVU4425 6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12710 .loc 1 6174 11 is_stmt 0 view .LVU4426 12711 000e 638D ldrh r3, [r4, #42] 12712 0010 9BB2 uxth r3, r3 6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12713 .loc 1 6174 6 view .LVU4427 12714 0012 ABB1 cbz r3, .L803 6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12715 .loc 1 6183 5 is_stmt 1 view .LVU4428 6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12716 .loc 1 6183 9 is_stmt 0 view .LVU4429 12717 0014 616A ldr r1, [r4, #36] 6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12718 .loc 1 6183 27 view .LVU4430 12719 0016 238D ldrh r3, [r4, #40] 6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12720 .loc 1 6183 20 view .LVU4431 12721 0018 1944 add r1, r1, r3 12722 001a 6162 str r1, [r4, #36] 6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12723 .loc 1 6186 5 is_stmt 1 view .LVU4432 6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12724 .loc 1 6186 13 is_stmt 0 view .LVU4433 12725 001c 638D ldrh r3, [r4, #42] 12726 001e 9BB2 uxth r3, r3 6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12727 .loc 1 6186 8 view .LVU4434 12728 0020 FF2B cmp r3, #255 12729 0022 12D9 bls .L799 6188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12730 .loc 1 6188 7 is_stmt 1 view .LVU4435 6188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12731 .loc 1 6188 22 is_stmt 0 view .LVU4436 12732 0024 FF23 movs r3, #255 12733 0026 2385 strh r3, [r4, #40] @ movhi 12734 .L800: 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12735 .loc 1 6196 5 is_stmt 1 view .LVU4437 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12736 .loc 1 6196 81 is_stmt 0 view .LVU4438 12737 0028 2268 ldr r2, [r4] 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12738 .loc 1 6196 9 view .LVU4439 12739 002a 238D ldrh r3, [r4, #40] 12740 002c 2832 adds r2, r2, #40 12741 002e A06B ldr r0, [r4, #56] 12742 .LVL908: 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12743 .loc 1 6196 9 view .LVU4440 12744 0030 FFF7FEFF bl HAL_DMA_Start_IT 12745 .LVL909: 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12746 .loc 1 6196 8 view .LVU4441 12747 0034 60B1 cbz r0, .L801 ARM GAS /tmp/ccbUHtu7.s page 419 6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12748 .loc 1 6200 7 is_stmt 1 view .LVU4442 12749 0036 1021 movs r1, #16 12750 0038 2046 mov r0, r4 12751 003a FFF7FEFF bl I2C_ITError 12752 .LVL910: 12753 .L796: 6208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12754 .loc 1 6208 1 is_stmt 0 view .LVU4443 12755 003e 10BD pop {r4, pc} 12756 .LVL911: 12757 .L803: 6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12758 .loc 1 6177 5 is_stmt 1 view .LVU4444 12759 0040 2021 movs r1, #32 12760 0042 2046 mov r0, r4 12761 .LVL912: 6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12762 .loc 1 6177 5 is_stmt 0 view .LVU4445 12763 0044 FFF7FEFF bl I2C_Enable_IRQ 12764 .LVL913: 12765 0048 F9E7 b .L796 12766 .LVL914: 12767 .L799: 6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12768 .loc 1 6192 7 is_stmt 1 view .LVU4446 6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12769 .loc 1 6192 28 is_stmt 0 view .LVU4447 12770 004a 638D ldrh r3, [r4, #42] 6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12771 .loc 1 6192 22 view .LVU4448 12772 004c 2385 strh r3, [r4, #40] @ movhi 12773 004e EBE7 b .L800 12774 .LVL915: 12775 .L801: 6205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12776 .loc 1 6205 7 is_stmt 1 view .LVU4449 12777 0050 4021 movs r1, #64 12778 0052 2046 mov r0, r4 12779 0054 FFF7FEFF bl I2C_Enable_IRQ 12780 .LVL916: 6208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12781 .loc 1 6208 1 is_stmt 0 view .LVU4450 12782 0058 F1E7 b .L796 12783 .cfi_endproc 12784 .LFE393: 12786 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 12787 .align 1 12788 .syntax unified 12789 .thumb 12790 .thumb_func 12792 I2C_DMAMasterReceiveCplt: 12793 .LVL917: 12794 .LFB395: 6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12795 .loc 1 6244 1 is_stmt 1 view -0 12796 .cfi_startproc ARM GAS /tmp/ccbUHtu7.s page 420 12797 @ args = 0, pretend = 0, frame = 0 12798 @ frame_needed = 0, uses_anonymous_args = 0 6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12799 .loc 1 6244 1 is_stmt 0 view .LVU4452 12800 0000 10B5 push {r4, lr} 12801 .LCFI139: 12802 .cfi_def_cfa_offset 8 12803 .cfi_offset 4, -8 12804 .cfi_offset 14, -4 6246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12805 .loc 1 6246 3 is_stmt 1 view .LVU4453 6246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12806 .loc 1 6246 22 is_stmt 0 view .LVU4454 12807 0002 846A ldr r4, [r0, #40] 12808 .LVL918: 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12809 .loc 1 6249 3 is_stmt 1 view .LVU4455 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12810 .loc 1 6249 7 is_stmt 0 view .LVU4456 12811 0004 2268 ldr r2, [r4] 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12812 .loc 1 6249 17 view .LVU4457 12813 0006 1368 ldr r3, [r2] 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12814 .loc 1 6249 23 view .LVU4458 12815 0008 23F40043 bic r3, r3, #32768 12816 000c 1360 str r3, [r2] 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12817 .loc 1 6252 3 is_stmt 1 view .LVU4459 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12818 .loc 1 6252 11 is_stmt 0 view .LVU4460 12819 000e 638D ldrh r3, [r4, #42] 12820 0010 9BB2 uxth r3, r3 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12821 .loc 1 6252 6 view .LVU4461 12822 0012 ABB1 cbz r3, .L811 6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12823 .loc 1 6261 5 is_stmt 1 view .LVU4462 6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12824 .loc 1 6261 9 is_stmt 0 view .LVU4463 12825 0014 626A ldr r2, [r4, #36] 6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12826 .loc 1 6261 27 view .LVU4464 12827 0016 238D ldrh r3, [r4, #40] 6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12828 .loc 1 6261 20 view .LVU4465 12829 0018 1A44 add r2, r2, r3 12830 001a 6262 str r2, [r4, #36] 6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12831 .loc 1 6264 5 is_stmt 1 view .LVU4466 6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12832 .loc 1 6264 13 is_stmt 0 view .LVU4467 12833 001c 638D ldrh r3, [r4, #42] 12834 001e 9BB2 uxth r3, r3 6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12835 .loc 1 6264 8 view .LVU4468 12836 0020 FF2B cmp r3, #255 ARM GAS /tmp/ccbUHtu7.s page 421 12837 0022 12D9 bls .L807 6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12838 .loc 1 6266 7 is_stmt 1 view .LVU4469 6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12839 .loc 1 6266 22 is_stmt 0 view .LVU4470 12840 0024 FF23 movs r3, #255 12841 0026 2385 strh r3, [r4, #40] @ movhi 12842 .L808: 6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12843 .loc 1 6274 5 is_stmt 1 view .LVU4471 6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12844 .loc 1 6274 55 is_stmt 0 view .LVU4472 12845 0028 2168 ldr r1, [r4] 6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12846 .loc 1 6274 9 view .LVU4473 12847 002a 238D ldrh r3, [r4, #40] 12848 002c 2431 adds r1, r1, #36 12849 002e E06B ldr r0, [r4, #60] 12850 .LVL919: 6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12851 .loc 1 6274 9 view .LVU4474 12852 0030 FFF7FEFF bl HAL_DMA_Start_IT 12853 .LVL920: 6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12854 .loc 1 6274 8 view .LVU4475 12855 0034 60B1 cbz r0, .L809 6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12856 .loc 1 6278 7 is_stmt 1 view .LVU4476 12857 0036 1021 movs r1, #16 12858 0038 2046 mov r0, r4 12859 003a FFF7FEFF bl I2C_ITError 12860 .LVL921: 12861 .L804: 6286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12862 .loc 1 6286 1 is_stmt 0 view .LVU4477 12863 003e 10BD pop {r4, pc} 12864 .LVL922: 12865 .L811: 6255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12866 .loc 1 6255 5 is_stmt 1 view .LVU4478 12867 0040 2021 movs r1, #32 12868 0042 2046 mov r0, r4 12869 .LVL923: 6255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12870 .loc 1 6255 5 is_stmt 0 view .LVU4479 12871 0044 FFF7FEFF bl I2C_Enable_IRQ 12872 .LVL924: 12873 0048 F9E7 b .L804 12874 .LVL925: 12875 .L807: 6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12876 .loc 1 6270 7 is_stmt 1 view .LVU4480 6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12877 .loc 1 6270 28 is_stmt 0 view .LVU4481 12878 004a 638D ldrh r3, [r4, #42] 6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12879 .loc 1 6270 22 view .LVU4482 ARM GAS /tmp/ccbUHtu7.s page 422 12880 004c 2385 strh r3, [r4, #40] @ movhi 12881 004e EBE7 b .L808 12882 .LVL926: 12883 .L809: 6283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12884 .loc 1 6283 7 is_stmt 1 view .LVU4483 12885 0050 4021 movs r1, #64 12886 0052 2046 mov r0, r4 12887 0054 FFF7FEFF bl I2C_Enable_IRQ 12888 .LVL927: 6286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12889 .loc 1 6286 1 is_stmt 0 view .LVU4484 12890 0058 F1E7 b .L804 12891 .cfi_endproc 12892 .LFE395: 12894 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 12895 .align 1 12896 .global HAL_I2C_ER_IRQHandler 12897 .syntax unified 12898 .thumb 12899 .thumb_func 12901 HAL_I2C_ER_IRQHandler: 12902 .LVL928: 12903 .LFB364: 4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 12904 .loc 1 4462 1 is_stmt 1 view -0 12905 .cfi_startproc 12906 @ args = 0, pretend = 0, frame = 0 12907 @ frame_needed = 0, uses_anonymous_args = 0 4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 12908 .loc 1 4462 1 is_stmt 0 view .LVU4486 12909 0000 10B5 push {r4, lr} 12910 .LCFI140: 12911 .cfi_def_cfa_offset 8 12912 .cfi_offset 4, -8 12913 .cfi_offset 14, -4 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 12914 .loc 1 4463 3 is_stmt 1 view .LVU4487 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 12915 .loc 1 4463 24 is_stmt 0 view .LVU4488 12916 0002 0268 ldr r2, [r0] 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 12917 .loc 1 4463 12 view .LVU4489 12918 0004 9369 ldr r3, [r2, #24] 12919 .LVL929: 4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 12920 .loc 1 4464 3 is_stmt 1 view .LVU4490 4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 12921 .loc 1 4464 12 is_stmt 0 view .LVU4491 12922 0006 1168 ldr r1, [r2] 12923 .LVL930: 4465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12924 .loc 1 4465 3 is_stmt 1 view .LVU4492 4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12925 .loc 1 4468 3 view .LVU4493 4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12926 .loc 1 4468 6 is_stmt 0 view .LVU4494 ARM GAS /tmp/ccbUHtu7.s page 423 12927 0008 13F4807F tst r3, #256 12928 000c 09D0 beq .L813 4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12929 .loc 1 4468 57 discriminator 1 view .LVU4495 12930 000e 11F0800F tst r1, #128 12931 0012 06D0 beq .L813 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12932 .loc 1 4471 5 is_stmt 1 view .LVU4496 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12933 .loc 1 4471 9 is_stmt 0 view .LVU4497 12934 0014 446C ldr r4, [r0, #68] 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12935 .loc 1 4471 21 view .LVU4498 12936 0016 44F00104 orr r4, r4, #1 12937 001a 4464 str r4, [r0, #68] 4474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12938 .loc 1 4474 5 is_stmt 1 view .LVU4499 12939 001c 4FF48074 mov r4, #256 12940 0020 D461 str r4, [r2, #28] 12941 .L813: 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12942 .loc 1 4478 3 view .LVU4500 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12943 .loc 1 4478 6 is_stmt 0 view .LVU4501 12944 0022 13F4806F tst r3, #1024 12945 0026 0AD0 beq .L814 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12946 .loc 1 4478 56 discriminator 1 view .LVU4502 12947 0028 11F0800F tst r1, #128 12948 002c 07D0 beq .L814 4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12949 .loc 1 4481 5 is_stmt 1 view .LVU4503 4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12950 .loc 1 4481 9 is_stmt 0 view .LVU4504 12951 002e 426C ldr r2, [r0, #68] 4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12952 .loc 1 4481 21 view .LVU4505 12953 0030 42F00802 orr r2, r2, #8 12954 0034 4264 str r2, [r0, #68] 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12955 .loc 1 4484 5 is_stmt 1 view .LVU4506 12956 0036 0268 ldr r2, [r0] 12957 0038 4FF48064 mov r4, #1024 12958 003c D461 str r4, [r2, #28] 12959 .L814: 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12960 .loc 1 4488 3 view .LVU4507 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12961 .loc 1 4488 6 is_stmt 0 view .LVU4508 12962 003e 13F4007F tst r3, #512 12963 0042 0AD0 beq .L815 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12964 .loc 1 4488 57 discriminator 1 view .LVU4509 12965 0044 11F0800F tst r1, #128 12966 0048 07D0 beq .L815 4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12967 .loc 1 4491 5 is_stmt 1 view .LVU4510 ARM GAS /tmp/ccbUHtu7.s page 424 4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12968 .loc 1 4491 9 is_stmt 0 view .LVU4511 12969 004a 436C ldr r3, [r0, #68] 12970 .LVL931: 4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12971 .loc 1 4491 21 view .LVU4512 12972 004c 43F00203 orr r3, r3, #2 12973 0050 4364 str r3, [r0, #68] 4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12974 .loc 1 4494 5 is_stmt 1 view .LVU4513 12975 0052 0368 ldr r3, [r0] 12976 0054 4FF40072 mov r2, #512 12977 0058 DA61 str r2, [r3, #28] 12978 .L815: 4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12979 .loc 1 4498 3 view .LVU4514 4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12980 .loc 1 4498 12 is_stmt 0 view .LVU4515 12981 005a 416C ldr r1, [r0, #68] 12982 .LVL932: 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12983 .loc 1 4501 3 is_stmt 1 view .LVU4516 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12984 .loc 1 4501 6 is_stmt 0 view .LVU4517 12985 005c 11F00B0F tst r1, #11 12986 0060 00D1 bne .L818 12987 .LVL933: 12988 .L812: 4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12989 .loc 1 4505 1 view .LVU4518 12990 0062 10BD pop {r4, pc} 12991 .LVL934: 12992 .L818: 4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12993 .loc 1 4503 5 is_stmt 1 view .LVU4519 12994 0064 FFF7FEFF bl I2C_ITError 12995 .LVL935: 4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12996 .loc 1 4505 1 is_stmt 0 view .LVU4520 12997 0068 FBE7 b .L812 12998 .cfi_endproc 12999 .LFE364: 13001 .section .text.I2C_DMAAbort,"ax",%progbits 13002 .align 1 13003 .syntax unified 13004 .thumb 13005 .thumb_func 13007 I2C_DMAAbort: 13008 .LVL936: 13009 .LFB398: 6340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13010 .loc 1 6340 1 is_stmt 1 view -0 13011 .cfi_startproc 13012 @ args = 0, pretend = 0, frame = 0 13013 @ frame_needed = 0, uses_anonymous_args = 0 6340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13014 .loc 1 6340 1 is_stmt 0 view .LVU4522 ARM GAS /tmp/ccbUHtu7.s page 425 13015 0000 08B5 push {r3, lr} 13016 .LCFI141: 13017 .cfi_def_cfa_offset 8 13018 .cfi_offset 3, -8 13019 .cfi_offset 14, -4 6342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13020 .loc 1 6342 3 is_stmt 1 view .LVU4523 6342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13021 .loc 1 6342 22 is_stmt 0 view .LVU4524 13022 0002 806A ldr r0, [r0, #40] 13023 .LVL937: 6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13024 .loc 1 6345 3 is_stmt 1 view .LVU4525 6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13025 .loc 1 6345 11 is_stmt 0 view .LVU4526 13026 0004 836B ldr r3, [r0, #56] 6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13027 .loc 1 6345 6 view .LVU4527 13028 0006 0BB1 cbz r3, .L820 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13029 .loc 1 6347 5 is_stmt 1 view .LVU4528 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13030 .loc 1 6347 37 is_stmt 0 view .LVU4529 13031 0008 0022 movs r2, #0 13032 000a 9A63 str r2, [r3, #56] 13033 .L820: 6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13034 .loc 1 6349 3 is_stmt 1 view .LVU4530 6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13035 .loc 1 6349 11 is_stmt 0 view .LVU4531 13036 000c C36B ldr r3, [r0, #60] 6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13037 .loc 1 6349 6 view .LVU4532 13038 000e 0BB1 cbz r3, .L821 6351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13039 .loc 1 6351 5 is_stmt 1 view .LVU4533 6351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13040 .loc 1 6351 37 is_stmt 0 view .LVU4534 13041 0010 0022 movs r2, #0 13042 0012 9A63 str r2, [r3, #56] 13043 .L821: 6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13044 .loc 1 6354 3 is_stmt 1 view .LVU4535 13045 0014 FFF7FEFF bl I2C_TreatErrorCallback 13046 .LVL938: 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13047 .loc 1 6355 1 is_stmt 0 view .LVU4536 13048 0018 08BD pop {r3, pc} 13049 .cfi_endproc 13050 .LFE398: 13052 .section .text.HAL_I2C_GetState,"ax",%progbits 13053 .align 1 13054 .global HAL_I2C_GetState 13055 .syntax unified 13056 .thumb 13057 .thumb_func 13059 HAL_I2C_GetState: ARM GAS /tmp/ccbUHtu7.s page 426 13060 .LVL939: 13061 .LFB375: 4696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return I2C handle state */ 13062 .loc 1 4696 1 is_stmt 1 view -0 13063 .cfi_startproc 13064 @ args = 0, pretend = 0, frame = 0 13065 @ frame_needed = 0, uses_anonymous_args = 0 13066 @ link register save eliminated. 4698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13067 .loc 1 4698 3 view .LVU4538 4698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13068 .loc 1 4698 14 is_stmt 0 view .LVU4539 13069 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 13070 .LVL940: 4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13071 .loc 1 4699 1 view .LVU4540 13072 0004 7047 bx lr 13073 .cfi_endproc 13074 .LFE375: 13076 .section .text.HAL_I2C_GetMode,"ax",%progbits 13077 .align 1 13078 .global HAL_I2C_GetMode 13079 .syntax unified 13080 .thumb 13081 .thumb_func 13083 HAL_I2C_GetMode: 13084 .LVL941: 13085 .LFB376: 4708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->Mode; 13086 .loc 1 4708 1 is_stmt 1 view -0 13087 .cfi_startproc 13088 @ args = 0, pretend = 0, frame = 0 13089 @ frame_needed = 0, uses_anonymous_args = 0 13090 @ link register save eliminated. 4709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13091 .loc 1 4709 3 view .LVU4542 4709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13092 .loc 1 4709 14 is_stmt 0 view .LVU4543 13093 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 13094 .LVL942: 4710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13095 .loc 1 4710 1 view .LVU4544 13096 0004 7047 bx lr 13097 .cfi_endproc 13098 .LFE376: 13100 .section .text.HAL_I2C_GetError,"ax",%progbits 13101 .align 1 13102 .global HAL_I2C_GetError 13103 .syntax unified 13104 .thumb 13105 .thumb_func 13107 HAL_I2C_GetError: 13108 .LVL943: 13109 .LFB377: 4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->ErrorCode; 13110 .loc 1 4719 1 is_stmt 1 view -0 13111 .cfi_startproc ARM GAS /tmp/ccbUHtu7.s page 427 13112 @ args = 0, pretend = 0, frame = 0 13113 @ frame_needed = 0, uses_anonymous_args = 0 13114 @ link register save eliminated. 4720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13115 .loc 1 4720 3 view .LVU4546 4720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13116 .loc 1 4720 14 is_stmt 0 view .LVU4547 13117 0000 406C ldr r0, [r0, #68] 13118 .LVL944: 4721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13119 .loc 1 4721 1 view .LVU4548 13120 0002 7047 bx lr 13121 .cfi_endproc 13122 .LFE377: 13124 .text 13125 .Letext0: 13126 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h" 13127 .file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 13128 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" 13129 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" 13130 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" 13131 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" 13132 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" ARM GAS /tmp/ccbUHtu7.s page 428 DEFINED SYMBOLS *ABS*:00000000 stm32g4xx_hal_i2c.c /tmp/ccbUHtu7.s:21 .text.I2C_Flush_TXDR:00000000 $t /tmp/ccbUHtu7.s:26 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR /tmp/ccbUHtu7.s:64 .text.I2C_TransferConfig:00000000 $t /tmp/ccbUHtu7.s:69 .text.I2C_TransferConfig:00000000 I2C_TransferConfig /tmp/ccbUHtu7.s:127 .text.I2C_Enable_IRQ:00000000 $t /tmp/ccbUHtu7.s:132 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ /tmp/ccbUHtu7.s:255 .text.I2C_Enable_IRQ:0000006c $d /tmp/ccbUHtu7.s:12326 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA /tmp/ccbUHtu7.s:12045 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA /tmp/ccbUHtu7.s:261 .text.I2C_Disable_IRQ:00000000 $t /tmp/ccbUHtu7.s:266 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ /tmp/ccbUHtu7.s:390 .text.I2C_ConvertOtherXferOptions:00000000 $t /tmp/ccbUHtu7.s:395 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions /tmp/ccbUHtu7.s:436 .text.I2C_IsErrorOccurred:00000000 $t /tmp/ccbUHtu7.s:441 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred /tmp/ccbUHtu7.s:734 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t /tmp/ccbUHtu7.s:739 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccbUHtu7.s:830 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t /tmp/ccbUHtu7.s:835 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout /tmp/ccbUHtu7.s:921 .text.I2C_RequestMemoryWrite:00000000 $t /tmp/ccbUHtu7.s:926 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite /tmp/ccbUHtu7.s:1045 .text.I2C_RequestMemoryWrite:00000078 $d /tmp/ccbUHtu7.s:1050 .text.I2C_RequestMemoryRead:00000000 $t /tmp/ccbUHtu7.s:1055 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead /tmp/ccbUHtu7.s:1174 .text.I2C_RequestMemoryRead:00000074 $d /tmp/ccbUHtu7.s:1179 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t /tmp/ccbUHtu7.s:1184 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccbUHtu7.s:1271 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t /tmp/ccbUHtu7.s:1276 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccbUHtu7.s:1430 .text.HAL_I2C_MspInit:00000000 $t /tmp/ccbUHtu7.s:1436 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit /tmp/ccbUHtu7.s:1451 .text.HAL_I2C_Init:00000000 $t /tmp/ccbUHtu7.s:1457 .text.HAL_I2C_Init:00000000 HAL_I2C_Init /tmp/ccbUHtu7.s:1649 .text.HAL_I2C_MspDeInit:00000000 $t /tmp/ccbUHtu7.s:1655 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit /tmp/ccbUHtu7.s:1670 .text.HAL_I2C_DeInit:00000000 $t /tmp/ccbUHtu7.s:1676 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit /tmp/ccbUHtu7.s:1741 .text.HAL_I2C_Master_Transmit:00000000 $t /tmp/ccbUHtu7.s:1747 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit /tmp/ccbUHtu7.s:2057 .text.HAL_I2C_Master_Transmit:00000178 $d /tmp/ccbUHtu7.s:2062 .text.HAL_I2C_Master_Receive:00000000 $t /tmp/ccbUHtu7.s:2068 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive /tmp/ccbUHtu7.s:2377 .text.HAL_I2C_Master_Receive:00000178 $d /tmp/ccbUHtu7.s:2382 .text.HAL_I2C_Slave_Transmit:00000000 $t /tmp/ccbUHtu7.s:2388 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit /tmp/ccbUHtu7.s:2766 .text.HAL_I2C_Slave_Receive:00000000 $t /tmp/ccbUHtu7.s:2772 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive /tmp/ccbUHtu7.s:3120 .text.HAL_I2C_Master_Transmit_IT:00000000 $t /tmp/ccbUHtu7.s:3126 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT /tmp/ccbUHtu7.s:3279 .text.HAL_I2C_Master_Transmit_IT:0000008c $d /tmp/ccbUHtu7.s:11665 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT /tmp/ccbUHtu7.s:3286 .text.HAL_I2C_Master_Receive_IT:00000000 $t /tmp/ccbUHtu7.s:3292 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT /tmp/ccbUHtu7.s:3445 .text.HAL_I2C_Master_Receive_IT:0000008c $d /tmp/ccbUHtu7.s:3452 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t ARM GAS /tmp/ccbUHtu7.s page 429 /tmp/ccbUHtu7.s:3458 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT /tmp/ccbUHtu7.s:3561 .text.HAL_I2C_Slave_Transmit_IT:0000005c $d /tmp/ccbUHtu7.s:11092 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT /tmp/ccbUHtu7.s:3567 .text.HAL_I2C_Slave_Receive_IT:00000000 $t /tmp/ccbUHtu7.s:3573 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT /tmp/ccbUHtu7.s:3676 .text.HAL_I2C_Slave_Receive_IT:0000005c $d /tmp/ccbUHtu7.s:3682 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t /tmp/ccbUHtu7.s:3688 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA /tmp/ccbUHtu7.s:3990 .text.HAL_I2C_Master_Transmit_DMA:0000013c $d /tmp/ccbUHtu7.s:12684 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt /tmp/ccbUHtu7.s:12644 .text.I2C_DMAError:00000000 I2C_DMAError /tmp/ccbUHtu7.s:4000 .text.HAL_I2C_Master_Receive_DMA:00000000 $t /tmp/ccbUHtu7.s:4006 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA /tmp/ccbUHtu7.s:4308 .text.HAL_I2C_Master_Receive_DMA:00000138 $d /tmp/ccbUHtu7.s:12792 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt /tmp/ccbUHtu7.s:4318 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t /tmp/ccbUHtu7.s:4324 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccbUHtu7.s:4545 .text.HAL_I2C_Slave_Transmit_DMA:000000e0 $d /tmp/ccbUHtu7.s:9921 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt /tmp/ccbUHtu7.s:4553 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t /tmp/ccbUHtu7.s:4559 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA /tmp/ccbUHtu7.s:4782 .text.HAL_I2C_Slave_Receive_DMA:000000e4 $d /tmp/ccbUHtu7.s:9973 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt /tmp/ccbUHtu7.s:4790 .text.HAL_I2C_Mem_Write:00000000 $t /tmp/ccbUHtu7.s:4796 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write /tmp/ccbUHtu7.s:5154 .text.HAL_I2C_Mem_Read:00000000 $t /tmp/ccbUHtu7.s:5160 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read /tmp/ccbUHtu7.s:5518 .text.HAL_I2C_Mem_Read:000001ac $d /tmp/ccbUHtu7.s:5523 .text.HAL_I2C_Mem_Write_IT:00000000 $t /tmp/ccbUHtu7.s:5529 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT /tmp/ccbUHtu7.s:5738 .text.HAL_I2C_Mem_Write_IT:000000dc $d /tmp/ccbUHtu7.s:5744 .text.HAL_I2C_Mem_Read_IT:00000000 $t /tmp/ccbUHtu7.s:5750 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT /tmp/ccbUHtu7.s:5960 .text.HAL_I2C_Mem_Read_IT:000000dc $d /tmp/ccbUHtu7.s:5967 .text.HAL_I2C_Mem_Write_DMA:00000000 $t /tmp/ccbUHtu7.s:5973 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA /tmp/ccbUHtu7.s:6291 .text.HAL_I2C_Mem_Write_DMA:0000015c $d /tmp/ccbUHtu7.s:6299 .text.HAL_I2C_Mem_Read_DMA:00000000 $t /tmp/ccbUHtu7.s:6305 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA /tmp/ccbUHtu7.s:6624 .text.HAL_I2C_Mem_Read_DMA:0000015c $d /tmp/ccbUHtu7.s:6633 .text.HAL_I2C_IsDeviceReady:00000000 $t /tmp/ccbUHtu7.s:6639 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady /tmp/ccbUHtu7.s:6972 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t /tmp/ccbUHtu7.s:6978 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccbUHtu7.s:7169 .text.HAL_I2C_Master_Seq_Transmit_IT:000000ac $d /tmp/ccbUHtu7.s:7175 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t /tmp/ccbUHtu7.s:7181 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/ccbUHtu7.s:7514 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000160 $d /tmp/ccbUHtu7.s:7523 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t /tmp/ccbUHtu7.s:7529 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccbUHtu7.s:7720 .text.HAL_I2C_Master_Seq_Receive_IT:000000ac $d /tmp/ccbUHtu7.s:7726 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t /tmp/ccbUHtu7.s:7732 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA /tmp/ccbUHtu7.s:8065 .text.HAL_I2C_Master_Seq_Receive_DMA:00000160 $d /tmp/ccbUHtu7.s:8074 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t /tmp/ccbUHtu7.s:8080 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccbUHtu7.s:8281 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d0 $d ARM GAS /tmp/ccbUHtu7.s page 430 /tmp/ccbUHtu7.s:13007 .text.I2C_DMAAbort:00000000 I2C_DMAAbort /tmp/ccbUHtu7.s:8287 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t /tmp/ccbUHtu7.s:8293 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccbUHtu7.s:8672 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000194 $d /tmp/ccbUHtu7.s:8680 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t /tmp/ccbUHtu7.s:8686 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccbUHtu7.s:8887 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d0 $d /tmp/ccbUHtu7.s:8893 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t /tmp/ccbUHtu7.s:8899 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccbUHtu7.s:9275 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000190 $d /tmp/ccbUHtu7.s:9283 .text.HAL_I2C_EnableListen_IT:00000000 $t /tmp/ccbUHtu7.s:9289 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT /tmp/ccbUHtu7.s:9336 .text.HAL_I2C_EnableListen_IT:00000028 $d /tmp/ccbUHtu7.s:9341 .text.HAL_I2C_DisableListen_IT:00000000 $t /tmp/ccbUHtu7.s:9347 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT /tmp/ccbUHtu7.s:9413 .text.HAL_I2C_Master_Abort_IT:00000000 $t /tmp/ccbUHtu7.s:9419 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT /tmp/ccbUHtu7.s:9560 .text.HAL_I2C_Master_Abort_IT:00000080 $d /tmp/ccbUHtu7.s:9565 .text.HAL_I2C_EV_IRQHandler:00000000 $t /tmp/ccbUHtu7.s:9571 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler /tmp/ccbUHtu7.s:9609 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t /tmp/ccbUHtu7.s:9615 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback /tmp/ccbUHtu7.s:9630 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t /tmp/ccbUHtu7.s:9636 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback /tmp/ccbUHtu7.s:9651 .text.I2C_ITMasterSeqCplt:00000000 $t /tmp/ccbUHtu7.s:9656 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt /tmp/ccbUHtu7.s:9741 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t /tmp/ccbUHtu7.s:9747 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccbUHtu7.s:9762 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t /tmp/ccbUHtu7.s:9768 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccbUHtu7.s:9783 .text.I2C_ITSlaveSeqCplt:00000000 $t /tmp/ccbUHtu7.s:9788 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt /tmp/ccbUHtu7.s:9916 .text.I2C_DMASlaveTransmitCplt:00000000 $t /tmp/ccbUHtu7.s:9968 .text.I2C_DMASlaveReceiveCplt:00000000 $t /tmp/ccbUHtu7.s:10029 .text.HAL_I2C_AddrCallback:00000000 $t /tmp/ccbUHtu7.s:10035 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback /tmp/ccbUHtu7.s:10052 .text.I2C_ITAddrCplt:00000000 $t /tmp/ccbUHtu7.s:10057 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt /tmp/ccbUHtu7.s:10217 .text.HAL_I2C_ListenCpltCallback:00000000 $t /tmp/ccbUHtu7.s:10223 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback /tmp/ccbUHtu7.s:10238 .text.I2C_ITListenCplt:00000000 $t /tmp/ccbUHtu7.s:10243 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt /tmp/ccbUHtu7.s:10347 .text.I2C_ITListenCplt:00000064 $d /tmp/ccbUHtu7.s:10352 .text.HAL_I2C_MemTxCpltCallback:00000000 $t /tmp/ccbUHtu7.s:10358 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback /tmp/ccbUHtu7.s:10373 .text.HAL_I2C_MemRxCpltCallback:00000000 $t /tmp/ccbUHtu7.s:10379 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback /tmp/ccbUHtu7.s:10394 .text.HAL_I2C_ErrorCallback:00000000 $t /tmp/ccbUHtu7.s:10400 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback /tmp/ccbUHtu7.s:10415 .text.HAL_I2C_AbortCpltCallback:00000000 $t /tmp/ccbUHtu7.s:10421 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback /tmp/ccbUHtu7.s:10436 .text.I2C_TreatErrorCallback:00000000 $t /tmp/ccbUHtu7.s:10441 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback /tmp/ccbUHtu7.s:10498 .text.I2C_ITError:00000000 $t /tmp/ccbUHtu7.s:10503 .text.I2C_ITError:00000000 I2C_ITError /tmp/ccbUHtu7.s:10750 .text.I2C_ITError:000000fc $d /tmp/ccbUHtu7.s:10757 .text.I2C_ITSlaveCplt:00000000 $t ARM GAS /tmp/ccbUHtu7.s page 431 /tmp/ccbUHtu7.s:10762 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt /tmp/ccbUHtu7.s:11082 .text.I2C_ITSlaveCplt:00000164 $d /tmp/ccbUHtu7.s:11087 .text.I2C_Slave_ISR_IT:00000000 $t /tmp/ccbUHtu7.s:11383 .text.I2C_ITMasterCplt:00000000 $t /tmp/ccbUHtu7.s:11388 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt /tmp/ccbUHtu7.s:11660 .text.I2C_Master_ISR_IT:00000000 $t /tmp/ccbUHtu7.s:12040 .text.I2C_Slave_ISR_DMA:00000000 $t /tmp/ccbUHtu7.s:12182 .text.I2C_Slave_ISR_DMA:0000008e $d /tmp/ccbUHtu7.s:12193 .text.I2C_Slave_ISR_DMA:00000098 $t /tmp/ccbUHtu7.s:12321 .text.I2C_Master_ISR_DMA:00000000 $t /tmp/ccbUHtu7.s:12639 .text.I2C_DMAError:00000000 $t /tmp/ccbUHtu7.s:12679 .text.I2C_DMAMasterTransmitCplt:00000000 $t /tmp/ccbUHtu7.s:12787 .text.I2C_DMAMasterReceiveCplt:00000000 $t /tmp/ccbUHtu7.s:12895 .text.HAL_I2C_ER_IRQHandler:00000000 $t /tmp/ccbUHtu7.s:12901 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler /tmp/ccbUHtu7.s:13002 .text.I2C_DMAAbort:00000000 $t /tmp/ccbUHtu7.s:13053 .text.HAL_I2C_GetState:00000000 $t /tmp/ccbUHtu7.s:13059 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState /tmp/ccbUHtu7.s:13077 .text.HAL_I2C_GetMode:00000000 $t /tmp/ccbUHtu7.s:13083 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode /tmp/ccbUHtu7.s:13101 .text.HAL_I2C_GetError:00000000 $t /tmp/ccbUHtu7.s:13107 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState