ARM GAS /tmp/ccDmmuIk.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 .LFB394: 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/ccDmmuIk.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/ccDmmuIk.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 or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab 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/ccDmmuIk.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 or memory IT or DMA I2C process communication with Interrupt using HAL_I2 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/ccDmmuIk.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 or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab 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/ccDmmuIk.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/ccDmmuIk.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/ccDmmuIk.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 macros ------------------------------------------------------------*/ 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */ 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 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 variables ---------------------------------------------------------*/ 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); ARM GAS /tmp/ccDmmuIk.s page 9 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources); 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart); 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to treat different error callback */ 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to flush TXDR register */ 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Request); 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Private function to Convert Specific options */ 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); ARM GAS /tmp/ccDmmuIk.s page 10 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Initialization and Configuration functions 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 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_Init() to configure the selected device with 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the selected configuration: 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Clock Timing 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 1 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Dual Addressing mode 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 2 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Own Address 2 Mask 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) General call mode 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Nostretch mode 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** of the selected I2Cx peripheral. 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c == NULL) 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ ARM GAS /tmp/ccDmmuIk.s page 11 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the I2C Callback settings */ 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); ARM GAS /tmp/ccDmmuIk.s page 12 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear the I2C ADD10 bit */ 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c == NULL) 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 13 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Release Lock */ 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 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 Initialize 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_MspInit(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_MspInit 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 **** /** 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/ccDmmuIk.s page 14 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Register a User I2C Callback 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * To be used instead of the weak predefined callback 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (pCallback == NULL) 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = 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_MASTER_RX_COMPLETE_CB_ID : 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = 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_SLAVE_TX_COMPLETE_CB_ID : ARM GAS /tmp/ccDmmuIk.s page 15 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = 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_SLAVE_RX_COMPLETE_CB_ID : 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = 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_LISTEN_COMPLETE_CB_ID : 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = 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_MEM_TX_COMPLETE_CB_ID : 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = 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_MEM_RX_COMPLETE_CB_ID : 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = 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 **** case HAL_I2C_ERROR_CB_ID : 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 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 **** case HAL_I2C_MSPINIT_CB_ID : 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : ARM GAS /tmp/ccDmmuIk.s page 16 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Unregister an I2C Callback 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb ARM GAS /tmp/ccDmmuIk.s page 17 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 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 **** } 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** switch (CallbackID) 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit ARM GAS /tmp/ccDmmuIk.s page 18 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** default : 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (pCallback == NULL) 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; ARM GAS /tmp/ccDmmuIk.s page 19 1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal 1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update the error code */ 1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return error status */ 1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 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 **** */ 1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Data transfers functions 1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim 1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### IO operation functions ##### 1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transfers. 1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) There are two modes of transfer: 1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The status of all data processing is returned by the same function 1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** after finishing transfer. 1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** The end of the data processing will be indicated through the 1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** using DMA mode. 1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) Blocking mode functions are : ARM GAS /tmp/ccDmmuIk.s page 20 1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() 1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim 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 **** 1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/ccDmmuIk.s page 21 1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 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 **** xfermode = I2C_AUTOEND_MODE; 1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX register */ 1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ ARM GAS /tmp/ccDmmuIk.s page 22 1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 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 **** while (hi2c->XferCount > 0U) 1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 23 1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 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 **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccDmmuIk.s page 24 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 25 1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t tmpXferCount; 1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef error; 1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; ARM GAS /tmp/ccDmmuIk.s page 26 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX register */ 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 27 1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 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 **** /* Wait until AF flag is set */ 1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart); 1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (error != HAL_OK) 1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check that I2C transfer finished */ 1494: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 */ 1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean XferCount == 0 */ 1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount; 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset ErrorCode to NONE */ 1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 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 **** } 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ ARM GAS /tmp/ccDmmuIk.s page 28 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear AF flag */ 1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP flag */ 1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) 1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 29 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ ARM GAS /tmp/ccDmmuIk.s page 30 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 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 **** /* Read data from RXDR */ 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP flag */ 1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 31 1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) 1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX register */ 1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; ARM GAS /tmp/ccDmmuIk.s page 32 1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) 1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccDmmuIk.s page 33 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1854: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) ARM GAS /tmp/ccDmmuIk.s page 34 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX register */ 1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt ARM GAS /tmp/ccDmmuIk.s page 35 1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1918: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) 1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/ccDmmuIk.s page 36 1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX register */ 2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 37 2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), 2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 38 2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE, 2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 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 **** 2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size) 2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) ARM GAS /tmp/ccDmmuIk.s page 39 2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 40 2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current ARM GAS /tmp/ccDmmuIk.s page 41 2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2278: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 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX register */ 2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ ARM GAS /tmp/ccDmmuIk.s page 42 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, 2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 43 2368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2414: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) 2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 44 2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ ARM GAS /tmp/ccDmmuIk.s page 45 2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 2521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 46 2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do 2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 2592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 47 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/ccDmmuIk.s page 48 2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 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_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 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 **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, ARM GAS /tmp/ccDmmuIk.s page 49 2710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do 2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ ARM GAS /tmp/ccDmmuIk.s page 50 2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2786: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 2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2797: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 2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ ARM GAS /tmp/ccDmmuIk.s page 51 2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = 0U; 2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prefetch Memory Address */ 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Memaddress content */ 2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W 2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 2874: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 2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address ARM GAS /tmp/ccDmmuIk.s page 52 2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2885: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 2886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prefetch Memory Address */ 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Memaddress content */ 2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_ ARM GAS /tmp/ccDmmuIk.s page 53 2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 2945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 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 **** /** 2961: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 2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 2972: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 2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); ARM GAS /tmp/ccDmmuIk.s page 54 2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prefetch Memory Address */ 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Memaddress content */ 3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else ARM GAS /tmp/ccDmmuIk.s page 55 3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START 3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3107: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. 3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccDmmuIk.s page 56 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 3113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be read 3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3118: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 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 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 **** /* Prepare transfer parameters */ 3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prefetch Memory Address */ ARM GAS /tmp/ccDmmuIk.s page 57 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Memaddress content */ 3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 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 **** if (hi2c->hdmarx != NULL) 3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR 3216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ ARM GAS /tmp/ccDmmuIk.s page 58 3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 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 **** * @brief Checks if target device is ready for communication. 3254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This function is used with Memory devices 3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Trials Number of trials 3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout) 3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp1; 3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp2; 3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 59 3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do 3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Start */ 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 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 **** /* Check if the NACKF flag has not been set */ 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Device is ready */ 3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccDmmuIk.s page 60 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Trials */ 3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Trials++; 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); 3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3378: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 3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; ARM GAS /tmp/ccDmmuIk.s page 61 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX register */ 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ 3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 62 3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 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 **** /* Note : The I2C interrupts must be enabled after unlocking current process 3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 3479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3492: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. 3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; ARM GAS /tmp/ccDmmuIk.s page 63 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Preload TX register */ 3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 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_TX) && \ 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/ccDmmuIk.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 **** if (hi2c->XferSize > 0U) 3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ ARM GAS /tmp/ccDmmuIk.s page 65 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 3657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 66 3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 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 **** return HAL_BUSY; 3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3689: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 3690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 67 3736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ 3738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 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 **** 3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3776: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 3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; ARM GAS /tmp/ccDmmuIk.s page 68 3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** do not generate Restart Condition */ 3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; ARM GAS /tmp/ccDmmuIk.s page 69 3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 3861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccDmmuIk.s page 70 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Slave Address */ 3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* possible to enable all of these */ 3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 3938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 3940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 3944: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 3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 3948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 3949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 3952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 3953: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 3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp; 3958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3962: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) 3963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 71 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ 3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 72 4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4044: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 4045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 4049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 4050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4053: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 4054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) 4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp; 4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4063: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) 4064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 4076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ ARM GAS /tmp/ccDmmuIk.s page 73 4078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ 4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 74 4135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset XferSize */ 4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = 0; 4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; ARM GAS /tmp/ccDmmuIk.s page 75 4192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 4216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4228: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 4229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4237: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 4238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) 4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp; 4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4246: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) 4247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) ARM GAS /tmp/ccDmmuIk.s page 76 4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ 4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ ARM GAS /tmp/ccDmmuIk.s page 77 4306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 4316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4328: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 4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param pData Pointer to data buffer 4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Amount of data to be sent 4334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4337: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 4338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t XferOptions) 4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp; 4342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 4345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4347: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) 4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ ARM GAS /tmp/ccDmmuIk.s page 78 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable associated Interrupts */ 4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable Address Acknowledge */ ARM GAS /tmp/ccDmmuIk.s page 79 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare transfer parameters */ 4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the DMA error callback */ 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset XferSize */ 4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = 0; 4467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C state */ 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update I2C error code */ 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 80 4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 4500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 81 4534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C 4539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp; 4545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 4554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_BUSY; 4563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt. 4568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 4577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM)) 4579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 82 4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4603: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 4604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** process unlock */ 4612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 4615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 4617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong usage of abort function */ 4619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 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 **** 4624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 4626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 4630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */ 4639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); ARM GAS /tmp/ccDmmuIk.s page 83 4648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 4662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear BERR flag */ 4670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 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 **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear OVR flag */ 4680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ 4685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ARLO flag */ 4690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4697: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_ 4698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 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 **** 4703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. ARM GAS /tmp/ccDmmuIk.s page 84 4705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 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 **** /** @brief Slave Tx Transfer completed callback. 4736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, ARM GAS /tmp/ccDmmuIk.s page 85 4762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Slave Address Match callback. 4768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(TransferDirection); 4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Listen Complete callback. 4788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** ARM GAS /tmp/ccDmmuIk.s page 86 4819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 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 **** * @brief I2C error callback. 4836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C abort callback. 4852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 4855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(hi2c); 4860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 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 **** */ 4869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * 4873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @verbatim 4874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 4875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### ARM GAS /tmp/ccDmmuIk.s page 87 4876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** =============================================================================== 4877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** [..] 4878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** and the data flow. 4880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** @endverbatim 4882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 4883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Return the I2C handle state. 4887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL state 4890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c) 4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return I2C handle state */ 4894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->State; 4895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for I2C module 4901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL mode 4902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c) 4904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->Mode; 4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Return the I2C error code. 4910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval I2C Error Code 4913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c) 4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->ErrorCode; 4917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 4921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @} 4925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @{ 4929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 4932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. ARM GAS /tmp/ccDmmuIk.s page 88 4933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 4935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 4938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 4939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 4941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 4943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set corresponding Error Code */ 4955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 4960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 4973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \ 4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 4980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 4983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 4989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 89 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 4995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 5005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 5013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 90 5047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ 5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master complete process */ 5073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt. 5084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 5092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); ARM GAS /tmp/ccDmmuIk.s page 91 5104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set corresponding Error Code */ 5106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 5124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU) 5132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 5138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Memaddress content */ 5148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 5152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 5155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); ARM GAS /tmp/ccDmmuIk.s page 92 5161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 5183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 5184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master complete process */ 5216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 93 5218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 5227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 5235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if STOPF is set */ 5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 5248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5253: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 */ 5254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean XferCount == 0*/ 5255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 5266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ ARM GAS /tmp/ccDmmuIk.s page 94 5275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5285: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*/ 5286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 5309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 5315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 5316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 5322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 5325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 5330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 5331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if all Data have already been sent */ ARM GAS /tmp/ccDmmuIk.s page 95 5332: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 */ 5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write data to TXDR */ 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 5340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 5347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 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 **** /* Process Unlocked */ 5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 5375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 5378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set corresponding Error Code */ ARM GAS /tmp/ccDmmuIk.s page 96 5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC interrupt */ 5403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 5404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Recover Slave address */ 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else ARM GAS /tmp/ccDmmuIk.s page 97 5446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ 5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 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 5482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master complete process */ 5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; ARM GAS /tmp/ccDmmuIk.s page 98 5503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA. 5507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Locked */ 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set corresponding Error Code */ 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \ 5539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Memaddress content */ 5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable only Error interrupt */ 5554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) ARM GAS /tmp/ccDmmuIk.s page 99 5560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 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 **** /* Wrong size Status regarding TCR flag event */ 5588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */ 5599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccDmmuIk.s page 100 5617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update XferCount value */ 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable DMA Request */ 5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 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 **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Master complete process */ 5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t ITSources) 5663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process locked */ 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if STOPF is set */ 5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) ARM GAS /tmp/ccDmmuIk.s page 101 5674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5682: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 */ 5683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 5694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** treatdmanack = 1U; 5696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 5706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** treatdmanack = 1U; 5708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (treatdmanack == 1U) 5713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ ARM GAS /tmp/ccDmmuIk.s page 102 5731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5741: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*/ 5742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpstate = hi2c->State; 5750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 5764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 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 **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccDmmuIk.s page 103 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 5800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 5802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 5803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 5808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Memory Address */ 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 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 **** /* Wait until TCR flag is set */ 5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 104 5845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 5852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddress Internal memory address 5855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 5857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 5858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 5859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 5863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send Memory Address */ 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until TC flag is set */ 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 5901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 105 5902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 5906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 5908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 5909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; 5912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t slaveaddrcode; 5913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd1code; 5914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd2code; 5915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(ITFlags); 5918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5920: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) 5921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) 5931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount++; 5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset Address Event counter */ 5937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 5940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Slave Addr callback */ 5946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 5956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); ARM GAS /tmp/ccDmmuIk.s page 106 5959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Slave Addr callback */ 5964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 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 **** /* else 7 bits addressing mode is selected */ 5972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 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 Slave Addr callback */ 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->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 5984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 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 **** /* Else clear address flag only */ 5989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 5990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ADDR flag */ 5992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 6001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 6007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 6010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; ARM GAS /tmp/ccDmmuIk.s page 107 6016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 6018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 6036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 6038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 6054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 6058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ ARM GAS /tmp/ccDmmuIk.s page 108 6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 6081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 6083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 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 **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 6101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 6103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 6122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Master complete process. 6127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None ARM GAS /tmp/ccDmmuIk.s page 109 6130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 6134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t tmpreg; 6136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 6138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 6154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 6160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 6161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 6164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set acknowledge error code */ 6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Fetch Last receive data if any */ 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 6174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 6178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 6181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 6184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 6185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ ARM GAS /tmp/ccDmmuIk.s page 110 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 6188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 6208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 6210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 6243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else ARM GAS /tmp/ccDmmuIk.s page 111 6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 6245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 6265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Slave complete process. 6270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 6282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 6286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 6288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 6293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN) 6296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT); 6298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else ARM GAS /tmp/ccDmmuIk.s page 112 6301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Address Acknowledge */ 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 6312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); 6323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); 6333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Do nothing */ 6338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ 6341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 6342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 6344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 6345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 6351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 6356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 113 6358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 6361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 6367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 6368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check that I2C transfer finished */ 6370: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 */ 6371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Mean XferCount == 0*/ 6372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So clear Flag NACKF only */ 6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 6376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 6377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 6378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 6383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 6385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 6388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 6397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6402: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*/ 6403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 6404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 6410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 114 6415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 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 **** hi2c->XferISR = NULL; 6419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 6421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 6427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 6433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 6435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 115 6472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 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 **** 6484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Listen complete process. 6486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 6493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 6498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ 6500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) 6501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Read data from RXDR */ 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Increment Buffer pointer */ 6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr++; 6507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 6512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all Interrupts*/ 6519: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); 6520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACK Flag */ 6522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccDmmuIk.s page 116 6529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C interrupts error process. 6537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 6539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 6542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmppreviousstate; 6546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 6551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set new error code */ 6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 6554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Interrupts */ 6556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 6558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable all interrupts */ 6570: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); 6571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 6573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* This change will be do later */ 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) ARM GAS /tmp/ccDmmuIk.s page 117 6586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 6592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 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 **** /* Abort DMA TX transfer if any */ 6600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 6601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 6615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA TX */ 6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 6624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 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 **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : ARM GAS /tmp/ccDmmuIk.s page 118 6643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Abort DMA RX */ 6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 6651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 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 **** /** 6668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else 6686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #else ARM GAS /tmp/ccDmmuIk.s page 119 6700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 6708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 29 .loc 1 6711 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. 6712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 34 .loc 1 6714 3 view .LVU1 35 .loc 1 6714 7 is_stmt 0 view .LVU2 36 0000 0368 ldr r3, [r0] 37 0002 9A69 ldr r2, [r3, #24] 38 .loc 1 6714 6 view .LVU3 39 0004 12F0020F tst r2, #2 40 0008 01D0 beq .L2 6715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 41 .loc 1 6716 5 is_stmt 1 view .LVU4 42 .loc 1 6716 26 is_stmt 0 view .LVU5 43 000a 0022 movs r2, #0 44 000c 9A62 str r2, [r3, #40] 45 .L2: 6717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register if not empty */ 6720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 46 .loc 1 6720 3 is_stmt 1 view .LVU6 47 .loc 1 6720 7 is_stmt 0 view .LVU7 48 000e 0368 ldr r3, [r0] 49 0010 9A69 ldr r2, [r3, #24] 50 .loc 1 6720 6 view .LVU8 51 0012 12F0010F tst r2, #1 52 0016 03D1 bne .L1 6721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 53 .loc 1 6722 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: 6723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 58 .loc 1 6724 1 is_stmt 0 view .LVU10 59 0020 7047 bx lr 60 .cfi_endproc ARM GAS /tmp/ccDmmuIk.s page 120 61 .LFE394: 63 .section .text.I2C_TransferConfig,"ax",%progbits 64 .align 1 65 .syntax unified 66 .thumb 67 .thumb_func 69 I2C_TransferConfig: 70 .LVL1: 71 .LFB406: 6725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupt */ 6743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Buffer pointer */ 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 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 **** /* Enable the DMA channel */ 6762: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, 6763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ 6771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 121 6773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6800: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 */ 6801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupt */ 6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Buffer pointer */ 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; ARM GAS /tmp/ccDmmuIk.s page 122 6830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable the DMA channel */ 6842: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, 6843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ 6851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ 6869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable DMA Request */ 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 6878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6880: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 */ 6881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** ARM GAS /tmp/ccDmmuIk.s page 123 6887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle 6889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable Acknowledge */ 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hdma DMA handle. 6908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 6909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits 6931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * until a flag is no longer in the specified status. 6932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET). 6936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 6937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 6938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 6939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 6942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) ARM GAS /tmp/ccDmmuIk.s page 124 6944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ 6946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 6952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) 6957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 6970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 6973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 6974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 6976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 6977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 6978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 6979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 6980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 6982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 6984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ 6986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 6992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) 6997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccDmmuIk.s page 125 7001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 7003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 7006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 7011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 7014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 7015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 7017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 7018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 7019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 7020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 7021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 7023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ 7027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 7030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) 7036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 7042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 7045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_OK; 7049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 7052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 7053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 7055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 7056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 7057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/ccDmmuIk.s page 126 7058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 7059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Tickstart) 7061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK)) 7065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an error is detected */ 7067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 7070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if a STOPF is detected */ 7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK)) 7074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an RXNE is pending */ 7076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Store Last receive data if any */ 7077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 7078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return HAL_OK */ 7080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 7081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_OK; 7082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */ 7085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 7086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 7089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 7091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 7100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 7103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 7105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK)) 7112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) 7114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 127 7115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 7122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 7126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 7129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication. 7130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 7132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Timeout Timeout duration 7133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Tickstart Tick start value 7134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval HAL status 7135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 7136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti 7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 7141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 7142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp1; 7143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 7144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) 7146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear NACKF Flag */ 7148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */ 7151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) 7153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 7155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 7158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); 7160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 7161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */ 7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ 7164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 7165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 7166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Generate Stop */ 7168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 7169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Update Tick with new reference */ 7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tickstart = HAL_GetTick(); ARM GAS /tmp/ccDmmuIk.s page 128 7172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check for the Timeout */ 7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) 7178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT; 7180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 7182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** break; 7184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */ 7191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (status == HAL_OK) 7192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear STOP Flag */ 7194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF; 7198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 7200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Refresh Content of Status register */ 7203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** itflag = hi2c->Instance->ISR; 7204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Then verify if an additional errors occurs */ 7206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if a Bus error occurred */ 7207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) 7208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; 7210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear BERR flag */ 7212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 7213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 7215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */ 7218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) 7219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR; 7221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear OVR flag */ 7223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 7224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 7226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */ ARM GAS /tmp/ccDmmuIk.s page 129 7229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) 7230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO; 7232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear ARLO flag */ 7234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 7235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** status = HAL_ERROR; 7237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (status != HAL_OK) 7240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Flush TX register */ 7242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 7243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= error_code; 7248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Process Unlocked */ 7252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return status; 7256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 7259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 7260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 7261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 7262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 7263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 7264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 7265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 7266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 7267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 7268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 7269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 7270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * This parameter can be one of the following values: 7271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 7272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 7273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 7274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 7275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 7276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 7277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 7278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t Request) 7279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 72 .loc 1 7279 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 7279 1 is_stmt 0 view .LVU12 ARM GAS /tmp/ccDmmuIk.s page 130 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] 7280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 7281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 83 .loc 1 7281 3 is_stmt 1 view .LVU13 7282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 84 .loc 1 7282 3 view .LVU14 7283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 85 .loc 1 7283 3 view .LVU15 7284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 7286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 86 .loc 1 7286 3 view .LVU16 87 .loc 1 7286 52 is_stmt 0 view .LVU17 88 0004 C1F30901 ubfx r1, r1, #0, #10 89 .LVL2: 90 .loc 1 7286 68 view .LVU18 91 0008 41EA0241 orr r1, r1, r2, lsl #16 7287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 92 .loc 1 7287 88 view .LVU19 93 000c 1943 orrs r1, r1, r3 7286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 94 .loc 1 7286 19 view .LVU20 95 000e 2143 orrs r1, r1, r4 7286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 96 .loc 1 7286 12 view .LVU21 97 0010 21F00041 bic r1, r1, #-2147483648 98 .LVL3: 7288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); 7289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* update CR2 register */ 7291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \ 99 .loc 1 7291 3 is_stmt 1 view .LVU22 100 0014 0268 ldr r2, [r0] 101 .LVL4: 102 .loc 1 7291 3 is_stmt 0 view .LVU23 103 0016 5368 ldr r3, [r2, #4] 104 .LVL5: 105 .loc 1 7291 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] 7292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ 7293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 7294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp); 7295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 115 .loc 1 7295 1 view .LVU25 116 0036 5DF8044B ldr r4, [sp], #4 ARM GAS /tmp/ccDmmuIk.s page 131 117 .LCFI1: 118 .cfi_restore 4 119 .cfi_def_cfa_offset 0 120 .LVL6: 121 .loc 1 7295 1 view .LVU26 122 003a 7047 bx lr 123 .cfi_endproc 124 .LFE406: 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 .LFB407: 7296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 7298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 7299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 7301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 7303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 7304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 135 .loc 1 7305 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. 7306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpisr = 0U; 140 .loc 1 7306 3 view .LVU28 7307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \ 141 .loc 1 7308 3 view .LVU29 142 .loc 1 7308 12 is_stmt 0 view .LVU30 143 0000 436B ldr r3, [r0, #52] 144 .loc 1 7308 6 view .LVU31 145 0002 234A ldr r2, .L22 146 0004 9342 cmp r3, r2 147 0006 1FD0 beq .L7 148 .loc 1 7308 45 discriminator 1 view .LVU32 149 0008 224A ldr r2, .L22+4 150 000a 9342 cmp r3, r2 151 000c 1CD0 beq .L7 7309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \ 152 .loc 1 7309 44 view .LVU33 153 000e 224A ldr r2, .L22+8 154 0010 9342 cmp r3, r2 155 0012 19D0 beq .L7 7310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA)) 7311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 156 .loc 1 7312 5 is_stmt 1 view .LVU34 157 .loc 1 7312 8 is_stmt 0 view .LVU35 158 0014 11F4004F tst r1, #32768 ARM GAS /tmp/ccDmmuIk.s page 132 159 0018 0FD1 bne .L18 7306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 160 .loc 1 7306 12 view .LVU36 161 001a 0023 movs r3, #0 162 .L8: 163 .LVL8: 7313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 164 .loc 1 7318 5 is_stmt 1 view .LVU37 165 .loc 1 7318 8 is_stmt 0 view .LVU38 166 001c 11F0010F tst r1, #1 167 0020 01D0 beq .L9 7319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7321: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; 168 .loc 1 7321 7 is_stmt 1 view .LVU39 169 .loc 1 7321 14 is_stmt 0 view .LVU40 170 0022 43F0F203 orr r3, r3, #242 171 .LVL9: 172 .L9: 7322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 173 .loc 1 7324 5 is_stmt 1 view .LVU41 174 .loc 1 7324 8 is_stmt 0 view .LVU42 175 0026 11F0020F tst r1, #2 176 002a 08D0 beq .L10 7325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7327: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; 177 .loc 1 7327 7 is_stmt 1 view .LVU43 178 .loc 1 7327 14 is_stmt 0 view .LVU44 179 002c 43F0F403 orr r3, r3, #244 180 .LVL10: 7328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 181 .loc 1 7330 5 is_stmt 1 view .LVU45 182 .L11: 7331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 183 .loc 1 7336 5 view .LVU46 184 .loc 1 7336 8 is_stmt 0 view .LVU47 185 0030 2029 cmp r1, #32 186 0032 1BD1 bne .L12 7337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ 7339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 187 .loc 1 7339 7 is_stmt 1 view .LVU48 ARM GAS /tmp/ccDmmuIk.s page 133 188 .loc 1 7339 14 is_stmt 0 view .LVU49 189 0034 43F02003 orr r3, r3, #32 190 .LVL11: 191 .loc 1 7339 14 view .LVU50 192 0038 18E0 b .L12 193 .LVL12: 194 .L18: 7315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 195 .loc 1 7315 14 view .LVU51 196 003a B823 movs r3, #184 197 003c EEE7 b .L8 198 .LVL13: 199 .L10: 7330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 200 .loc 1 7330 5 is_stmt 1 view .LVU52 7330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 201 .loc 1 7330 8 is_stmt 0 view .LVU53 202 003e 1029 cmp r1, #16 203 0040 F6D1 bne .L11 7333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 204 .loc 1 7333 7 is_stmt 1 view .LVU54 7333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 205 .loc 1 7333 14 is_stmt 0 view .LVU55 206 0042 43F09003 orr r3, r3, #144 207 .LVL14: 7336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 208 .loc 1 7336 5 is_stmt 1 view .LVU56 209 0046 11E0 b .L12 210 .LVL15: 211 .L7: 7340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 7344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 212 .loc 1 7345 5 view .LVU57 213 .loc 1 7345 8 is_stmt 0 view .LVU58 214 0048 11F4004F tst r1, #32768 215 004c 13D1 bne .L19 7306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 216 .loc 1 7306 12 view .LVU59 217 004e 0023 movs r3, #0 218 .L13: 219 .LVL16: 7346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 220 .loc 1 7351 5 is_stmt 1 view .LVU60 221 .loc 1 7351 8 is_stmt 0 view .LVU61 222 0050 11F0010F tst r1, #1 223 0054 01D0 beq .L14 7352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ ARM GAS /tmp/ccDmmuIk.s page 134 7354: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; 224 .loc 1 7354 7 is_stmt 1 view .LVU62 225 .loc 1 7354 14 is_stmt 0 view .LVU63 226 0056 43F0F203 orr r3, r3, #242 227 .LVL17: 228 .L14: 7355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 229 .loc 1 7357 5 is_stmt 1 view .LVU64 230 .loc 1 7357 8 is_stmt 0 view .LVU65 231 005a 11F0020F tst r1, #2 232 005e 0CD0 beq .L15 7358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7360: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; 233 .loc 1 7360 7 is_stmt 1 view .LVU66 234 .loc 1 7360 14 is_stmt 0 view .LVU67 235 0060 43F0F403 orr r3, r3, #244 236 .LVL18: 7361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 237 .loc 1 7363 5 is_stmt 1 view .LVU68 238 .L16: 7364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 239 .loc 1 7369 5 view .LVU69 240 .loc 1 7369 8 is_stmt 0 view .LVU70 241 0064 2029 cmp r1, #32 242 0066 0DD0 beq .L20 243 .L17: 7370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ 7372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 7373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 244 .loc 1 7375 5 is_stmt 1 view .LVU71 245 .loc 1 7375 8 is_stmt 0 view .LVU72 246 0068 4029 cmp r1, #64 247 006a 0ED0 beq .L21 248 .LVL19: 249 .L12: 7376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ 7378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable interrupts only at the end */ 7383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 7384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* all interrupts requested done */ ARM GAS /tmp/ccDmmuIk.s page 135 7385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 250 .loc 1 7385 3 is_stmt 1 view .LVU73 251 006c 0168 ldr r1, [r0] 252 .LVL20: 253 .loc 1 7385 3 is_stmt 0 view .LVU74 254 006e 0A68 ldr r2, [r1] 255 0070 1343 orrs r3, r3, r2 256 .LVL21: 257 .loc 1 7385 3 view .LVU75 258 0072 0B60 str r3, [r1] 7386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 259 .loc 1 7386 1 view .LVU76 260 0074 7047 bx lr 261 .LVL22: 262 .L19: 7348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 263 .loc 1 7348 14 view .LVU77 264 0076 B823 movs r3, #184 265 0078 EAE7 b .L13 266 .LVL23: 267 .L15: 7363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 268 .loc 1 7363 5 is_stmt 1 view .LVU78 7363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 269 .loc 1 7363 8 is_stmt 0 view .LVU79 270 007a 1029 cmp r1, #16 271 007c F2D1 bne .L16 7366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 272 .loc 1 7366 7 is_stmt 1 view .LVU80 7366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 273 .loc 1 7366 14 is_stmt 0 view .LVU81 274 007e 43F09003 orr r3, r3, #144 275 .LVL24: 7369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 276 .loc 1 7369 5 is_stmt 1 view .LVU82 277 0082 F1E7 b .L17 278 .L20: 7372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 279 .loc 1 7372 7 view .LVU83 7372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 280 .loc 1 7372 14 is_stmt 0 view .LVU84 281 0084 43F06003 orr r3, r3, #96 282 .LVL25: 7375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 283 .loc 1 7375 5 is_stmt 1 view .LVU85 284 0088 F0E7 b .L12 285 .L21: 7378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 286 .loc 1 7378 7 view .LVU86 7378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 287 .loc 1 7378 14 is_stmt 0 view .LVU87 288 008a 43F04003 orr r3, r3, #64 289 .LVL26: 7378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 290 .loc 1 7378 14 view .LVU88 291 008e EDE7 b .L12 292 .L23: ARM GAS /tmp/ccDmmuIk.s page 136 293 .align 2 294 .L22: 295 0090 00000000 .word I2C_Master_ISR_DMA 296 0094 00000000 .word I2C_Slave_ISR_DMA 297 0098 00000000 .word I2C_Mem_ISR_DMA 298 .cfi_endproc 299 .LFE407: 301 .section .text.I2C_Disable_IRQ,"ax",%progbits 302 .align 1 303 .syntax unified 304 .thumb 305 .thumb_func 307 I2C_Disable_IRQ: 308 .LVL27: 309 .LFB408: 7387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 7389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 7390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * the configuration information for the specified I2C. 7392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 7394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 7395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 310 .loc 1 7396 1 is_stmt 1 view -0 311 .cfi_startproc 312 @ args = 0, pretend = 0, frame = 0 313 @ frame_needed = 0, uses_anonymous_args = 0 314 @ link register save eliminated. 7397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpisr = 0U; 315 .loc 1 7397 3 view .LVU90 7398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 316 .loc 1 7399 3 view .LVU91 317 .loc 1 7399 6 is_stmt 0 view .LVU92 318 0000 11F0010F tst r1, #1 319 0004 09D0 beq .L31 7400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 7402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 320 .loc 1 7402 5 is_stmt 1 view .LVU93 321 .LVL28: 7403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7404: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) 322 .loc 1 7404 5 view .LVU94 323 .loc 1 7404 24 is_stmt 0 view .LVU95 324 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 325 .loc 1 7404 8 view .LVU96 326 000a 03F02803 and r3, r3, #40 327 000e 282B cmp r3, #40 328 0010 01D0 beq .L34 7405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 329 .loc 1 7407 14 view .LVU97 330 0012 F223 movs r3, #242 ARM GAS /tmp/ccDmmuIk.s page 137 331 0014 02E0 b .L25 332 .L34: 7402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 333 .loc 1 7402 12 view .LVU98 334 0016 4223 movs r3, #66 335 0018 00E0 b .L25 336 .LVL29: 337 .L31: 7397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 338 .loc 1 7397 12 view .LVU99 339 001a 0023 movs r3, #0 340 .LVL30: 341 .L25: 7408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 342 .loc 1 7411 3 is_stmt 1 view .LVU100 343 .loc 1 7411 6 is_stmt 0 view .LVU101 344 001c 11F0020F tst r1, #2 345 0020 09D0 beq .L26 7412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 7414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 346 .loc 1 7414 5 is_stmt 1 view .LVU102 347 .loc 1 7414 12 is_stmt 0 view .LVU103 348 0022 43F0440C orr ip, r3, #68 349 .LVL31: 7415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7416: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) 350 .loc 1 7416 5 is_stmt 1 view .LVU104 351 .loc 1 7416 24 is_stmt 0 view .LVU105 352 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 353 .loc 1 7416 8 view .LVU106 354 002a 02F02802 and r2, r2, #40 355 002e 282A cmp r2, #40 356 0030 09D0 beq .L33 7417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 357 .loc 1 7419 7 is_stmt 1 view .LVU107 358 .loc 1 7419 14 is_stmt 0 view .LVU108 359 0032 43F0F403 orr r3, r3, #244 360 .LVL32: 361 .L26: 7420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 362 .loc 1 7423 3 is_stmt 1 view .LVU109 363 .loc 1 7423 6 is_stmt 0 view .LVU110 364 0036 11F4004F tst r1, #32768 365 003a 06D1 bne .L35 7424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 7426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 138 7428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 366 .loc 1 7429 3 is_stmt 1 view .LVU111 367 .loc 1 7429 6 is_stmt 0 view .LVU112 368 003c 1029 cmp r1, #16 369 003e 06D1 bne .L28 7430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 370 .loc 1 7432 5 is_stmt 1 view .LVU113 371 .loc 1 7432 12 is_stmt 0 view .LVU114 372 0040 43F09003 orr r3, r3, #144 373 .LVL33: 7433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 374 .loc 1 7435 3 is_stmt 1 view .LVU115 375 0044 05E0 b .L29 376 .LVL34: 377 .L33: 7414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 378 .loc 1 7414 12 is_stmt 0 view .LVU116 379 0046 6346 mov r3, ip 380 0048 F5E7 b .L26 381 .LVL35: 382 .L35: 7426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 383 .loc 1 7426 5 is_stmt 1 view .LVU117 7426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 384 .loc 1 7426 12 is_stmt 0 view .LVU118 385 004a 43F0B803 orr r3, r3, #184 386 .LVL36: 7429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 387 .loc 1 7429 3 is_stmt 1 view .LVU119 388 .L28: 389 .loc 1 7435 3 view .LVU120 390 .loc 1 7435 6 is_stmt 0 view .LVU121 391 004e 2029 cmp r1, #32 392 0050 07D0 beq .L36 393 .L29: 7436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable STOP interrupts */ 7438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 7439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 394 .loc 1 7441 3 is_stmt 1 view .LVU122 395 .loc 1 7441 6 is_stmt 0 view .LVU123 396 0052 4029 cmp r1, #64 397 0054 08D0 beq .L37 398 .LVL37: 399 .L30: 7442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Enable TC interrupts */ 7444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 139 7447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Disable interrupts only at the end */ 7448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 7449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* all disable interrupts request are not done */ 7450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 400 .loc 1 7450 3 is_stmt 1 view .LVU124 401 0056 0168 ldr r1, [r0] 402 .LVL38: 403 .loc 1 7450 3 is_stmt 0 view .LVU125 404 0058 0A68 ldr r2, [r1] 405 005a 22EA0303 bic r3, r2, r3 406 .LVL39: 407 .loc 1 7450 3 view .LVU126 408 005e 0B60 str r3, [r1] 7451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 409 .loc 1 7451 1 view .LVU127 410 0060 7047 bx lr 411 .LVL40: 412 .L36: 7438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 413 .loc 1 7438 5 is_stmt 1 view .LVU128 7438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 414 .loc 1 7438 12 is_stmt 0 view .LVU129 415 0062 43F02003 orr r3, r3, #32 416 .LVL41: 7441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 417 .loc 1 7441 3 is_stmt 1 view .LVU130 418 0066 F6E7 b .L30 419 .L37: 7444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 420 .loc 1 7444 5 view .LVU131 7444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 421 .loc 1 7444 12 is_stmt 0 view .LVU132 422 0068 43F04003 orr r3, r3, #64 423 .LVL42: 7444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 424 .loc 1 7444 12 view .LVU133 425 006c F3E7 b .L30 426 .cfi_endproc 427 .LFE408: 429 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 430 .align 1 431 .syntax unified 432 .thumb 433 .thumb_func 435 I2C_ConvertOtherXferOptions: 436 .LVL43: 437 .LFB409: 7452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 7454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 7455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @param hi2c I2C handle. 7456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** * @retval None 7457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** */ 7458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 7459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 438 .loc 1 7459 1 is_stmt 1 view -0 439 .cfi_startproc ARM GAS /tmp/ccDmmuIk.s page 140 440 @ args = 0, pretend = 0, frame = 0 441 @ frame_needed = 0, uses_anonymous_args = 0 442 @ link register save eliminated. 7460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 7461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 7463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 443 .loc 1 7463 3 view .LVU135 444 .loc 1 7463 11 is_stmt 0 view .LVU136 445 0000 C36A ldr r3, [r0, #44] 446 .loc 1 7463 6 view .LVU137 447 0002 AA2B cmp r3, #170 448 0004 04D0 beq .L41 7464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 7466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 7468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ 7470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 7471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 449 .loc 1 7471 8 is_stmt 1 view .LVU138 450 .loc 1 7471 16 is_stmt 0 view .LVU139 451 0006 C36A ldr r3, [r0, #44] 452 .loc 1 7471 11 view .LVU140 453 0008 B3F52A4F cmp r3, #43520 454 000c 03D0 beq .L42 455 .L38: 7472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 7474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** else 7476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Nothing to do */ 7478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 456 .loc 1 7479 1 view .LVU141 457 000e 7047 bx lr 458 .L41: 7465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 459 .loc 1 7465 5 is_stmt 1 view .LVU142 7465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 460 .loc 1 7465 23 is_stmt 0 view .LVU143 461 0010 0023 movs r3, #0 462 0012 C362 str r3, [r0, #44] 463 0014 7047 bx lr 464 .L42: 7473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 465 .loc 1 7473 5 is_stmt 1 view .LVU144 7473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 466 .loc 1 7473 23 is_stmt 0 view .LVU145 467 0016 4FF00073 mov r3, #33554432 468 001a C362 str r3, [r0, #44] 7478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 469 .loc 1 7478 3 is_stmt 1 view .LVU146 470 .loc 1 7479 1 is_stmt 0 view .LVU147 471 001c F7E7 b .L38 ARM GAS /tmp/ccDmmuIk.s page 141 472 .cfi_endproc 473 .LFE409: 475 .section .text.I2C_IsErrorOccurred,"ax",%progbits 476 .align 1 477 .syntax unified 478 .thumb 479 .thumb_func 481 I2C_IsErrorOccurred: 482 .LVL44: 483 .LFB405: 7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 484 .loc 1 7137 1 is_stmt 1 view -0 485 .cfi_startproc 486 @ args = 0, pretend = 0, frame = 0 487 @ frame_needed = 0, uses_anonymous_args = 0 7137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 488 .loc 1 7137 1 is_stmt 0 view .LVU149 489 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 490 .LCFI2: 491 .cfi_def_cfa_offset 24 492 .cfi_offset 4, -24 493 .cfi_offset 5, -20 494 .cfi_offset 6, -16 495 .cfi_offset 7, -12 496 .cfi_offset 8, -8 497 .cfi_offset 14, -4 498 0004 0446 mov r4, r0 7138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 499 .loc 1 7138 3 is_stmt 1 view .LVU150 500 .LVL45: 7139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 501 .loc 1 7139 3 view .LVU151 7139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 502 .loc 1 7139 27 is_stmt 0 view .LVU152 503 0006 0368 ldr r3, [r0] 7139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 504 .loc 1 7139 12 view .LVU153 505 0008 9E69 ldr r6, [r3, #24] 506 .LVL46: 7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 507 .loc 1 7140 3 is_stmt 1 view .LVU154 7141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp1; 508 .loc 1 7141 3 view .LVU155 7142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 509 .loc 1 7142 3 view .LVU156 7143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 510 .loc 1 7143 3 view .LVU157 7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 511 .loc 1 7145 3 view .LVU158 7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 512 .loc 1 7145 6 is_stmt 0 view .LVU159 513 000a 16F01006 ands r6, r6, #16 514 .LVL47: 7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 515 .loc 1 7145 6 view .LVU160 516 000e 7CD0 beq .L60 517 0010 0D46 mov r5, r1 ARM GAS /tmp/ccDmmuIk.s page 142 518 0012 9046 mov r8, r2 7148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 519 .loc 1 7148 5 is_stmt 1 view .LVU161 520 0014 1022 movs r2, #16 521 .LVL48: 7148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 522 .loc 1 7148 5 is_stmt 0 view .LVU162 523 0016 DA61 str r2, [r3, #28] 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 524 .loc 1 7152 5 is_stmt 1 view .LVU163 7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 525 .loc 1 7140 12 is_stmt 0 view .LVU164 526 0018 0026 movs r6, #0 7138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 527 .loc 1 7138 21 view .LVU165 528 001a 3746 mov r7, r6 529 .LVL49: 530 .L46: 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 531 .loc 1 7152 64 is_stmt 1 view .LVU166 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 532 .loc 1 7152 13 is_stmt 0 view .LVU167 533 001c 2368 ldr r3, [r4] 534 001e 9869 ldr r0, [r3, #24] 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 535 .loc 1 7152 64 view .LVU168 536 0020 10F0200F tst r0, #32 537 0024 30D1 bne .L52 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 538 .loc 1 7152 64 discriminator 1 view .LVU169 539 0026 7FBB cbnz r7, .L52 7155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 540 .loc 1 7155 7 is_stmt 1 view .LVU170 7155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 541 .loc 1 7155 10 is_stmt 0 view .LVU171 542 0028 B5F1FF3F cmp r5, #-1 543 002c F6D0 beq .L46 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 544 .loc 1 7157 9 is_stmt 1 view .LVU172 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 545 .loc 1 7157 15 is_stmt 0 view .LVU173 546 002e FFF7FEFF bl HAL_GetTick 547 .LVL50: 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 548 .loc 1 7157 29 discriminator 1 view .LVU174 549 0032 A0EB0800 sub r0, r0, r8 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 550 .loc 1 7157 12 discriminator 1 view .LVU175 551 0036 A842 cmp r0, r5 552 0038 01D8 bhi .L47 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 553 .loc 1 7157 53 discriminator 1 view .LVU176 554 003a 002D cmp r5, #0 555 003c EED1 bne .L46 556 .L47: 7159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 557 .loc 1 7159 11 is_stmt 1 view .LVU177 ARM GAS /tmp/ccDmmuIk.s page 143 7159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 558 .loc 1 7159 33 is_stmt 0 view .LVU178 559 003e 2168 ldr r1, [r4] 7159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 560 .loc 1 7159 43 view .LVU179 561 0040 4B68 ldr r3, [r1, #4] 7159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 562 .loc 1 7159 16 view .LVU180 563 0042 03F48043 and r3, r3, #16384 564 .LVL51: 7160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 565 .loc 1 7160 11 is_stmt 1 view .LVU181 7160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 566 .loc 1 7160 16 is_stmt 0 view .LVU182 567 0046 94F84220 ldrb r2, [r4, #66] @ zero_extendqisi2 568 004a D2B2 uxtb r2, r2 569 .LVL52: 7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 570 .loc 1 7163 11 is_stmt 1 view .LVU183 7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 571 .loc 1 7163 16 is_stmt 0 view .LVU184 572 004c 8869 ldr r0, [r1, #24] 7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 573 .loc 1 7163 14 view .LVU185 574 004e 10F4004F tst r0, #32768 575 0052 02D0 beq .L50 7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 576 .loc 1 7163 66 discriminator 1 view .LVU186 577 0054 0BB9 cbnz r3, .L50 7164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 578 .loc 1 7164 38 view .LVU187 579 0056 202A cmp r2, #32 580 0058 0ED1 bne .L62 581 .LVL53: 582 .L50: 7174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 583 .loc 1 7174 59 is_stmt 1 view .LVU188 7174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 584 .loc 1 7174 18 is_stmt 0 view .LVU189 585 005a 2368 ldr r3, [r4] 586 005c 9B69 ldr r3, [r3, #24] 7174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 587 .loc 1 7174 59 view .LVU190 588 005e 13F0200F tst r3, #32 589 0062 DBD1 bne .L46 7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 590 .loc 1 7177 13 is_stmt 1 view .LVU191 7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 591 .loc 1 7177 18 is_stmt 0 view .LVU192 592 0064 FFF7FEFF bl HAL_GetTick 593 .LVL54: 7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 594 .loc 1 7177 32 discriminator 1 view .LVU193 595 0068 A0EB0800 sub r0, r0, r8 7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 596 .loc 1 7177 16 discriminator 1 view .LVU194 597 006c 1928 cmp r0, #25 ARM GAS /tmp/ccDmmuIk.s page 144 598 006e F4D9 bls .L50 7179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 599 .loc 1 7179 15 is_stmt 1 view .LVU195 7179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 600 .loc 1 7179 26 is_stmt 0 view .LVU196 601 0070 46F02006 orr r6, r6, #32 602 .LVL55: 7181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 603 .loc 1 7181 15 is_stmt 1 view .LVU197 7183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 604 .loc 1 7183 15 view .LVU198 7181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 605 .loc 1 7181 22 is_stmt 0 view .LVU199 606 0074 0127 movs r7, #1 7183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 607 .loc 1 7183 15 view .LVU200 608 0076 D1E7 b .L46 609 .LVL56: 610 .L62: 7168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 611 .loc 1 7168 13 is_stmt 1 view .LVU201 7168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 612 .loc 1 7168 27 is_stmt 0 view .LVU202 613 0078 4B68 ldr r3, [r1, #4] 614 .LVL57: 7168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 615 .loc 1 7168 33 view .LVU203 616 007a 43F48043 orr r3, r3, #16384 617 007e 4B60 str r3, [r1, #4] 7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 618 .loc 1 7171 13 is_stmt 1 view .LVU204 7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 619 .loc 1 7171 25 is_stmt 0 view .LVU205 620 0080 FFF7FEFF bl HAL_GetTick 621 .LVL58: 7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 622 .loc 1 7171 25 view .LVU206 623 0084 8046 mov r8, r0 624 .LVL59: 7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 625 .loc 1 7171 25 view .LVU207 626 0086 E8E7 b .L50 627 .LVL60: 628 .L52: 7191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 629 .loc 1 7191 5 is_stmt 1 view .LVU208 7191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 630 .loc 1 7191 8 is_stmt 0 view .LVU209 631 0088 0FB9 cbnz r7, .L54 7194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 632 .loc 1 7194 7 is_stmt 1 view .LVU210 633 008a 2022 movs r2, #32 634 008c DA61 str r2, [r3, #28] 635 .L54: 7197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 636 .loc 1 7197 5 view .LVU211 7197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 145 637 .loc 1 7197 16 is_stmt 0 view .LVU212 638 008e 46F00406 orr r6, r6, #4 639 .LVL61: 7199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 640 .loc 1 7199 5 is_stmt 1 view .LVU213 7199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 641 .loc 1 7199 12 is_stmt 0 view .LVU214 642 0092 0125 movs r5, #1 643 .LVL62: 644 .L44: 7203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 645 .loc 1 7203 3 is_stmt 1 view .LVU215 7203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 646 .loc 1 7203 16 is_stmt 0 view .LVU216 647 0094 2268 ldr r2, [r4] 7203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 648 .loc 1 7203 10 view .LVU217 649 0096 9369 ldr r3, [r2, #24] 650 .LVL63: 7207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 651 .loc 1 7207 3 is_stmt 1 view .LVU218 7207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 652 .loc 1 7207 6 is_stmt 0 view .LVU219 653 0098 13F4807F tst r3, #256 654 009c 05D0 beq .L55 7209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 655 .loc 1 7209 5 is_stmt 1 view .LVU220 7209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 656 .loc 1 7209 16 is_stmt 0 view .LVU221 657 009e 46F00106 orr r6, r6, #1 658 .LVL64: 7212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 659 .loc 1 7212 5 is_stmt 1 view .LVU222 660 00a2 4FF48071 mov r1, #256 661 00a6 D161 str r1, [r2, #28] 7214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 662 .loc 1 7214 5 view .LVU223 663 .LVL65: 7214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 664 .loc 1 7214 12 is_stmt 0 view .LVU224 665 00a8 0125 movs r5, #1 666 .LVL66: 667 .L55: 7218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 668 .loc 1 7218 3 is_stmt 1 view .LVU225 7218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 669 .loc 1 7218 6 is_stmt 0 view .LVU226 670 00aa 13F4806F tst r3, #1024 671 00ae 06D0 beq .L56 7220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 672 .loc 1 7220 5 is_stmt 1 view .LVU227 7220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 673 .loc 1 7220 16 is_stmt 0 view .LVU228 674 00b0 46F00806 orr r6, r6, #8 675 .LVL67: 7223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 676 .loc 1 7223 5 is_stmt 1 view .LVU229 ARM GAS /tmp/ccDmmuIk.s page 146 677 00b4 2268 ldr r2, [r4] 678 00b6 4FF48061 mov r1, #1024 679 00ba D161 str r1, [r2, #28] 7225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 680 .loc 1 7225 5 view .LVU230 681 .LVL68: 7225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 682 .loc 1 7225 12 is_stmt 0 view .LVU231 683 00bc 0125 movs r5, #1 684 .LVL69: 685 .L56: 7229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 686 .loc 1 7229 3 is_stmt 1 view .LVU232 7229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 687 .loc 1 7229 6 is_stmt 0 view .LVU233 688 00be 13F4007F tst r3, #512 689 00c2 24D0 beq .L57 7231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 690 .loc 1 7231 5 is_stmt 1 view .LVU234 7231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 691 .loc 1 7231 16 is_stmt 0 view .LVU235 692 00c4 46F00206 orr r6, r6, #2 693 .LVL70: 7234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 694 .loc 1 7234 5 is_stmt 1 view .LVU236 695 00c8 2368 ldr r3, [r4] 696 .LVL71: 7234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 697 .loc 1 7234 5 is_stmt 0 view .LVU237 698 00ca 4FF40072 mov r2, #512 699 00ce DA61 str r2, [r3, #28] 7236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 700 .loc 1 7236 5 is_stmt 1 view .LVU238 701 .LVL72: 7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 702 .loc 1 7239 3 view .LVU239 7236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 703 .loc 1 7236 12 is_stmt 0 view .LVU240 704 00d0 0125 movs r5, #1 705 .LVL73: 706 .L58: 7242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 707 .loc 1 7242 5 is_stmt 1 view .LVU241 708 00d2 2046 mov r0, r4 709 00d4 FFF7FEFF bl I2C_Flush_TXDR 710 .LVL74: 7245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 711 .loc 1 7245 5 view .LVU242 712 00d8 2268 ldr r2, [r4] 713 00da 5368 ldr r3, [r2, #4] 714 00dc 23F0FF73 bic r3, r3, #33423360 715 00e0 23F48B33 bic r3, r3, #71168 716 00e4 23F4FF73 bic r3, r3, #510 717 00e8 23F00103 bic r3, r3, #1 718 00ec 5360 str r3, [r2, #4] 7247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 719 .loc 1 7247 5 view .LVU243 ARM GAS /tmp/ccDmmuIk.s page 147 7247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 720 .loc 1 7247 9 is_stmt 0 view .LVU244 721 00ee 636C ldr r3, [r4, #68] 7247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 722 .loc 1 7247 21 view .LVU245 723 00f0 3343 orrs r3, r3, r6 724 00f2 6364 str r3, [r4, #68] 7248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 725 .loc 1 7248 5 is_stmt 1 view .LVU246 7248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 726 .loc 1 7248 17 is_stmt 0 view .LVU247 727 00f4 2023 movs r3, #32 728 00f6 84F84130 strb r3, [r4, #65] 7249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 729 .loc 1 7249 5 is_stmt 1 view .LVU248 7249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 730 .loc 1 7249 16 is_stmt 0 view .LVU249 731 00fa 0023 movs r3, #0 732 00fc 84F84230 strb r3, [r4, #66] 7252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 733 .loc 1 7252 5 is_stmt 1 view .LVU250 7252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 734 .loc 1 7252 5 view .LVU251 735 0100 84F84030 strb r3, [r4, #64] 736 .L59: 7252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 737 .loc 1 7252 5 discriminator 1 view .LVU252 7255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 738 .loc 1 7255 3 view .LVU253 7256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 739 .loc 1 7256 1 is_stmt 0 view .LVU254 740 0104 2846 mov r0, r5 741 0106 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 742 .LVL75: 743 .L60: 7138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 744 .loc 1 7138 21 view .LVU255 745 010a 0025 movs r5, #0 746 010c C2E7 b .L44 747 .LVL76: 748 .L57: 7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 749 .loc 1 7239 3 is_stmt 1 view .LVU256 7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 750 .loc 1 7239 6 is_stmt 0 view .LVU257 751 010e 002D cmp r5, #0 752 0110 F8D0 beq .L59 753 0112 DEE7 b .L58 754 .cfi_endproc 755 .LFE405: 757 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 758 .align 1 759 .syntax unified 760 .thumb 761 .thumb_func 763 I2C_WaitOnTXISFlagUntilTimeout: 764 .LVL77: ARM GAS /tmp/ccDmmuIk.s page 148 765 .LFB402: 6982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 766 .loc 1 6982 1 is_stmt 1 view -0 767 .cfi_startproc 768 @ args = 0, pretend = 0, frame = 0 769 @ frame_needed = 0, uses_anonymous_args = 0 6982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 770 .loc 1 6982 1 is_stmt 0 view .LVU259 771 0000 70B5 push {r4, r5, r6, lr} 772 .LCFI3: 773 .cfi_def_cfa_offset 16 774 .cfi_offset 4, -16 775 .cfi_offset 5, -12 776 .cfi_offset 6, -8 777 .cfi_offset 14, -4 778 0002 0446 mov r4, r0 779 0004 0D46 mov r5, r1 780 0006 1646 mov r6, r2 6983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 781 .loc 1 6983 3 is_stmt 1 view .LVU260 782 .LVL78: 783 .L66: 6983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 784 .loc 1 6983 50 view .LVU261 6983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 785 .loc 1 6983 10 is_stmt 0 view .LVU262 786 0008 2368 ldr r3, [r4] 787 000a 9B69 ldr r3, [r3, #24] 6983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 788 .loc 1 6983 50 view .LVU263 789 000c 13F0020F tst r3, #2 790 0010 22D1 bne .L71 6986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 791 .loc 1 6986 5 is_stmt 1 view .LVU264 6986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 792 .loc 1 6986 9 is_stmt 0 view .LVU265 793 0012 3246 mov r2, r6 794 0014 2946 mov r1, r5 795 0016 2046 mov r0, r4 796 0018 FFF7FEFF bl I2C_IsErrorOccurred 797 .LVL79: 6986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 798 .loc 1 6986 8 discriminator 1 view .LVU266 799 001c F0B9 cbnz r0, .L69 6992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 800 .loc 1 6992 5 is_stmt 1 view .LVU267 6992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 801 .loc 1 6992 8 is_stmt 0 view .LVU268 802 001e B5F1FF3F cmp r5, #-1 803 0022 F1D0 beq .L66 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 804 .loc 1 6994 7 is_stmt 1 view .LVU269 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 805 .loc 1 6994 13 is_stmt 0 view .LVU270 806 0024 FFF7FEFF bl HAL_GetTick 807 .LVL80: 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 149 808 .loc 1 6994 27 discriminator 1 view .LVU271 809 0028 801B subs r0, r0, r6 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 810 .loc 1 6994 10 discriminator 1 view .LVU272 811 002a A842 cmp r0, r5 812 002c 01D8 bhi .L67 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 813 .loc 1 6994 51 discriminator 1 view .LVU273 814 002e 002D cmp r5, #0 815 0030 EAD1 bne .L66 816 .L67: 6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 817 .loc 1 6996 9 is_stmt 1 view .LVU274 6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 818 .loc 1 6996 14 is_stmt 0 view .LVU275 819 0032 2368 ldr r3, [r4] 820 0034 9B69 ldr r3, [r3, #24] 6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 821 .loc 1 6996 12 view .LVU276 822 0036 13F0020F tst r3, #2 823 003a E5D1 bne .L66 6998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 824 .loc 1 6998 11 is_stmt 1 view .LVU277 6998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 825 .loc 1 6998 15 is_stmt 0 view .LVU278 826 003c 636C ldr r3, [r4, #68] 6998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 827 .loc 1 6998 27 view .LVU279 828 003e 43F02003 orr r3, r3, #32 829 0042 6364 str r3, [r4, #68] 6999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 830 .loc 1 6999 11 is_stmt 1 view .LVU280 6999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 831 .loc 1 6999 23 is_stmt 0 view .LVU281 832 0044 2023 movs r3, #32 833 0046 84F84130 strb r3, [r4, #65] 7000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 834 .loc 1 7000 11 is_stmt 1 view .LVU282 7000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 835 .loc 1 7000 22 is_stmt 0 view .LVU283 836 004a 0023 movs r3, #0 837 004c 84F84230 strb r3, [r4, #66] 7003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 838 .loc 1 7003 11 is_stmt 1 view .LVU284 7003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 839 .loc 1 7003 11 view .LVU285 840 0050 84F84030 strb r3, [r4, #64] 7003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 841 .loc 1 7003 11 view .LVU286 7005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 842 .loc 1 7005 11 view .LVU287 7005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 843 .loc 1 7005 18 is_stmt 0 view .LVU288 844 0054 0120 movs r0, #1 845 0056 00E0 b .L65 846 .L71: 7010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 150 847 .loc 1 7010 10 view .LVU289 848 0058 0020 movs r0, #0 849 .L65: 7011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 850 .loc 1 7011 1 view .LVU290 851 005a 70BD pop {r4, r5, r6, pc} 852 .LVL81: 853 .L69: 6988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 854 .loc 1 6988 14 view .LVU291 855 005c 0120 movs r0, #1 856 005e FCE7 b .L65 857 .cfi_endproc 858 .LFE402: 860 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 861 .align 1 862 .syntax unified 863 .thumb 864 .thumb_func 866 I2C_WaitOnFlagUntilTimeout: 867 .LVL82: 868 .LFB401: 6942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 869 .loc 1 6942 1 is_stmt 1 view -0 870 .cfi_startproc 871 @ args = 4, pretend = 0, frame = 0 872 @ frame_needed = 0, uses_anonymous_args = 0 6942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 873 .loc 1 6942 1 is_stmt 0 view .LVU293 874 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 875 .LCFI4: 876 .cfi_def_cfa_offset 32 877 .cfi_offset 3, -32 878 .cfi_offset 4, -28 879 .cfi_offset 5, -24 880 .cfi_offset 6, -20 881 .cfi_offset 7, -16 882 .cfi_offset 8, -12 883 .cfi_offset 9, -8 884 .cfi_offset 14, -4 885 0004 0546 mov r5, r0 886 0006 8846 mov r8, r1 887 0008 1746 mov r7, r2 888 000a 1E46 mov r6, r3 889 000c DDF82090 ldr r9, [sp, #32] 6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 890 .loc 1 6943 3 is_stmt 1 view .LVU294 891 .LVL83: 892 .L75: 6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 893 .loc 1 6943 41 view .LVU295 6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 894 .loc 1 6943 10 is_stmt 0 view .LVU296 895 0010 2B68 ldr r3, [r5] 896 0012 9C69 ldr r4, [r3, #24] 897 0014 38EA0404 bics r4, r8, r4 898 0018 0CBF ite eq ARM GAS /tmp/ccDmmuIk.s page 151 899 001a 0123 moveq r3, #1 900 001c 0023 movne r3, #0 6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 901 .loc 1 6943 41 view .LVU297 902 001e BB42 cmp r3, r7 903 0020 27D1 bne .L80 6946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 904 .loc 1 6946 5 is_stmt 1 view .LVU298 6946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 905 .loc 1 6946 9 is_stmt 0 view .LVU299 906 0022 4A46 mov r2, r9 907 0024 3146 mov r1, r6 908 0026 2846 mov r0, r5 909 0028 FFF7FEFF bl I2C_IsErrorOccurred 910 .LVL84: 6946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 911 .loc 1 6946 8 discriminator 1 view .LVU300 912 002c 20BB cbnz r0, .L78 6952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 913 .loc 1 6952 5 is_stmt 1 view .LVU301 6952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 914 .loc 1 6952 8 is_stmt 0 view .LVU302 915 002e B6F1FF3F cmp r6, #-1 916 0032 EDD0 beq .L75 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 917 .loc 1 6954 7 is_stmt 1 view .LVU303 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 918 .loc 1 6954 13 is_stmt 0 view .LVU304 919 0034 FFF7FEFF bl HAL_GetTick 920 .LVL85: 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 921 .loc 1 6954 27 discriminator 1 view .LVU305 922 0038 A0EB0900 sub r0, r0, r9 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 923 .loc 1 6954 10 discriminator 1 view .LVU306 924 003c B042 cmp r0, r6 925 003e 01D8 bhi .L76 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 926 .loc 1 6954 51 discriminator 1 view .LVU307 927 0040 002E cmp r6, #0 928 0042 E5D1 bne .L75 929 .L76: 6956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 930 .loc 1 6956 9 is_stmt 1 view .LVU308 6956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 931 .loc 1 6956 14 is_stmt 0 view .LVU309 932 0044 2B68 ldr r3, [r5] 933 0046 9B69 ldr r3, [r3, #24] 934 0048 38EA0303 bics r3, r8, r3 935 004c 0CBF ite eq 936 004e 0123 moveq r3, #1 937 0050 0023 movne r3, #0 6956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 938 .loc 1 6956 12 view .LVU310 939 0052 BB42 cmp r3, r7 940 0054 DCD1 bne .L75 6958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccDmmuIk.s page 152 941 .loc 1 6958 11 is_stmt 1 view .LVU311 6958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 942 .loc 1 6958 15 is_stmt 0 view .LVU312 943 0056 6B6C ldr r3, [r5, #68] 6958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 944 .loc 1 6958 27 view .LVU313 945 0058 43F02003 orr r3, r3, #32 946 005c 6B64 str r3, [r5, #68] 6959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 947 .loc 1 6959 11 is_stmt 1 view .LVU314 6959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 948 .loc 1 6959 23 is_stmt 0 view .LVU315 949 005e 2023 movs r3, #32 950 0060 85F84130 strb r3, [r5, #65] 6960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 951 .loc 1 6960 11 is_stmt 1 view .LVU316 6960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 952 .loc 1 6960 22 is_stmt 0 view .LVU317 953 0064 0023 movs r3, #0 954 0066 85F84230 strb r3, [r5, #66] 6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 955 .loc 1 6963 11 is_stmt 1 view .LVU318 6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 956 .loc 1 6963 11 view .LVU319 957 006a 85F84030 strb r3, [r5, #64] 6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 958 .loc 1 6963 11 view .LVU320 6964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 959 .loc 1 6964 11 view .LVU321 6964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 960 .loc 1 6964 18 is_stmt 0 view .LVU322 961 006e 0120 movs r0, #1 962 0070 00E0 b .L74 963 .L80: 6969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 964 .loc 1 6969 10 view .LVU323 965 0072 0020 movs r0, #0 966 .L74: 6970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 967 .loc 1 6970 1 view .LVU324 968 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 969 .LVL86: 970 .L78: 6948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 971 .loc 1 6948 14 view .LVU325 972 0078 0120 movs r0, #1 973 007a FBE7 b .L74 974 .cfi_endproc 975 .LFE401: 977 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 978 .align 1 979 .syntax unified 980 .thumb 981 .thumb_func 983 I2C_RequestMemoryWrite: 984 .LVL87: 985 .LFB384: ARM GAS /tmp/ccDmmuIk.s page 153 5808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 986 .loc 1 5808 1 is_stmt 1 view -0 987 .cfi_startproc 988 @ args = 8, pretend = 0, frame = 0 989 @ frame_needed = 0, uses_anonymous_args = 0 5808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 990 .loc 1 5808 1 is_stmt 0 view .LVU327 991 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 992 .LCFI5: 993 .cfi_def_cfa_offset 24 994 .cfi_offset 4, -24 995 .cfi_offset 5, -20 996 .cfi_offset 6, -16 997 .cfi_offset 7, -12 998 .cfi_offset 8, -8 999 .cfi_offset 14, -4 1000 0004 82B0 sub sp, sp, #8 1001 .LCFI6: 1002 .cfi_def_cfa_offset 32 1003 0006 0446 mov r4, r0 1004 0008 9046 mov r8, r2 1005 000a 1D46 mov r5, r3 1006 000c 089E ldr r6, [sp, #32] 1007 000e 099F ldr r7, [sp, #36] 5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1008 .loc 1 5809 3 is_stmt 1 view .LVU328 1009 0010 194B ldr r3, .L90 1010 .LVL88: 5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1011 .loc 1 5809 3 is_stmt 0 view .LVU329 1012 0012 0093 str r3, [sp] 1013 0014 4FF08073 mov r3, #16777216 1014 0018 EAB2 uxtb r2, r5 1015 .LVL89: 5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1016 .loc 1 5809 3 view .LVU330 1017 001a FFF7FEFF bl I2C_TransferConfig 1018 .LVL90: 5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1019 .loc 1 5812 3 is_stmt 1 view .LVU331 5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1020 .loc 1 5812 7 is_stmt 0 view .LVU332 1021 001e 3A46 mov r2, r7 1022 0020 3146 mov r1, r6 1023 0022 2046 mov r0, r4 1024 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1025 .LVL91: 5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1026 .loc 1 5812 6 discriminator 1 view .LVU333 1027 0028 F8B9 cbnz r0, .L85 5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1028 .loc 1 5818 3 is_stmt 1 view .LVU334 5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1029 .loc 1 5818 6 is_stmt 0 view .LVU335 1030 002a 012D cmp r5, #1 1031 002c 0ED1 bne .L83 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 154 1032 .loc 1 5821 5 is_stmt 1 view .LVU336 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1033 .loc 1 5821 9 is_stmt 0 view .LVU337 1034 002e 2368 ldr r3, [r4] 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1035 .loc 1 5821 28 view .LVU338 1036 0030 5FFA88F2 uxtb r2, r8 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1037 .loc 1 5821 26 view .LVU339 1038 0034 9A62 str r2, [r3, #40] 1039 .L84: 5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1040 .loc 1 5840 3 is_stmt 1 view .LVU340 5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1041 .loc 1 5840 7 is_stmt 0 view .LVU341 1042 0036 0097 str r7, [sp] 1043 0038 3346 mov r3, r6 1044 003a 0022 movs r2, #0 1045 003c 8021 movs r1, #128 1046 003e 2046 mov r0, r4 1047 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1048 .LVL92: 5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1049 .loc 1 5840 6 discriminator 1 view .LVU342 1050 0044 A8B9 cbnz r0, .L89 1051 .L82: 5846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1052 .loc 1 5846 1 view .LVU343 1053 0046 02B0 add sp, sp, #8 1054 .LCFI7: 1055 .cfi_remember_state 1056 .cfi_def_cfa_offset 24 1057 @ sp needed 1058 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1059 .LVL93: 1060 .L83: 1061 .LCFI8: 1062 .cfi_restore_state 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1063 .loc 1 5827 5 is_stmt 1 view .LVU344 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1064 .loc 1 5827 9 is_stmt 0 view .LVU345 1065 004c 2368 ldr r3, [r4] 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1066 .loc 1 5827 28 view .LVU346 1067 004e 4FEA1822 lsr r2, r8, #8 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1068 .loc 1 5827 26 view .LVU347 1069 0052 9A62 str r2, [r3, #40] 5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1070 .loc 1 5830 5 is_stmt 1 view .LVU348 5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1071 .loc 1 5830 9 is_stmt 0 view .LVU349 1072 0054 3A46 mov r2, r7 1073 0056 3146 mov r1, r6 1074 0058 2046 mov r0, r4 1075 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout ARM GAS /tmp/ccDmmuIk.s page 155 1076 .LVL94: 5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1077 .loc 1 5830 8 discriminator 1 view .LVU350 1078 005e 30B9 cbnz r0, .L86 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1079 .loc 1 5836 5 is_stmt 1 view .LVU351 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1080 .loc 1 5836 9 is_stmt 0 view .LVU352 1081 0060 2368 ldr r3, [r4] 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1082 .loc 1 5836 28 view .LVU353 1083 0062 5FFA88F2 uxtb r2, r8 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1084 .loc 1 5836 26 view .LVU354 1085 0066 9A62 str r2, [r3, #40] 1086 0068 E5E7 b .L84 1087 .L85: 5814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1088 .loc 1 5814 12 view .LVU355 1089 006a 0120 movs r0, #1 1090 006c EBE7 b .L82 1091 .L86: 5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1092 .loc 1 5832 14 view .LVU356 1093 006e 0120 movs r0, #1 1094 0070 E9E7 b .L82 1095 .L89: 5842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1096 .loc 1 5842 12 view .LVU357 1097 0072 0120 movs r0, #1 1098 0074 E7E7 b .L82 1099 .L91: 1100 0076 00BF .align 2 1101 .L90: 1102 0078 00200080 .word -2147475456 1103 .cfi_endproc 1104 .LFE384: 1106 .section .text.I2C_RequestMemoryRead,"ax",%progbits 1107 .align 1 1108 .syntax unified 1109 .thumb 1110 .thumb_func 1112 I2C_RequestMemoryRead: 1113 .LVL95: 1114 .LFB385: 5863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1115 .loc 1 5863 1 is_stmt 1 view -0 1116 .cfi_startproc 1117 @ args = 8, pretend = 0, frame = 0 1118 @ frame_needed = 0, uses_anonymous_args = 0 5863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1119 .loc 1 5863 1 is_stmt 0 view .LVU359 1120 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1121 .LCFI9: 1122 .cfi_def_cfa_offset 24 1123 .cfi_offset 4, -24 1124 .cfi_offset 5, -20 ARM GAS /tmp/ccDmmuIk.s page 156 1125 .cfi_offset 6, -16 1126 .cfi_offset 7, -12 1127 .cfi_offset 8, -8 1128 .cfi_offset 14, -4 1129 0004 82B0 sub sp, sp, #8 1130 .LCFI10: 1131 .cfi_def_cfa_offset 32 1132 0006 0446 mov r4, r0 1133 0008 9046 mov r8, r2 1134 000a 1D46 mov r5, r3 1135 000c 089E ldr r6, [sp, #32] 1136 000e 099F ldr r7, [sp, #36] 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1137 .loc 1 5864 3 is_stmt 1 view .LVU360 1138 0010 184B ldr r3, .L101 1139 .LVL96: 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1140 .loc 1 5864 3 is_stmt 0 view .LVU361 1141 0012 0093 str r3, [sp] 1142 0014 0023 movs r3, #0 1143 0016 EAB2 uxtb r2, r5 1144 .LVL97: 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1145 .loc 1 5864 3 view .LVU362 1146 0018 FFF7FEFF bl I2C_TransferConfig 1147 .LVL98: 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1148 .loc 1 5867 3 is_stmt 1 view .LVU363 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1149 .loc 1 5867 7 is_stmt 0 view .LVU364 1150 001c 3A46 mov r2, r7 1151 001e 3146 mov r1, r6 1152 0020 2046 mov r0, r4 1153 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1154 .LVL99: 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1155 .loc 1 5867 6 discriminator 1 view .LVU365 1156 0026 F8B9 cbnz r0, .L96 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1157 .loc 1 5873 3 is_stmt 1 view .LVU366 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1158 .loc 1 5873 6 is_stmt 0 view .LVU367 1159 0028 012D cmp r5, #1 1160 002a 0ED1 bne .L94 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1161 .loc 1 5876 5 is_stmt 1 view .LVU368 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1162 .loc 1 5876 9 is_stmt 0 view .LVU369 1163 002c 2368 ldr r3, [r4] 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1164 .loc 1 5876 28 view .LVU370 1165 002e 5FFA88F2 uxtb r2, r8 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1166 .loc 1 5876 26 view .LVU371 1167 0032 9A62 str r2, [r3, #40] 1168 .L95: 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 157 1169 .loc 1 5895 3 is_stmt 1 view .LVU372 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1170 .loc 1 5895 7 is_stmt 0 view .LVU373 1171 0034 0097 str r7, [sp] 1172 0036 3346 mov r3, r6 1173 0038 0022 movs r2, #0 1174 003a 4021 movs r1, #64 1175 003c 2046 mov r0, r4 1176 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1177 .LVL100: 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1178 .loc 1 5895 6 discriminator 1 view .LVU374 1179 0042 A8B9 cbnz r0, .L100 1180 .L93: 5901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1181 .loc 1 5901 1 view .LVU375 1182 0044 02B0 add sp, sp, #8 1183 .LCFI11: 1184 .cfi_remember_state 1185 .cfi_def_cfa_offset 24 1186 @ sp needed 1187 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1188 .LVL101: 1189 .L94: 1190 .LCFI12: 1191 .cfi_restore_state 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1192 .loc 1 5882 5 is_stmt 1 view .LVU376 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1193 .loc 1 5882 9 is_stmt 0 view .LVU377 1194 004a 2368 ldr r3, [r4] 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1195 .loc 1 5882 28 view .LVU378 1196 004c 4FEA1822 lsr r2, r8, #8 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1197 .loc 1 5882 26 view .LVU379 1198 0050 9A62 str r2, [r3, #40] 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1199 .loc 1 5885 5 is_stmt 1 view .LVU380 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1200 .loc 1 5885 9 is_stmt 0 view .LVU381 1201 0052 3A46 mov r2, r7 1202 0054 3146 mov r1, r6 1203 0056 2046 mov r0, r4 1204 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1205 .LVL102: 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1206 .loc 1 5885 8 discriminator 1 view .LVU382 1207 005c 30B9 cbnz r0, .L97 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1208 .loc 1 5891 5 is_stmt 1 view .LVU383 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1209 .loc 1 5891 9 is_stmt 0 view .LVU384 1210 005e 2368 ldr r3, [r4] 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1211 .loc 1 5891 28 view .LVU385 1212 0060 5FFA88F2 uxtb r2, r8 ARM GAS /tmp/ccDmmuIk.s page 158 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1213 .loc 1 5891 26 view .LVU386 1214 0064 9A62 str r2, [r3, #40] 1215 0066 E5E7 b .L95 1216 .L96: 5869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1217 .loc 1 5869 12 view .LVU387 1218 0068 0120 movs r0, #1 1219 006a EBE7 b .L93 1220 .L97: 5887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1221 .loc 1 5887 14 view .LVU388 1222 006c 0120 movs r0, #1 1223 006e E9E7 b .L93 1224 .L100: 5897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1225 .loc 1 5897 12 view .LVU389 1226 0070 0120 movs r0, #1 1227 0072 E7E7 b .L93 1228 .L102: 1229 .align 2 1230 .L101: 1231 0074 00200080 .word -2147475456 1232 .cfi_endproc 1233 .LFE385: 1235 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1236 .align 1 1237 .syntax unified 1238 .thumb 1239 .thumb_func 1241 I2C_WaitOnSTOPFlagUntilTimeout: 1242 .LVL103: 1243 .LFB403: 7023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1244 .loc 1 7023 1 is_stmt 1 view -0 1245 .cfi_startproc 1246 @ args = 0, pretend = 0, frame = 0 1247 @ frame_needed = 0, uses_anonymous_args = 0 7023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1248 .loc 1 7023 1 is_stmt 0 view .LVU391 1249 0000 70B5 push {r4, r5, r6, lr} 1250 .LCFI13: 1251 .cfi_def_cfa_offset 16 1252 .cfi_offset 4, -16 1253 .cfi_offset 5, -12 1254 .cfi_offset 6, -8 1255 .cfi_offset 14, -4 1256 0002 0446 mov r4, r0 1257 0004 0D46 mov r5, r1 1258 0006 1646 mov r6, r2 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1259 .loc 1 7024 3 is_stmt 1 view .LVU392 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1260 .loc 1 7024 9 is_stmt 0 view .LVU393 1261 0008 04E0 b .L104 1262 .LVL104: 1263 .L106: ARM GAS /tmp/ccDmmuIk.s page 159 7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1264 .loc 1 7035 7 is_stmt 1 view .LVU394 7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1265 .loc 1 7035 12 is_stmt 0 view .LVU395 1266 000a 2368 ldr r3, [r4] 1267 000c 9B69 ldr r3, [r3, #24] 7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1268 .loc 1 7035 10 view .LVU396 1269 000e 13F0200F tst r3, #32 1270 0012 12D0 beq .L110 1271 .L104: 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1272 .loc 1 7024 51 is_stmt 1 view .LVU397 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1273 .loc 1 7024 10 is_stmt 0 view .LVU398 1274 0014 2368 ldr r3, [r4] 1275 0016 9B69 ldr r3, [r3, #24] 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1276 .loc 1 7024 51 view .LVU399 1277 0018 13F0200F tst r3, #32 1278 001c 1BD1 bne .L111 7027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1279 .loc 1 7027 5 is_stmt 1 view .LVU400 7027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1280 .loc 1 7027 9 is_stmt 0 view .LVU401 1281 001e 3246 mov r2, r6 1282 0020 2946 mov r1, r5 1283 0022 2046 mov r0, r4 1284 0024 FFF7FEFF bl I2C_IsErrorOccurred 1285 .LVL105: 7027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1286 .loc 1 7027 8 discriminator 1 view .LVU402 1287 0028 B8B9 cbnz r0, .L108 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1288 .loc 1 7033 5 is_stmt 1 view .LVU403 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1289 .loc 1 7033 11 is_stmt 0 view .LVU404 1290 002a FFF7FEFF bl HAL_GetTick 1291 .LVL106: 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1292 .loc 1 7033 25 discriminator 1 view .LVU405 1293 002e 801B subs r0, r0, r6 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1294 .loc 1 7033 8 discriminator 1 view .LVU406 1295 0030 A842 cmp r0, r5 1296 0032 EAD8 bhi .L106 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1297 .loc 1 7033 49 discriminator 1 view .LVU407 1298 0034 002D cmp r5, #0 1299 0036 EDD1 bne .L104 1300 0038 E7E7 b .L106 1301 .L110: 7037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1302 .loc 1 7037 9 is_stmt 1 view .LVU408 7037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1303 .loc 1 7037 13 is_stmt 0 view .LVU409 1304 003a 636C ldr r3, [r4, #68] ARM GAS /tmp/ccDmmuIk.s page 160 7037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1305 .loc 1 7037 25 view .LVU410 1306 003c 43F02003 orr r3, r3, #32 1307 0040 6364 str r3, [r4, #68] 7038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1308 .loc 1 7038 9 is_stmt 1 view .LVU411 7038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1309 .loc 1 7038 21 is_stmt 0 view .LVU412 1310 0042 2023 movs r3, #32 1311 0044 84F84130 strb r3, [r4, #65] 7039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1312 .loc 1 7039 9 is_stmt 1 view .LVU413 7039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1313 .loc 1 7039 20 is_stmt 0 view .LVU414 1314 0048 0023 movs r3, #0 1315 004a 84F84230 strb r3, [r4, #66] 7042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1316 .loc 1 7042 9 is_stmt 1 view .LVU415 7042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1317 .loc 1 7042 9 view .LVU416 1318 004e 84F84030 strb r3, [r4, #64] 7042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1319 .loc 1 7042 9 view .LVU417 7044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1320 .loc 1 7044 9 view .LVU418 7044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1321 .loc 1 7044 16 is_stmt 0 view .LVU419 1322 0052 0120 movs r0, #1 1323 0054 00E0 b .L105 1324 .L111: 7048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1325 .loc 1 7048 10 view .LVU420 1326 0056 0020 movs r0, #0 1327 .L105: 7049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1328 .loc 1 7049 1 view .LVU421 1329 0058 70BD pop {r4, r5, r6, pc} 1330 .LVL107: 1331 .L108: 7029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1332 .loc 1 7029 14 view .LVU422 1333 005a 0120 movs r0, #1 1334 005c FCE7 b .L105 1335 .cfi_endproc 1336 .LFE403: 1338 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1339 .align 1 1340 .syntax unified 1341 .thumb 1342 .thumb_func 1344 I2C_WaitOnRXNEFlagUntilTimeout: 1345 .LVL108: 1346 .LFB404: 7061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1347 .loc 1 7061 1 is_stmt 1 view -0 1348 .cfi_startproc 1349 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccDmmuIk.s page 161 1350 @ frame_needed = 0, uses_anonymous_args = 0 7061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1351 .loc 1 7061 1 is_stmt 0 view .LVU424 1352 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1353 .LCFI14: 1354 .cfi_def_cfa_offset 24 1355 .cfi_offset 3, -24 1356 .cfi_offset 4, -20 1357 .cfi_offset 5, -16 1358 .cfi_offset 6, -12 1359 .cfi_offset 7, -8 1360 .cfi_offset 14, -4 1361 0002 0446 mov r4, r0 1362 0004 0E46 mov r6, r1 1363 0006 1746 mov r7, r2 7062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1364 .loc 1 7062 3 is_stmt 1 view .LVU425 1365 .LVL109: 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1366 .loc 1 7064 3 view .LVU426 7062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1367 .loc 1 7062 21 is_stmt 0 view .LVU427 1368 0008 0025 movs r5, #0 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1369 .loc 1 7064 9 view .LVU428 1370 000a 18E0 b .L113 1371 .LVL110: 1372 .L116: 7106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1373 .loc 1 7106 9 is_stmt 1 view .LVU429 7106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1374 .loc 1 7106 25 is_stmt 0 view .LVU430 1375 000c 0023 movs r3, #0 1376 000e 6364 str r3, [r4, #68] 1377 .LVL111: 1378 .L115: 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1379 .loc 1 7111 5 is_stmt 1 view .LVU431 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1380 .loc 1 7111 12 is_stmt 0 view .LVU432 1381 0010 FFF7FEFF bl HAL_GetTick 1382 .LVL112: 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1383 .loc 1 7111 26 discriminator 1 view .LVU433 1384 0014 C01B subs r0, r0, r7 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1385 .loc 1 7111 8 discriminator 1 view .LVU434 1386 0016 B042 cmp r0, r6 1387 0018 00D8 bhi .L117 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1388 .loc 1 7111 50 discriminator 2 view .LVU435 1389 001a 86B9 cbnz r6, .L113 1390 .L117: 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1391 .loc 1 7111 70 discriminator 3 view .LVU436 1392 001c 7DB9 cbnz r5, .L113 7113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 162 1393 .loc 1 7113 7 is_stmt 1 view .LVU437 7113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1394 .loc 1 7113 12 is_stmt 0 view .LVU438 1395 001e 2368 ldr r3, [r4] 1396 0020 9B69 ldr r3, [r3, #24] 7113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1397 .loc 1 7113 10 view .LVU439 1398 0022 13F0040F tst r3, #4 1399 0026 0AD1 bne .L113 7115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1400 .loc 1 7115 9 is_stmt 1 view .LVU440 7115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1401 .loc 1 7115 13 is_stmt 0 view .LVU441 1402 0028 636C ldr r3, [r4, #68] 7115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1403 .loc 1 7115 25 view .LVU442 1404 002a 43F02003 orr r3, r3, #32 1405 002e 6364 str r3, [r4, #68] 7116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1406 .loc 1 7116 9 is_stmt 1 view .LVU443 7116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1407 .loc 1 7116 21 is_stmt 0 view .LVU444 1408 0030 2023 movs r3, #32 1409 0032 84F84130 strb r3, [r4, #65] 7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1410 .loc 1 7119 9 is_stmt 1 view .LVU445 7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1411 .loc 1 7119 9 view .LVU446 1412 0036 0023 movs r3, #0 1413 0038 84F84030 strb r3, [r4, #64] 7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1414 .loc 1 7119 9 view .LVU447 7121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1415 .loc 1 7121 9 view .LVU448 1416 .LVL113: 7121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1417 .loc 1 7121 16 is_stmt 0 view .LVU449 1418 003c 0125 movs r5, #1 1419 .LVL114: 1420 .L113: 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1421 .loc 1 7064 61 is_stmt 1 view .LVU450 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1422 .loc 1 7064 11 is_stmt 0 view .LVU451 1423 003e 2368 ldr r3, [r4] 1424 0040 9B69 ldr r3, [r3, #24] 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1425 .loc 1 7064 61 view .LVU452 1426 0042 13F0040F tst r3, #4 1427 0046 2ED1 bne .L119 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1428 .loc 1 7064 61 discriminator 1 view .LVU453 1429 0048 6DBB cbnz r5, .L119 7067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1430 .loc 1 7067 5 is_stmt 1 view .LVU454 7067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1431 .loc 1 7067 9 is_stmt 0 view .LVU455 ARM GAS /tmp/ccDmmuIk.s page 163 1432 004a 3A46 mov r2, r7 1433 004c 3146 mov r1, r6 1434 004e 2046 mov r0, r4 1435 0050 FFF7FEFF bl I2C_IsErrorOccurred 1436 .LVL115: 7067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1437 .loc 1 7067 8 discriminator 1 view .LVU456 1438 0054 00B1 cbz r0, .L114 7069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1439 .loc 1 7069 14 view .LVU457 1440 0056 0125 movs r5, #1 1441 .LVL116: 1442 .L114: 7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1443 .loc 1 7073 5 is_stmt 1 view .LVU458 7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1444 .loc 1 7073 10 is_stmt 0 view .LVU459 1445 0058 2368 ldr r3, [r4] 1446 005a 9A69 ldr r2, [r3, #24] 7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1447 .loc 1 7073 8 view .LVU460 1448 005c 12F0200F tst r2, #32 1449 0060 D6D0 beq .L115 7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1450 .loc 1 7073 59 discriminator 1 view .LVU461 1451 0062 002D cmp r5, #0 1452 0064 D4D1 bne .L115 7077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1453 .loc 1 7077 7 is_stmt 1 view .LVU462 7077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1454 .loc 1 7077 12 is_stmt 0 view .LVU463 1455 0066 9A69 ldr r2, [r3, #24] 7081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1456 .loc 1 7081 9 is_stmt 1 view .LVU464 7085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1457 .loc 1 7085 7 view .LVU465 7085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1458 .loc 1 7085 11 is_stmt 0 view .LVU466 1459 0068 9A69 ldr r2, [r3, #24] 7085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1460 .loc 1 7085 10 view .LVU467 1461 006a 12F0100F tst r2, #16 1462 006e CDD0 beq .L116 7087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 1463 .loc 1 7087 9 is_stmt 1 view .LVU468 1464 0070 1022 movs r2, #16 1465 0072 DA61 str r2, [r3, #28] 7088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1466 .loc 1 7088 9 view .LVU469 7088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1467 .loc 1 7088 25 is_stmt 0 view .LVU470 1468 0074 0423 movs r3, #4 1469 0076 6364 str r3, [r4, #68] 7091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1470 .loc 1 7091 9 is_stmt 1 view .LVU471 1471 0078 2368 ldr r3, [r4] 1472 007a 2022 movs r2, #32 ARM GAS /tmp/ccDmmuIk.s page 164 1473 007c DA61 str r2, [r3, #28] 7094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1474 .loc 1 7094 9 view .LVU472 1475 007e 2168 ldr r1, [r4] 1476 0080 4B68 ldr r3, [r1, #4] 1477 0082 23F0FF73 bic r3, r3, #33423360 1478 0086 23F48B33 bic r3, r3, #71168 1479 008a 23F4FF73 bic r3, r3, #510 1480 008e 23F00103 bic r3, r3, #1 1481 0092 4B60 str r3, [r1, #4] 7096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1482 .loc 1 7096 9 view .LVU473 7096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1483 .loc 1 7096 21 is_stmt 0 view .LVU474 1484 0094 84F84120 strb r2, [r4, #65] 7097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1485 .loc 1 7097 9 is_stmt 1 view .LVU475 7097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1486 .loc 1 7097 20 is_stmt 0 view .LVU476 1487 0098 0023 movs r3, #0 1488 009a 84F84230 strb r3, [r4, #66] 7100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1489 .loc 1 7100 9 is_stmt 1 view .LVU477 7100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1490 .loc 1 7100 9 view .LVU478 1491 009e 84F84030 strb r3, [r4, #64] 7100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1492 .loc 1 7100 9 view .LVU479 7102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1493 .loc 1 7102 9 view .LVU480 1494 .LVL117: 7102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1495 .loc 1 7102 16 is_stmt 0 view .LVU481 1496 00a2 0125 movs r5, #1 1497 00a4 B4E7 b .L115 1498 .LVL118: 1499 .L119: 7125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1500 .loc 1 7125 3 is_stmt 1 view .LVU482 7126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1501 .loc 1 7126 1 is_stmt 0 view .LVU483 1502 00a6 2846 mov r0, r5 1503 00a8 F8BD pop {r3, r4, r5, r6, r7, pc} 7126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1504 .loc 1 7126 1 view .LVU484 1505 .cfi_endproc 1506 .LFE404: 1508 .section .text.HAL_I2C_MspInit,"ax",%progbits 1509 .align 1 1510 .weak HAL_I2C_MspInit 1511 .syntax unified 1512 .thumb 1513 .thumb_func 1515 HAL_I2C_MspInit: 1516 .LVL119: 1517 .LFB331: 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/ccDmmuIk.s page 165 1518 .loc 1 697 1 is_stmt 1 view -0 1519 .cfi_startproc 1520 @ args = 0, pretend = 0, frame = 0 1521 @ frame_needed = 0, uses_anonymous_args = 0 1522 @ link register save eliminated. 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1523 .loc 1 699 3 view .LVU486 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1524 .loc 1 704 1 is_stmt 0 view .LVU487 1525 0000 7047 bx lr 1526 .cfi_endproc 1527 .LFE331: 1529 .section .text.HAL_I2C_Init,"ax",%progbits 1530 .align 1 1531 .global HAL_I2C_Init 1532 .syntax unified 1533 .thumb 1534 .thumb_func 1536 HAL_I2C_Init: 1537 .LVL120: 1538 .LFB329: 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1539 .loc 1 536 1 is_stmt 1 view -0 1540 .cfi_startproc 1541 @ args = 0, pretend = 0, frame = 0 1542 @ frame_needed = 0, uses_anonymous_args = 0 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1543 .loc 1 538 3 view .LVU489 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1544 .loc 1 538 6 is_stmt 0 view .LVU490 1545 0000 0028 cmp r0, #0 1546 0002 5FD0 beq .L131 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1547 .loc 1 536 1 view .LVU491 1548 0004 10B5 push {r4, lr} 1549 .LCFI15: 1550 .cfi_def_cfa_offset 8 1551 .cfi_offset 4, -8 1552 .cfi_offset 14, -4 1553 0006 0446 mov r4, r0 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1554 .loc 1 544 3 is_stmt 1 view .LVU492 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1555 .loc 1 545 3 view .LVU493 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1556 .loc 1 546 3 view .LVU494 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1557 .loc 1 547 3 view .LVU495 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1558 .loc 1 548 3 view .LVU496 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1559 .loc 1 549 3 view .LVU497 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1560 .loc 1 550 3 view .LVU498 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1561 .loc 1 551 3 view .LVU499 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 166 1562 .loc 1 553 3 view .LVU500 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1563 .loc 1 553 11 is_stmt 0 view .LVU501 1564 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1565 .loc 1 553 6 view .LVU502 1566 000c 002B cmp r3, #0 1567 000e 48D0 beq .L136 1568 .LVL121: 1569 .L126: 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1570 .loc 1 584 3 is_stmt 1 view .LVU503 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1571 .loc 1 584 15 is_stmt 0 view .LVU504 1572 0010 2423 movs r3, #36 1573 0012 84F84130 strb r3, [r4, #65] 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1574 .loc 1 587 3 is_stmt 1 view .LVU505 1575 0016 2268 ldr r2, [r4] 1576 0018 1368 ldr r3, [r2] 1577 001a 23F00103 bic r3, r3, #1 1578 001e 1360 str r3, [r2] 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1579 .loc 1 591 3 view .LVU506 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1580 .loc 1 591 39 is_stmt 0 view .LVU507 1581 0020 6368 ldr r3, [r4, #4] 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1582 .loc 1 591 7 view .LVU508 1583 0022 2268 ldr r2, [r4] 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1584 .loc 1 591 47 view .LVU509 1585 0024 23F07063 bic r3, r3, #251658240 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1586 .loc 1 591 27 view .LVU510 1587 0028 1361 str r3, [r2, #16] 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1588 .loc 1 595 3 is_stmt 1 view .LVU511 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1589 .loc 1 595 7 is_stmt 0 view .LVU512 1590 002a 2268 ldr r2, [r4] 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1591 .loc 1 595 17 view .LVU513 1592 002c 9368 ldr r3, [r2, #8] 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1593 .loc 1 595 24 view .LVU514 1594 002e 23F40043 bic r3, r3, #32768 1595 0032 9360 str r3, [r2, #8] 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1596 .loc 1 598 3 is_stmt 1 view .LVU515 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1597 .loc 1 598 17 is_stmt 0 view .LVU516 1598 0034 E368 ldr r3, [r4, #12] 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1599 .loc 1 598 6 view .LVU517 1600 0036 012B cmp r3, #1 1601 0038 38D0 beq .L137 ARM GAS /tmp/ccDmmuIk.s page 167 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1602 .loc 1 604 5 is_stmt 1 view .LVU518 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1603 .loc 1 604 75 is_stmt 0 view .LVU519 1604 003a A368 ldr r3, [r4, #8] 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1605 .loc 1 604 9 view .LVU520 1606 003c 2268 ldr r2, [r4] 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1607 .loc 1 604 63 view .LVU521 1608 003e 43F40443 orr r3, r3, #33792 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1609 .loc 1 604 26 view .LVU522 1610 0042 9360 str r3, [r2, #8] 1611 .L128: 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1612 .loc 1 609 3 is_stmt 1 view .LVU523 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1613 .loc 1 609 17 is_stmt 0 view .LVU524 1614 0044 E368 ldr r3, [r4, #12] 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1615 .loc 1 609 6 view .LVU525 1616 0046 022B cmp r3, #2 1617 0048 36D0 beq .L138 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1618 .loc 1 616 5 is_stmt 1 view .LVU526 1619 004a 2268 ldr r2, [r4] 1620 004c 5368 ldr r3, [r2, #4] 1621 004e 23F40063 bic r3, r3, #2048 1622 0052 5360 str r3, [r2, #4] 1623 .L130: 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1624 .loc 1 619 3 view .LVU527 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1625 .loc 1 619 7 is_stmt 0 view .LVU528 1626 0054 2268 ldr r2, [r4] 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1627 .loc 1 619 17 view .LVU529 1628 0056 5368 ldr r3, [r2, #4] 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1629 .loc 1 619 23 view .LVU530 1630 0058 43F00073 orr r3, r3, #33554432 1631 005c 43F40043 orr r3, r3, #32768 1632 0060 5360 str r3, [r2, #4] 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1633 .loc 1 623 3 is_stmt 1 view .LVU531 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1634 .loc 1 623 7 is_stmt 0 view .LVU532 1635 0062 2268 ldr r2, [r4] 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1636 .loc 1 623 17 view .LVU533 1637 0064 D368 ldr r3, [r2, #12] 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1638 .loc 1 623 24 view .LVU534 1639 0066 23F40043 bic r3, r3, #32768 1640 006a D360 str r3, [r2, #12] 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); ARM GAS /tmp/ccDmmuIk.s page 168 1641 .loc 1 626 3 is_stmt 1 view .LVU535 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1642 .loc 1 626 37 is_stmt 0 view .LVU536 1643 006c 2369 ldr r3, [r4, #16] 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1644 .loc 1 626 66 view .LVU537 1645 006e 6269 ldr r2, [r4, #20] 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1646 .loc 1 626 54 view .LVU538 1647 0070 1343 orrs r3, r3, r2 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1648 .loc 1 627 38 view .LVU539 1649 0072 A169 ldr r1, [r4, #24] 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1650 .loc 1 626 7 view .LVU540 1651 0074 2268 ldr r2, [r4] 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1652 .loc 1 626 79 view .LVU541 1653 0076 43EA0123 orr r3, r3, r1, lsl #8 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1654 .loc 1 626 24 view .LVU542 1655 007a D360 str r3, [r2, #12] 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1656 .loc 1 631 3 is_stmt 1 view .LVU543 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1657 .loc 1 631 36 is_stmt 0 view .LVU544 1658 007c E369 ldr r3, [r4, #28] 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1659 .loc 1 631 65 view .LVU545 1660 007e 216A ldr r1, [r4, #32] 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1661 .loc 1 631 7 view .LVU546 1662 0080 2268 ldr r2, [r4] 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1663 .loc 1 631 53 view .LVU547 1664 0082 0B43 orrs r3, r3, r1 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1665 .loc 1 631 23 view .LVU548 1666 0084 1360 str r3, [r2] 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1667 .loc 1 634 3 is_stmt 1 view .LVU549 1668 0086 2268 ldr r2, [r4] 1669 0088 1368 ldr r3, [r2] 1670 008a 43F00103 orr r3, r3, #1 1671 008e 1360 str r3, [r2] 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1672 .loc 1 636 3 view .LVU550 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1673 .loc 1 636 19 is_stmt 0 view .LVU551 1674 0090 0020 movs r0, #0 1675 0092 6064 str r0, [r4, #68] 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1676 .loc 1 637 3 is_stmt 1 view .LVU552 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1677 .loc 1 637 15 is_stmt 0 view .LVU553 1678 0094 2023 movs r3, #32 1679 0096 84F84130 strb r3, [r4, #65] ARM GAS /tmp/ccDmmuIk.s page 169 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1680 .loc 1 638 3 is_stmt 1 view .LVU554 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1681 .loc 1 638 23 is_stmt 0 view .LVU555 1682 009a 2063 str r0, [r4, #48] 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1683 .loc 1 639 3 is_stmt 1 view .LVU556 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1684 .loc 1 639 14 is_stmt 0 view .LVU557 1685 009c 84F84200 strb r0, [r4, #66] 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1686 .loc 1 641 3 is_stmt 1 view .LVU558 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1687 .loc 1 642 1 is_stmt 0 view .LVU559 1688 00a0 10BD pop {r4, pc} 1689 .LVL122: 1690 .L136: 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1691 .loc 1 556 5 is_stmt 1 view .LVU560 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1692 .loc 1 556 16 is_stmt 0 view .LVU561 1693 00a2 80F84030 strb r3, [r0, #64] 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1694 .loc 1 580 5 is_stmt 1 view .LVU562 1695 00a6 FFF7FEFF bl HAL_I2C_MspInit 1696 .LVL123: 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1697 .loc 1 580 5 is_stmt 0 view .LVU563 1698 00aa B1E7 b .L126 1699 .L137: 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1700 .loc 1 600 5 is_stmt 1 view .LVU564 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1701 .loc 1 600 56 is_stmt 0 view .LVU565 1702 00ac A368 ldr r3, [r4, #8] 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1703 .loc 1 600 9 view .LVU566 1704 00ae 2268 ldr r2, [r4] 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1705 .loc 1 600 44 view .LVU567 1706 00b0 43F40043 orr r3, r3, #32768 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1707 .loc 1 600 26 view .LVU568 1708 00b4 9360 str r3, [r2, #8] 1709 00b6 C5E7 b .L128 1710 .L138: 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1711 .loc 1 611 5 is_stmt 1 view .LVU569 1712 00b8 2268 ldr r2, [r4] 1713 00ba 5368 ldr r3, [r2, #4] 1714 00bc 43F40063 orr r3, r3, #2048 1715 00c0 5360 str r3, [r2, #4] 1716 00c2 C7E7 b .L130 1717 .LVL124: 1718 .L131: 1719 .LCFI16: 1720 .cfi_def_cfa_offset 0 ARM GAS /tmp/ccDmmuIk.s page 170 1721 .cfi_restore 4 1722 .cfi_restore 14 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1723 .loc 1 540 12 is_stmt 0 view .LVU570 1724 00c4 0120 movs r0, #1 1725 .LVL125: 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1726 .loc 1 642 1 view .LVU571 1727 00c6 7047 bx lr 1728 .cfi_endproc 1729 .LFE329: 1731 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1732 .align 1 1733 .weak HAL_I2C_MspDeInit 1734 .syntax unified 1735 .thumb 1736 .thumb_func 1738 HAL_I2C_MspDeInit: 1739 .LVL126: 1740 .LFB332: 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1741 .loc 1 713 1 is_stmt 1 view -0 1742 .cfi_startproc 1743 @ args = 0, pretend = 0, frame = 0 1744 @ frame_needed = 0, uses_anonymous_args = 0 1745 @ link register save eliminated. 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1746 .loc 1 715 3 view .LVU573 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1747 .loc 1 720 1 is_stmt 0 view .LVU574 1748 0000 7047 bx lr 1749 .cfi_endproc 1750 .LFE332: 1752 .section .text.HAL_I2C_DeInit,"ax",%progbits 1753 .align 1 1754 .global HAL_I2C_DeInit 1755 .syntax unified 1756 .thumb 1757 .thumb_func 1759 HAL_I2C_DeInit: 1760 .LVL127: 1761 .LFB330: 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1762 .loc 1 651 1 is_stmt 1 view -0 1763 .cfi_startproc 1764 @ args = 0, pretend = 0, frame = 0 1765 @ frame_needed = 0, uses_anonymous_args = 0 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1766 .loc 1 653 3 view .LVU576 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1767 .loc 1 653 6 is_stmt 0 view .LVU577 1768 0000 A8B1 cbz r0, .L142 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1769 .loc 1 651 1 view .LVU578 1770 0002 10B5 push {r4, lr} 1771 .LCFI17: 1772 .cfi_def_cfa_offset 8 ARM GAS /tmp/ccDmmuIk.s page 171 1773 .cfi_offset 4, -8 1774 .cfi_offset 14, -4 1775 0004 0446 mov r4, r0 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1776 .loc 1 659 3 is_stmt 1 view .LVU579 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1777 .loc 1 661 3 view .LVU580 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1778 .loc 1 661 15 is_stmt 0 view .LVU581 1779 0006 2423 movs r3, #36 1780 0008 80F84130 strb r3, [r0, #65] 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1781 .loc 1 664 3 is_stmt 1 view .LVU582 1782 000c 0268 ldr r2, [r0] 1783 000e 1368 ldr r3, [r2] 1784 0010 23F00103 bic r3, r3, #1 1785 0014 1360 str r3, [r2] 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1786 .loc 1 676 3 view .LVU583 1787 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1788 .LVL128: 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1789 .loc 1 679 3 view .LVU584 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1790 .loc 1 679 19 is_stmt 0 view .LVU585 1791 001a 0020 movs r0, #0 1792 001c 6064 str r0, [r4, #68] 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1793 .loc 1 680 3 is_stmt 1 view .LVU586 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1794 .loc 1 680 15 is_stmt 0 view .LVU587 1795 001e 84F84100 strb r0, [r4, #65] 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1796 .loc 1 681 3 is_stmt 1 view .LVU588 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1797 .loc 1 681 23 is_stmt 0 view .LVU589 1798 0022 2063 str r0, [r4, #48] 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1799 .loc 1 682 3 is_stmt 1 view .LVU590 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1800 .loc 1 682 14 is_stmt 0 view .LVU591 1801 0024 84F84200 strb r0, [r4, #66] 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1802 .loc 1 685 3 is_stmt 1 view .LVU592 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1803 .loc 1 685 3 view .LVU593 1804 0028 84F84000 strb r0, [r4, #64] 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1805 .loc 1 685 3 view .LVU594 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1806 .loc 1 687 3 view .LVU595 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1807 .loc 1 688 1 is_stmt 0 view .LVU596 1808 002c 10BD pop {r4, pc} 1809 .LVL129: 1810 .L142: 1811 .LCFI18: ARM GAS /tmp/ccDmmuIk.s page 172 1812 .cfi_def_cfa_offset 0 1813 .cfi_restore 4 1814 .cfi_restore 14 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1815 .loc 1 655 12 view .LVU597 1816 002e 0120 movs r0, #1 1817 .LVL130: 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1818 .loc 1 688 1 view .LVU598 1819 0030 7047 bx lr 1820 .cfi_endproc 1821 .LFE330: 1823 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1824 .align 1 1825 .global HAL_I2C_Master_Transmit 1826 .syntax unified 1827 .thumb 1828 .thumb_func 1830 HAL_I2C_Master_Transmit: 1831 .LVL131: 1832 .LFB333: 1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1833 .loc 1 1121 1 is_stmt 1 view -0 1834 .cfi_startproc 1835 @ args = 4, pretend = 0, frame = 0 1836 @ frame_needed = 0, uses_anonymous_args = 0 1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 1837 .loc 1 1121 1 is_stmt 0 view .LVU600 1838 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1839 .LCFI19: 1840 .cfi_def_cfa_offset 32 1841 .cfi_offset 4, -32 1842 .cfi_offset 5, -28 1843 .cfi_offset 6, -24 1844 .cfi_offset 7, -20 1845 .cfi_offset 8, -16 1846 .cfi_offset 9, -12 1847 .cfi_offset 10, -8 1848 .cfi_offset 14, -4 1849 0004 82B0 sub sp, sp, #8 1850 .LCFI20: 1851 .cfi_def_cfa_offset 40 1852 0006 0F46 mov r7, r1 1853 0008 0A9E ldr r6, [sp, #40] 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 1854 .loc 1 1122 3 is_stmt 1 view .LVU601 1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1855 .loc 1 1123 3 view .LVU602 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1856 .loc 1 1125 3 view .LVU603 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1857 .loc 1 1125 11 is_stmt 0 view .LVU604 1858 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1859 .LVL132: 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1860 .loc 1 1125 6 view .LVU605 1861 000e 2029 cmp r1, #32 ARM GAS /tmp/ccDmmuIk.s page 173 1862 0010 40F0B780 bne .L157 1863 0014 0446 mov r4, r0 1864 0016 9146 mov r9, r2 1865 0018 9846 mov r8, r3 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1866 .loc 1 1128 5 is_stmt 1 view .LVU606 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1867 .loc 1 1128 5 view .LVU607 1868 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1869 .LVL133: 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1870 .loc 1 1128 5 is_stmt 0 view .LVU608 1871 001e 012B cmp r3, #1 1872 0020 00F0B380 beq .L158 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1873 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU609 1874 0024 4FF0010A mov r10, #1 1875 0028 80F840A0 strb r10, [r0, #64] 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1876 .loc 1 1128 5 view .LVU610 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1877 .loc 1 1131 5 view .LVU611 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1878 .loc 1 1131 17 is_stmt 0 view .LVU612 1879 002c FFF7FEFF bl HAL_GetTick 1880 .LVL134: 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1881 .loc 1 1131 17 view .LVU613 1882 0030 0546 mov r5, r0 1883 .LVL135: 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1884 .loc 1 1133 5 is_stmt 1 view .LVU614 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1885 .loc 1 1133 9 is_stmt 0 view .LVU615 1886 0032 0090 str r0, [sp] 1887 0034 1923 movs r3, #25 1888 0036 5246 mov r2, r10 1889 0038 4FF40041 mov r1, #32768 1890 003c 2046 mov r0, r4 1891 .LVL136: 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1892 .loc 1 1133 9 view .LVU616 1893 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1894 .LVL137: 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1895 .loc 1 1133 8 discriminator 1 view .LVU617 1896 0042 0028 cmp r0, #0 1897 0044 40F0A380 bne .L159 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1898 .loc 1 1138 5 is_stmt 1 view .LVU618 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1899 .loc 1 1138 21 is_stmt 0 view .LVU619 1900 0048 2123 movs r3, #33 1901 004a 84F84130 strb r3, [r4, #65] 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1902 .loc 1 1139 5 is_stmt 1 view .LVU620 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccDmmuIk.s page 174 1903 .loc 1 1139 21 is_stmt 0 view .LVU621 1904 004e 1023 movs r3, #16 1905 0050 84F84230 strb r3, [r4, #66] 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1906 .loc 1 1140 5 is_stmt 1 view .LVU622 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1907 .loc 1 1140 21 is_stmt 0 view .LVU623 1908 0054 0023 movs r3, #0 1909 0056 6364 str r3, [r4, #68] 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1910 .loc 1 1143 5 is_stmt 1 view .LVU624 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1911 .loc 1 1143 21 is_stmt 0 view .LVU625 1912 0058 C4F82490 str r9, [r4, #36] 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1913 .loc 1 1144 5 is_stmt 1 view .LVU626 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1914 .loc 1 1144 21 is_stmt 0 view .LVU627 1915 005c A4F82A80 strh r8, [r4, #42] @ movhi 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1916 .loc 1 1145 5 is_stmt 1 view .LVU628 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1917 .loc 1 1145 21 is_stmt 0 view .LVU629 1918 0060 6363 str r3, [r4, #52] 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1919 .loc 1 1147 5 is_stmt 1 view .LVU630 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1920 .loc 1 1147 13 is_stmt 0 view .LVU631 1921 0062 638D ldrh r3, [r4, #42] 1922 0064 9BB2 uxth r3, r3 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1923 .loc 1 1147 8 view .LVU632 1924 0066 FF2B cmp r3, #255 1925 0068 1ED9 bls .L149 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1926 .loc 1 1149 7 is_stmt 1 view .LVU633 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1927 .loc 1 1149 22 is_stmt 0 view .LVU634 1928 006a FF23 movs r3, #255 1929 006c 2385 strh r3, [r4, #40] @ movhi 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1930 .loc 1 1150 7 is_stmt 1 view .LVU635 1931 .LVL138: 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1932 .loc 1 1150 16 is_stmt 0 view .LVU636 1933 006e 4FF08073 mov r3, #16777216 1934 .LVL139: 1935 .L150: 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1936 .loc 1 1158 5 is_stmt 1 view .LVU637 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1937 .loc 1 1158 13 is_stmt 0 view .LVU638 1938 0072 228D ldrh r2, [r4, #40] 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1939 .loc 1 1158 8 view .LVU639 1940 0074 EAB1 cbz r2, .L151 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 175 1941 .loc 1 1162 7 is_stmt 1 view .LVU640 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1942 .loc 1 1162 11 is_stmt 0 view .LVU641 1943 0076 2268 ldr r2, [r4] 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1944 .loc 1 1162 30 view .LVU642 1945 0078 99F80010 ldrb r1, [r9] @ zero_extendqisi2 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1946 .loc 1 1162 28 view .LVU643 1947 007c 9162 str r1, [r2, #40] 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1948 .loc 1 1165 7 is_stmt 1 view .LVU644 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1949 .loc 1 1165 11 is_stmt 0 view .LVU645 1950 007e 626A ldr r2, [r4, #36] 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1951 .loc 1 1165 21 view .LVU646 1952 0080 0132 adds r2, r2, #1 1953 0082 6262 str r2, [r4, #36] 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1954 .loc 1 1167 7 is_stmt 1 view .LVU647 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1955 .loc 1 1167 11 is_stmt 0 view .LVU648 1956 0084 628D ldrh r2, [r4, #42] 1957 0086 92B2 uxth r2, r2 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1958 .loc 1 1167 22 view .LVU649 1959 0088 013A subs r2, r2, #1 1960 008a 92B2 uxth r2, r2 1961 008c 6285 strh r2, [r4, #42] @ movhi 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1962 .loc 1 1168 7 is_stmt 1 view .LVU650 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1963 .loc 1 1168 11 is_stmt 0 view .LVU651 1964 008e 228D ldrh r2, [r4, #40] 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1965 .loc 1 1168 21 view .LVU652 1966 0090 013A subs r2, r2, #1 1967 0092 92B2 uxth r2, r2 1968 0094 2285 strh r2, [r4, #40] @ movhi 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1969 .loc 1 1172 7 is_stmt 1 view .LVU653 1970 0096 0132 adds r2, r2, #1 1971 0098 4149 ldr r1, .L165 1972 009a 0091 str r1, [sp] 1973 009c D2B2 uxtb r2, r2 1974 009e 3946 mov r1, r7 1975 00a0 2046 mov r0, r4 1976 00a2 FFF7FEFF bl I2C_TransferConfig 1977 .LVL140: 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1978 .loc 1 1172 7 is_stmt 0 view .LVU654 1979 00a6 18E0 b .L155 1980 .LVL141: 1981 .L149: 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1982 .loc 1 1154 7 is_stmt 1 view .LVU655 ARM GAS /tmp/ccDmmuIk.s page 176 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1983 .loc 1 1154 28 is_stmt 0 view .LVU656 1984 00a8 638D ldrh r3, [r4, #42] 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1985 .loc 1 1154 22 view .LVU657 1986 00aa 2385 strh r3, [r4, #40] @ movhi 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1987 .loc 1 1155 7 is_stmt 1 view .LVU658 1988 .LVL142: 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1989 .loc 1 1155 16 is_stmt 0 view .LVU659 1990 00ac 4FF00073 mov r3, #33554432 1991 00b0 DFE7 b .L150 1992 .LVL143: 1993 .L151: 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1994 .loc 1 1179 7 is_stmt 1 view .LVU660 1995 00b2 3B49 ldr r1, .L165 1996 00b4 0091 str r1, [sp] 1997 00b6 D2B2 uxtb r2, r2 1998 00b8 3946 mov r1, r7 1999 00ba 2046 mov r0, r4 2000 00bc FFF7FEFF bl I2C_TransferConfig 2001 .LVL144: 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2002 .loc 1 1179 7 is_stmt 0 view .LVU661 2003 00c0 0BE0 b .L155 2004 .L154: 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2005 .loc 1 1215 11 is_stmt 1 view .LVU662 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2006 .loc 1 1215 32 is_stmt 0 view .LVU663 2007 00c2 628D ldrh r2, [r4, #42] 2008 00c4 92B2 uxth r2, r2 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2009 .loc 1 1215 26 view .LVU664 2010 00c6 2285 strh r2, [r4, #40] @ movhi 1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2011 .loc 1 1216 11 is_stmt 1 view .LVU665 2012 00c8 0023 movs r3, #0 2013 00ca 0093 str r3, [sp] 2014 00cc 4FF00073 mov r3, #33554432 2015 00d0 D2B2 uxtb r2, r2 2016 00d2 3946 mov r1, r7 2017 00d4 2046 mov r0, r4 2018 00d6 FFF7FEFF bl I2C_TransferConfig 2019 .LVL145: 2020 .L155: 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2021 .loc 1 1183 28 view .LVU666 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2022 .loc 1 1183 16 is_stmt 0 view .LVU667 2023 00da 638D ldrh r3, [r4, #42] 2024 00dc 9BB2 uxth r3, r3 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2025 .loc 1 1183 28 view .LVU668 2026 00de 002B cmp r3, #0 ARM GAS /tmp/ccDmmuIk.s page 177 2027 00e0 33D0 beq .L164 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2028 .loc 1 1186 7 is_stmt 1 view .LVU669 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2029 .loc 1 1186 11 is_stmt 0 view .LVU670 2030 00e2 2A46 mov r2, r5 2031 00e4 3146 mov r1, r6 2032 00e6 2046 mov r0, r4 2033 00e8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2034 .LVL146: 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2035 .loc 1 1186 10 discriminator 1 view .LVU671 2036 00ec 0028 cmp r0, #0 2037 00ee 50D1 bne .L160 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2038 .loc 1 1191 7 is_stmt 1 view .LVU672 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2039 .loc 1 1191 35 is_stmt 0 view .LVU673 2040 00f0 626A ldr r2, [r4, #36] 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2041 .loc 1 1191 11 view .LVU674 2042 00f2 2368 ldr r3, [r4] 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2043 .loc 1 1191 30 view .LVU675 2044 00f4 1278 ldrb r2, [r2] @ zero_extendqisi2 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2045 .loc 1 1191 28 view .LVU676 2046 00f6 9A62 str r2, [r3, #40] 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2047 .loc 1 1194 7 is_stmt 1 view .LVU677 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2048 .loc 1 1194 11 is_stmt 0 view .LVU678 2049 00f8 636A ldr r3, [r4, #36] 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2050 .loc 1 1194 21 view .LVU679 2051 00fa 0133 adds r3, r3, #1 2052 00fc 6362 str r3, [r4, #36] 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2053 .loc 1 1196 7 is_stmt 1 view .LVU680 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2054 .loc 1 1196 11 is_stmt 0 view .LVU681 2055 00fe 638D ldrh r3, [r4, #42] 2056 0100 9BB2 uxth r3, r3 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2057 .loc 1 1196 22 view .LVU682 2058 0102 013B subs r3, r3, #1 2059 0104 9BB2 uxth r3, r3 2060 0106 6385 strh r3, [r4, #42] @ movhi 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2061 .loc 1 1197 7 is_stmt 1 view .LVU683 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2062 .loc 1 1197 11 is_stmt 0 view .LVU684 2063 0108 238D ldrh r3, [r4, #40] 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2064 .loc 1 1197 21 view .LVU685 2065 010a 013B subs r3, r3, #1 2066 010c 9BB2 uxth r3, r3 ARM GAS /tmp/ccDmmuIk.s page 178 2067 010e 2385 strh r3, [r4, #40] @ movhi 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2068 .loc 1 1199 7 is_stmt 1 view .LVU686 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2069 .loc 1 1199 16 is_stmt 0 view .LVU687 2070 0110 628D ldrh r2, [r4, #42] 2071 0112 92B2 uxth r2, r2 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2072 .loc 1 1199 10 view .LVU688 2073 0114 002A cmp r2, #0 2074 0116 E0D0 beq .L155 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2075 .loc 1 1199 35 discriminator 1 view .LVU689 2076 0118 002B cmp r3, #0 2077 011a DED1 bne .L155 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2078 .loc 1 1202 9 is_stmt 1 view .LVU690 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2079 .loc 1 1202 13 is_stmt 0 view .LVU691 2080 011c 0095 str r5, [sp] 2081 011e 3346 mov r3, r6 2082 0120 0022 movs r2, #0 2083 0122 8021 movs r1, #128 2084 0124 2046 mov r0, r4 2085 0126 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2086 .LVL147: 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2087 .loc 1 1202 12 discriminator 1 view .LVU692 2088 012a A0BB cbnz r0, .L161 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2089 .loc 1 1207 9 is_stmt 1 view .LVU693 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2090 .loc 1 1207 17 is_stmt 0 view .LVU694 2091 012c 638D ldrh r3, [r4, #42] 2092 012e 9BB2 uxth r3, r3 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2093 .loc 1 1207 12 view .LVU695 2094 0130 FF2B cmp r3, #255 2095 0132 C6D9 bls .L154 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2096 .loc 1 1209 11 is_stmt 1 view .LVU696 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2097 .loc 1 1209 26 is_stmt 0 view .LVU697 2098 0134 FF22 movs r2, #255 2099 0136 2285 strh r2, [r4, #40] @ movhi 1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2100 .loc 1 1210 11 is_stmt 1 view .LVU698 2101 0138 0023 movs r3, #0 2102 013a 0093 str r3, [sp] 2103 013c 4FF08073 mov r3, #16777216 2104 0140 3946 mov r1, r7 2105 0142 2046 mov r0, r4 2106 0144 FFF7FEFF bl I2C_TransferConfig 2107 .LVL148: 2108 0148 C7E7 b .L155 2109 .L164: 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 179 2110 .loc 1 1224 5 view .LVU699 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2111 .loc 1 1224 9 is_stmt 0 view .LVU700 2112 014a 2A46 mov r2, r5 2113 014c 3146 mov r1, r6 2114 014e 2046 mov r0, r4 2115 0150 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2116 .LVL149: 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2117 .loc 1 1224 8 discriminator 1 view .LVU701 2118 0154 08BB cbnz r0, .L162 1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2119 .loc 1 1230 5 is_stmt 1 view .LVU702 2120 0156 2368 ldr r3, [r4] 2121 0158 2022 movs r2, #32 2122 015a DA61 str r2, [r3, #28] 1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2123 .loc 1 1233 5 view .LVU703 2124 015c 2168 ldr r1, [r4] 2125 015e 4B68 ldr r3, [r1, #4] 2126 0160 23F0FF73 bic r3, r3, #33423360 2127 0164 23F48B33 bic r3, r3, #71168 2128 0168 23F4FF73 bic r3, r3, #510 2129 016c 23F00103 bic r3, r3, #1 2130 0170 4B60 str r3, [r1, #4] 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2131 .loc 1 1235 5 view .LVU704 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2132 .loc 1 1235 17 is_stmt 0 view .LVU705 2133 0172 84F84120 strb r2, [r4, #65] 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2134 .loc 1 1236 5 is_stmt 1 view .LVU706 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2135 .loc 1 1236 17 is_stmt 0 view .LVU707 2136 0176 0023 movs r3, #0 2137 0178 84F84230 strb r3, [r4, #66] 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2138 .loc 1 1239 5 is_stmt 1 view .LVU708 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2139 .loc 1 1239 5 view .LVU709 2140 017c 84F84030 strb r3, [r4, #64] 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2141 .loc 1 1239 5 view .LVU710 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2142 .loc 1 1241 5 view .LVU711 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2143 .loc 1 1241 12 is_stmt 0 view .LVU712 2144 0180 00E0 b .L148 2145 .LVL150: 2146 .L157: 1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2147 .loc 1 1245 12 view .LVU713 2148 0182 0220 movs r0, #2 2149 .LVL151: 2150 .L148: 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2151 .loc 1 1247 1 view .LVU714 ARM GAS /tmp/ccDmmuIk.s page 180 2152 0184 02B0 add sp, sp, #8 2153 .LCFI21: 2154 .cfi_remember_state 2155 .cfi_def_cfa_offset 32 2156 @ sp needed 2157 0186 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2158 .LVL152: 2159 .L158: 2160 .LCFI22: 2161 .cfi_restore_state 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2162 .loc 1 1128 5 discriminator 1 view .LVU715 2163 018a 0220 movs r0, #2 2164 .LVL153: 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2165 .loc 1 1128 5 discriminator 1 view .LVU716 2166 018c FAE7 b .L148 2167 .LVL154: 2168 .L159: 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2169 .loc 1 1135 14 view .LVU717 2170 018e 0120 movs r0, #1 2171 0190 F8E7 b .L148 2172 .LVL155: 2173 .L160: 1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2174 .loc 1 1188 16 view .LVU718 2175 0192 0120 movs r0, #1 2176 0194 F6E7 b .L148 2177 .L161: 1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2178 .loc 1 1204 18 view .LVU719 2179 0196 0120 movs r0, #1 2180 0198 F4E7 b .L148 2181 .L162: 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2182 .loc 1 1226 14 view .LVU720 2183 019a 0120 movs r0, #1 2184 019c F2E7 b .L148 2185 .L166: 2186 019e 00BF .align 2 2187 .L165: 2188 01a0 00200080 .word -2147475456 2189 .cfi_endproc 2190 .LFE333: 2192 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2193 .align 1 2194 .global HAL_I2C_Master_Receive 2195 .syntax unified 2196 .thumb 2197 .thumb_func 2199 HAL_I2C_Master_Receive: 2200 .LVL156: 2201 .LFB334: 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2202 .loc 1 1262 1 is_stmt 1 view -0 2203 .cfi_startproc ARM GAS /tmp/ccDmmuIk.s page 181 2204 @ args = 4, pretend = 0, frame = 0 2205 @ frame_needed = 0, uses_anonymous_args = 0 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2206 .loc 1 1262 1 is_stmt 0 view .LVU722 2207 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2208 .LCFI23: 2209 .cfi_def_cfa_offset 32 2210 .cfi_offset 4, -32 2211 .cfi_offset 5, -28 2212 .cfi_offset 6, -24 2213 .cfi_offset 7, -20 2214 .cfi_offset 8, -16 2215 .cfi_offset 9, -12 2216 .cfi_offset 10, -8 2217 .cfi_offset 14, -4 2218 0004 82B0 sub sp, sp, #8 2219 .LCFI24: 2220 .cfi_def_cfa_offset 40 2221 0006 0F46 mov r7, r1 2222 0008 0A9E ldr r6, [sp, #40] 1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2223 .loc 1 1263 3 is_stmt 1 view .LVU723 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2224 .loc 1 1265 3 view .LVU724 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2225 .loc 1 1265 11 is_stmt 0 view .LVU725 2226 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 2227 .LVL157: 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2228 .loc 1 1265 6 view .LVU726 2229 000e 2029 cmp r1, #32 2230 0010 40F0A280 bne .L175 2231 0014 0446 mov r4, r0 2232 0016 9146 mov r9, r2 2233 0018 9846 mov r8, r3 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2234 .loc 1 1268 5 is_stmt 1 view .LVU727 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2235 .loc 1 1268 5 view .LVU728 2236 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2237 .LVL158: 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2238 .loc 1 1268 5 is_stmt 0 view .LVU729 2239 001e 012B cmp r3, #1 2240 0020 00F09E80 beq .L176 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2241 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU730 2242 0024 4FF0010A mov r10, #1 2243 0028 80F840A0 strb r10, [r0, #64] 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2244 .loc 1 1268 5 view .LVU731 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2245 .loc 1 1271 5 view .LVU732 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2246 .loc 1 1271 17 is_stmt 0 view .LVU733 2247 002c FFF7FEFF bl HAL_GetTick 2248 .LVL159: ARM GAS /tmp/ccDmmuIk.s page 182 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2249 .loc 1 1271 17 view .LVU734 2250 0030 0546 mov r5, r0 2251 .LVL160: 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2252 .loc 1 1273 5 is_stmt 1 view .LVU735 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2253 .loc 1 1273 9 is_stmt 0 view .LVU736 2254 0032 0090 str r0, [sp] 2255 0034 1923 movs r3, #25 2256 0036 5246 mov r2, r10 2257 0038 4FF40041 mov r1, #32768 2258 003c 2046 mov r0, r4 2259 .LVL161: 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2260 .loc 1 1273 9 view .LVU737 2261 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2262 .LVL162: 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2263 .loc 1 1273 8 discriminator 1 view .LVU738 2264 0042 0028 cmp r0, #0 2265 0044 40F08E80 bne .L177 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2266 .loc 1 1278 5 is_stmt 1 view .LVU739 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2267 .loc 1 1278 21 is_stmt 0 view .LVU740 2268 0048 2223 movs r3, #34 2269 004a 84F84130 strb r3, [r4, #65] 1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2270 .loc 1 1279 5 is_stmt 1 view .LVU741 1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2271 .loc 1 1279 21 is_stmt 0 view .LVU742 2272 004e 1023 movs r3, #16 2273 0050 84F84230 strb r3, [r4, #66] 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2274 .loc 1 1280 5 is_stmt 1 view .LVU743 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2275 .loc 1 1280 21 is_stmt 0 view .LVU744 2276 0054 0023 movs r3, #0 2277 0056 6364 str r3, [r4, #68] 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2278 .loc 1 1283 5 is_stmt 1 view .LVU745 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2279 .loc 1 1283 21 is_stmt 0 view .LVU746 2280 0058 C4F82490 str r9, [r4, #36] 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2281 .loc 1 1284 5 is_stmt 1 view .LVU747 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2282 .loc 1 1284 21 is_stmt 0 view .LVU748 2283 005c A4F82A80 strh r8, [r4, #42] @ movhi 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2284 .loc 1 1285 5 is_stmt 1 view .LVU749 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2285 .loc 1 1285 21 is_stmt 0 view .LVU750 2286 0060 6363 str r3, [r4, #52] 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2287 .loc 1 1289 5 is_stmt 1 view .LVU751 ARM GAS /tmp/ccDmmuIk.s page 183 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2288 .loc 1 1289 13 is_stmt 0 view .LVU752 2289 0062 638D ldrh r3, [r4, #42] 2290 0064 9BB2 uxth r3, r3 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2291 .loc 1 1289 8 view .LVU753 2292 0066 FF2B cmp r3, #255 2293 0068 0AD9 bls .L169 1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2294 .loc 1 1291 7 is_stmt 1 view .LVU754 1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2295 .loc 1 1291 22 is_stmt 0 view .LVU755 2296 006a FF22 movs r2, #255 2297 006c 2285 strh r2, [r4, #40] @ movhi 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2298 .loc 1 1292 7 is_stmt 1 view .LVU756 2299 006e 414B ldr r3, .L183 2300 0070 0093 str r3, [sp] 2301 0072 4FF08073 mov r3, #16777216 2302 0076 3946 mov r1, r7 2303 0078 2046 mov r0, r4 2304 007a FFF7FEFF bl I2C_TransferConfig 2305 .LVL163: 2306 007e 18E0 b .L173 2307 .L169: 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2308 .loc 1 1297 7 view .LVU757 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2309 .loc 1 1297 28 is_stmt 0 view .LVU758 2310 0080 628D ldrh r2, [r4, #42] 2311 0082 92B2 uxth r2, r2 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2312 .loc 1 1297 22 view .LVU759 2313 0084 2285 strh r2, [r4, #40] @ movhi 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2314 .loc 1 1298 7 is_stmt 1 view .LVU760 2315 0086 3B4B ldr r3, .L183 2316 0088 0093 str r3, [sp] 2317 008a 4FF00073 mov r3, #33554432 2318 008e D2B2 uxtb r2, r2 2319 0090 3946 mov r1, r7 2320 0092 2046 mov r0, r4 2321 0094 FFF7FEFF bl I2C_TransferConfig 2322 .LVL164: 2323 0098 0BE0 b .L173 2324 .L172: 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2325 .loc 1 1335 11 view .LVU761 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2326 .loc 1 1335 32 is_stmt 0 view .LVU762 2327 009a 628D ldrh r2, [r4, #42] 2328 009c 92B2 uxth r2, r2 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2329 .loc 1 1335 26 view .LVU763 2330 009e 2285 strh r2, [r4, #40] @ movhi 1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2331 .loc 1 1336 11 is_stmt 1 view .LVU764 ARM GAS /tmp/ccDmmuIk.s page 184 2332 00a0 0023 movs r3, #0 2333 00a2 0093 str r3, [sp] 2334 00a4 4FF00073 mov r3, #33554432 2335 00a8 D2B2 uxtb r2, r2 2336 00aa 3946 mov r1, r7 2337 00ac 2046 mov r0, r4 2338 00ae FFF7FEFF bl I2C_TransferConfig 2339 .LVL165: 2340 .L173: 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2341 .loc 1 1302 28 view .LVU765 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2342 .loc 1 1302 16 is_stmt 0 view .LVU766 2343 00b2 638D ldrh r3, [r4, #42] 2344 00b4 9BB2 uxth r3, r3 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2345 .loc 1 1302 28 view .LVU767 2346 00b6 002B cmp r3, #0 2347 00b8 32D0 beq .L182 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2348 .loc 1 1305 7 is_stmt 1 view .LVU768 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2349 .loc 1 1305 11 is_stmt 0 view .LVU769 2350 00ba 2A46 mov r2, r5 2351 00bc 3146 mov r1, r6 2352 00be 2046 mov r0, r4 2353 00c0 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2354 .LVL166: 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2355 .loc 1 1305 10 discriminator 1 view .LVU770 2356 00c4 0028 cmp r0, #0 2357 00c6 4FD1 bne .L178 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2358 .loc 1 1311 7 is_stmt 1 view .LVU771 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2359 .loc 1 1311 38 is_stmt 0 view .LVU772 2360 00c8 2368 ldr r3, [r4] 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2361 .loc 1 1311 48 view .LVU773 2362 00ca 5A6A ldr r2, [r3, #36] 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2363 .loc 1 1311 12 view .LVU774 2364 00cc 636A ldr r3, [r4, #36] 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2365 .loc 1 1311 23 view .LVU775 2366 00ce 1A70 strb r2, [r3] 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2367 .loc 1 1314 7 is_stmt 1 view .LVU776 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2368 .loc 1 1314 11 is_stmt 0 view .LVU777 2369 00d0 636A ldr r3, [r4, #36] 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2370 .loc 1 1314 21 view .LVU778 2371 00d2 0133 adds r3, r3, #1 2372 00d4 6362 str r3, [r4, #36] 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2373 .loc 1 1316 7 is_stmt 1 view .LVU779 ARM GAS /tmp/ccDmmuIk.s page 185 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2374 .loc 1 1316 11 is_stmt 0 view .LVU780 2375 00d6 228D ldrh r2, [r4, #40] 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2376 .loc 1 1316 21 view .LVU781 2377 00d8 013A subs r2, r2, #1 2378 00da 92B2 uxth r2, r2 2379 00dc 2285 strh r2, [r4, #40] @ movhi 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2380 .loc 1 1317 7 is_stmt 1 view .LVU782 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2381 .loc 1 1317 11 is_stmt 0 view .LVU783 2382 00de 638D ldrh r3, [r4, #42] 2383 00e0 9BB2 uxth r3, r3 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2384 .loc 1 1317 22 view .LVU784 2385 00e2 013B subs r3, r3, #1 2386 00e4 9BB2 uxth r3, r3 2387 00e6 6385 strh r3, [r4, #42] @ movhi 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2388 .loc 1 1319 7 is_stmt 1 view .LVU785 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2389 .loc 1 1319 16 is_stmt 0 view .LVU786 2390 00e8 638D ldrh r3, [r4, #42] 2391 00ea 9BB2 uxth r3, r3 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2392 .loc 1 1319 10 view .LVU787 2393 00ec 002B cmp r3, #0 2394 00ee E0D0 beq .L173 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2395 .loc 1 1319 35 discriminator 1 view .LVU788 2396 00f0 002A cmp r2, #0 2397 00f2 DED1 bne .L173 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2398 .loc 1 1322 9 is_stmt 1 view .LVU789 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2399 .loc 1 1322 13 is_stmt 0 view .LVU790 2400 00f4 0095 str r5, [sp] 2401 00f6 3346 mov r3, r6 2402 00f8 8021 movs r1, #128 2403 00fa 2046 mov r0, r4 2404 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2405 .LVL167: 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2406 .loc 1 1322 12 discriminator 1 view .LVU791 2407 0100 A0BB cbnz r0, .L179 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2408 .loc 1 1327 9 is_stmt 1 view .LVU792 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2409 .loc 1 1327 17 is_stmt 0 view .LVU793 2410 0102 638D ldrh r3, [r4, #42] 2411 0104 9BB2 uxth r3, r3 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2412 .loc 1 1327 12 view .LVU794 2413 0106 FF2B cmp r3, #255 2414 0108 C7D9 bls .L172 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, ARM GAS /tmp/ccDmmuIk.s page 186 2415 .loc 1 1329 11 is_stmt 1 view .LVU795 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2416 .loc 1 1329 26 is_stmt 0 view .LVU796 2417 010a FF22 movs r2, #255 2418 010c 2285 strh r2, [r4, #40] @ movhi 1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2419 .loc 1 1330 11 is_stmt 1 view .LVU797 2420 010e 0023 movs r3, #0 2421 0110 0093 str r3, [sp] 2422 0112 4FF08073 mov r3, #16777216 2423 0116 3946 mov r1, r7 2424 0118 2046 mov r0, r4 2425 011a FFF7FEFF bl I2C_TransferConfig 2426 .LVL168: 2427 011e C8E7 b .L173 2428 .L182: 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2429 .loc 1 1344 5 view .LVU798 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2430 .loc 1 1344 9 is_stmt 0 view .LVU799 2431 0120 2A46 mov r2, r5 2432 0122 3146 mov r1, r6 2433 0124 2046 mov r0, r4 2434 0126 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2435 .LVL169: 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2436 .loc 1 1344 8 discriminator 1 view .LVU800 2437 012a 08BB cbnz r0, .L180 1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2438 .loc 1 1350 5 is_stmt 1 view .LVU801 2439 012c 2368 ldr r3, [r4] 2440 012e 2022 movs r2, #32 2441 0130 DA61 str r2, [r3, #28] 1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2442 .loc 1 1353 5 view .LVU802 2443 0132 2168 ldr r1, [r4] 2444 0134 4B68 ldr r3, [r1, #4] 2445 0136 23F0FF73 bic r3, r3, #33423360 2446 013a 23F48B33 bic r3, r3, #71168 2447 013e 23F4FF73 bic r3, r3, #510 2448 0142 23F00103 bic r3, r3, #1 2449 0146 4B60 str r3, [r1, #4] 1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2450 .loc 1 1355 5 view .LVU803 1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2451 .loc 1 1355 17 is_stmt 0 view .LVU804 2452 0148 84F84120 strb r2, [r4, #65] 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2453 .loc 1 1356 5 is_stmt 1 view .LVU805 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2454 .loc 1 1356 17 is_stmt 0 view .LVU806 2455 014c 0023 movs r3, #0 2456 014e 84F84230 strb r3, [r4, #66] 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2457 .loc 1 1359 5 is_stmt 1 view .LVU807 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2458 .loc 1 1359 5 view .LVU808 ARM GAS /tmp/ccDmmuIk.s page 187 2459 0152 84F84030 strb r3, [r4, #64] 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2460 .loc 1 1359 5 view .LVU809 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2461 .loc 1 1361 5 view .LVU810 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2462 .loc 1 1361 12 is_stmt 0 view .LVU811 2463 0156 00E0 b .L168 2464 .LVL170: 2465 .L175: 1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2466 .loc 1 1365 12 view .LVU812 2467 0158 0220 movs r0, #2 2468 .LVL171: 2469 .L168: 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2470 .loc 1 1367 1 view .LVU813 2471 015a 02B0 add sp, sp, #8 2472 .LCFI25: 2473 .cfi_remember_state 2474 .cfi_def_cfa_offset 32 2475 @ sp needed 2476 015c BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2477 .LVL172: 2478 .L176: 2479 .LCFI26: 2480 .cfi_restore_state 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2481 .loc 1 1268 5 discriminator 1 view .LVU814 2482 0160 0220 movs r0, #2 2483 .LVL173: 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2484 .loc 1 1268 5 discriminator 1 view .LVU815 2485 0162 FAE7 b .L168 2486 .LVL174: 2487 .L177: 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2488 .loc 1 1275 14 view .LVU816 2489 0164 0120 movs r0, #1 2490 0166 F8E7 b .L168 2491 .L178: 1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2492 .loc 1 1307 16 view .LVU817 2493 0168 0120 movs r0, #1 2494 016a F6E7 b .L168 2495 .L179: 1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2496 .loc 1 1324 18 view .LVU818 2497 016c 0120 movs r0, #1 2498 016e F4E7 b .L168 2499 .L180: 1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2500 .loc 1 1346 14 view .LVU819 2501 0170 0120 movs r0, #1 2502 0172 F2E7 b .L168 2503 .L184: 2504 .align 2 ARM GAS /tmp/ccDmmuIk.s page 188 2505 .L183: 2506 0174 00240080 .word -2147474432 2507 .cfi_endproc 2508 .LFE334: 2510 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2511 .align 1 2512 .global HAL_I2C_Slave_Transmit 2513 .syntax unified 2514 .thumb 2515 .thumb_func 2517 HAL_I2C_Slave_Transmit: 2518 .LVL175: 2519 .LFB335: 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2520 .loc 1 1380 1 is_stmt 1 view -0 2521 .cfi_startproc 2522 @ args = 0, pretend = 0, frame = 0 2523 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2524 .loc 1 1380 1 is_stmt 0 view .LVU821 2525 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2526 .LCFI27: 2527 .cfi_def_cfa_offset 24 2528 .cfi_offset 4, -24 2529 .cfi_offset 5, -20 2530 .cfi_offset 6, -16 2531 .cfi_offset 7, -12 2532 .cfi_offset 8, -8 2533 .cfi_offset 14, -4 2534 0004 82B0 sub sp, sp, #8 2535 .LCFI28: 2536 .cfi_def_cfa_offset 32 2537 0006 1D46 mov r5, r3 1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t tmpXferCount; 2538 .loc 1 1381 3 is_stmt 1 view .LVU822 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef error; 2539 .loc 1 1382 3 view .LVU823 1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2540 .loc 1 1383 3 view .LVU824 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2541 .loc 1 1385 3 view .LVU825 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2542 .loc 1 1385 11 is_stmt 0 view .LVU826 2543 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2544 .LVL176: 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2545 .loc 1 1385 6 view .LVU827 2546 000c 202B cmp r3, #32 2547 000e 40F0EA80 bne .L201 2548 0012 0446 mov r4, r0 2549 0014 8846 mov r8, r1 2550 0016 1746 mov r7, r2 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2551 .loc 1 1387 5 is_stmt 1 view .LVU828 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2552 .loc 1 1387 8 is_stmt 0 view .LVU829 2553 0018 0029 cmp r1, #0 ARM GAS /tmp/ccDmmuIk.s page 189 2554 001a 57D0 beq .L187 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2555 .loc 1 1387 25 discriminator 1 view .LVU830 2556 001c 002A cmp r2, #0 2557 001e 55D0 beq .L187 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2558 .loc 1 1393 5 is_stmt 1 view .LVU831 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2559 .loc 1 1393 5 view .LVU832 2560 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2561 0024 012B cmp r3, #1 2562 0026 00F0E280 beq .L202 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2563 .loc 1 1393 5 discriminator 2 view .LVU833 2564 002a 0123 movs r3, #1 2565 002c 80F84030 strb r3, [r0, #64] 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2566 .loc 1 1393 5 view .LVU834 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2567 .loc 1 1396 5 view .LVU835 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2568 .loc 1 1396 17 is_stmt 0 view .LVU836 2569 0030 FFF7FEFF bl HAL_GetTick 2570 .LVL177: 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2571 .loc 1 1396 17 view .LVU837 2572 0034 0646 mov r6, r0 2573 .LVL178: 1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2574 .loc 1 1398 5 is_stmt 1 view .LVU838 1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2575 .loc 1 1398 21 is_stmt 0 view .LVU839 2576 0036 2123 movs r3, #33 2577 0038 84F84130 strb r3, [r4, #65] 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2578 .loc 1 1399 5 is_stmt 1 view .LVU840 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2579 .loc 1 1399 21 is_stmt 0 view .LVU841 2580 003c 2023 movs r3, #32 2581 003e 84F84230 strb r3, [r4, #66] 1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2582 .loc 1 1400 5 is_stmt 1 view .LVU842 1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2583 .loc 1 1400 21 is_stmt 0 view .LVU843 2584 0042 0023 movs r3, #0 2585 0044 6364 str r3, [r4, #68] 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2586 .loc 1 1403 5 is_stmt 1 view .LVU844 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2587 .loc 1 1403 21 is_stmt 0 view .LVU845 2588 0046 C4F82480 str r8, [r4, #36] 1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2589 .loc 1 1404 5 is_stmt 1 view .LVU846 1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2590 .loc 1 1404 21 is_stmt 0 view .LVU847 2591 004a 6785 strh r7, [r4, #42] @ movhi 1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 190 2592 .loc 1 1405 5 is_stmt 1 view .LVU848 1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2593 .loc 1 1405 21 is_stmt 0 view .LVU849 2594 004c 6363 str r3, [r4, #52] 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2595 .loc 1 1408 5 is_stmt 1 view .LVU850 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2596 .loc 1 1408 9 is_stmt 0 view .LVU851 2597 004e 2268 ldr r2, [r4] 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2598 .loc 1 1408 19 view .LVU852 2599 0050 5368 ldr r3, [r2, #4] 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2600 .loc 1 1408 25 view .LVU853 2601 0052 23F40043 bic r3, r3, #32768 2602 0056 5360 str r3, [r2, #4] 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2603 .loc 1 1411 5 is_stmt 1 view .LVU854 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2604 .loc 1 1411 19 is_stmt 0 view .LVU855 2605 0058 236A ldr r3, [r4, #32] 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2606 .loc 1 1411 8 view .LVU856 2607 005a B3F5003F cmp r3, #131072 2608 005e 3AD0 beq .L204 2609 .L189: 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2610 .loc 1 1424 5 is_stmt 1 view .LVU857 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2611 .loc 1 1424 9 is_stmt 0 view .LVU858 2612 0060 0096 str r6, [sp] 2613 0062 2B46 mov r3, r5 2614 0064 0022 movs r2, #0 2615 0066 0821 movs r1, #8 2616 0068 2046 mov r0, r4 2617 .LVL179: 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2618 .loc 1 1424 9 view .LVU859 2619 006a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2620 .LVL180: 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2621 .loc 1 1424 8 discriminator 1 view .LVU860 2622 006e 0028 cmp r0, #0 2623 0070 3ED1 bne .L205 1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2624 .loc 1 1436 5 is_stmt 1 view .LVU861 2625 0072 2368 ldr r3, [r4] 2626 0074 0822 movs r2, #8 2627 0076 DA61 str r2, [r3, #28] 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2628 .loc 1 1439 5 view .LVU862 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2629 .loc 1 1439 19 is_stmt 0 view .LVU863 2630 0078 E368 ldr r3, [r4, #12] 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2631 .loc 1 1439 8 view .LVU864 2632 007a 022B cmp r3, #2 ARM GAS /tmp/ccDmmuIk.s page 191 2633 007c 42D0 beq .L206 2634 .L191: 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2635 .loc 1 1458 5 is_stmt 1 view .LVU865 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2636 .loc 1 1458 9 is_stmt 0 view .LVU866 2637 007e 0096 str r6, [sp] 2638 0080 2B46 mov r3, r5 2639 0082 0022 movs r2, #0 2640 0084 4FF48031 mov r1, #65536 2641 0088 2046 mov r0, r4 2642 008a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2643 .LVL181: 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2644 .loc 1 1458 8 discriminator 1 view .LVU867 2645 008e 0028 cmp r0, #0 2646 0090 4ED1 bne .L207 2647 .L193: 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2648 .loc 1 1469 28 is_stmt 1 view .LVU868 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2649 .loc 1 1469 16 is_stmt 0 view .LVU869 2650 0092 628D ldrh r2, [r4, #42] 2651 0094 92B2 uxth r2, r2 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2652 .loc 1 1469 28 view .LVU870 2653 0096 002A cmp r2, #0 2654 0098 5BD0 beq .L208 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2655 .loc 1 1472 7 is_stmt 1 view .LVU871 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2656 .loc 1 1472 11 is_stmt 0 view .LVU872 2657 009a 3246 mov r2, r6 2658 009c 2946 mov r1, r5 2659 009e 2046 mov r0, r4 2660 00a0 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2661 .LVL182: 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2662 .loc 1 1472 10 discriminator 1 view .LVU873 2663 00a4 0028 cmp r0, #0 2664 00a6 4DD1 bne .L209 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2665 .loc 1 1480 7 is_stmt 1 view .LVU874 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2666 .loc 1 1480 35 is_stmt 0 view .LVU875 2667 00a8 626A ldr r2, [r4, #36] 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2668 .loc 1 1480 11 view .LVU876 2669 00aa 2368 ldr r3, [r4] 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2670 .loc 1 1480 30 view .LVU877 2671 00ac 1278 ldrb r2, [r2] @ zero_extendqisi2 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2672 .loc 1 1480 28 view .LVU878 2673 00ae 9A62 str r2, [r3, #40] 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2674 .loc 1 1483 7 is_stmt 1 view .LVU879 ARM GAS /tmp/ccDmmuIk.s page 192 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2675 .loc 1 1483 11 is_stmt 0 view .LVU880 2676 00b0 636A ldr r3, [r4, #36] 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2677 .loc 1 1483 21 view .LVU881 2678 00b2 0133 adds r3, r3, #1 2679 00b4 6362 str r3, [r4, #36] 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2680 .loc 1 1485 7 is_stmt 1 view .LVU882 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2681 .loc 1 1485 11 is_stmt 0 view .LVU883 2682 00b6 B4F82AC0 ldrh ip, [r4, #42] 2683 00ba 1FFA8CFC uxth ip, ip 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2684 .loc 1 1485 22 view .LVU884 2685 00be 0CF1FF3C add ip, ip, #-1 2686 00c2 1FFA8CFC uxth ip, ip 2687 00c6 A4F82AC0 strh ip, [r4, #42] @ movhi 2688 00ca E2E7 b .L193 2689 .LVL183: 2690 .L187: 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2691 .loc 1 1389 7 is_stmt 1 view .LVU885 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2692 .loc 1 1389 23 is_stmt 0 view .LVU886 2693 00cc 4FF40073 mov r3, #512 2694 00d0 6364 str r3, [r4, #68] 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2695 .loc 1 1390 7 is_stmt 1 view .LVU887 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2696 .loc 1 1390 15 is_stmt 0 view .LVU888 2697 00d2 0120 movs r0, #1 2698 .LVL184: 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2699 .loc 1 1390 15 view .LVU889 2700 00d4 88E0 b .L186 2701 .LVL185: 2702 .L204: 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2703 .loc 1 1415 7 is_stmt 1 view .LVU890 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2704 .loc 1 1415 35 is_stmt 0 view .LVU891 2705 00d6 626A ldr r2, [r4, #36] 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2706 .loc 1 1415 11 view .LVU892 2707 00d8 2368 ldr r3, [r4] 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2708 .loc 1 1415 30 view .LVU893 2709 00da 1278 ldrb r2, [r2] @ zero_extendqisi2 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2710 .loc 1 1415 28 view .LVU894 2711 00dc 9A62 str r2, [r3, #40] 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2712 .loc 1 1418 7 is_stmt 1 view .LVU895 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2713 .loc 1 1418 11 is_stmt 0 view .LVU896 2714 00de 636A ldr r3, [r4, #36] ARM GAS /tmp/ccDmmuIk.s page 193 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2715 .loc 1 1418 21 view .LVU897 2716 00e0 0133 adds r3, r3, #1 2717 00e2 6362 str r3, [r4, #36] 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2718 .loc 1 1420 7 is_stmt 1 view .LVU898 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2719 .loc 1 1420 11 is_stmt 0 view .LVU899 2720 00e4 638D ldrh r3, [r4, #42] 2721 00e6 9BB2 uxth r3, r3 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2722 .loc 1 1420 22 view .LVU900 2723 00e8 013B subs r3, r3, #1 2724 00ea 9BB2 uxth r3, r3 2725 00ec 6385 strh r3, [r4, #42] @ movhi 2726 00ee B7E7 b .L189 2727 .LVL186: 2728 .L205: 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2729 .loc 1 1427 7 is_stmt 1 view .LVU901 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2730 .loc 1 1427 11 is_stmt 0 view .LVU902 2731 00f0 2268 ldr r2, [r4] 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2732 .loc 1 1427 21 view .LVU903 2733 00f2 5368 ldr r3, [r2, #4] 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2734 .loc 1 1427 27 view .LVU904 2735 00f4 43F40043 orr r3, r3, #32768 2736 00f8 5360 str r3, [r2, #4] 1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2737 .loc 1 1430 7 is_stmt 1 view .LVU905 2738 00fa 2046 mov r0, r4 2739 00fc FFF7FEFF bl I2C_Flush_TXDR 2740 .LVL187: 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2741 .loc 1 1432 7 view .LVU906 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2742 .loc 1 1432 14 is_stmt 0 view .LVU907 2743 0100 0120 movs r0, #1 2744 0102 71E0 b .L186 2745 .L206: 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2746 .loc 1 1442 7 is_stmt 1 view .LVU908 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2747 .loc 1 1442 11 is_stmt 0 view .LVU909 2748 0104 0096 str r6, [sp] 2749 0106 2B46 mov r3, r5 2750 0108 0022 movs r2, #0 2751 010a 0821 movs r1, #8 2752 010c 2046 mov r0, r4 2753 010e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2754 .LVL188: 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2755 .loc 1 1442 10 discriminator 1 view .LVU910 2756 0112 18B9 cbnz r0, .L210 1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 194 2757 .loc 1 1454 7 is_stmt 1 view .LVU911 2758 0114 2368 ldr r3, [r4] 2759 0116 0822 movs r2, #8 2760 0118 DA61 str r2, [r3, #28] 2761 011a B0E7 b .L191 2762 .L210: 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2763 .loc 1 1445 9 view .LVU912 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2764 .loc 1 1445 13 is_stmt 0 view .LVU913 2765 011c 2268 ldr r2, [r4] 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2766 .loc 1 1445 23 view .LVU914 2767 011e 5368 ldr r3, [r2, #4] 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2768 .loc 1 1445 29 view .LVU915 2769 0120 43F40043 orr r3, r3, #32768 2770 0124 5360 str r3, [r2, #4] 1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2771 .loc 1 1448 9 is_stmt 1 view .LVU916 2772 0126 2046 mov r0, r4 2773 0128 FFF7FEFF bl I2C_Flush_TXDR 2774 .LVL189: 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2775 .loc 1 1450 9 view .LVU917 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2776 .loc 1 1450 16 is_stmt 0 view .LVU918 2777 012c 0120 movs r0, #1 2778 012e 5BE0 b .L186 2779 .L207: 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2780 .loc 1 1461 7 is_stmt 1 view .LVU919 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2781 .loc 1 1461 11 is_stmt 0 view .LVU920 2782 0130 2268 ldr r2, [r4] 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2783 .loc 1 1461 21 view .LVU921 2784 0132 5368 ldr r3, [r2, #4] 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2785 .loc 1 1461 27 view .LVU922 2786 0134 43F40043 orr r3, r3, #32768 2787 0138 5360 str r3, [r2, #4] 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2788 .loc 1 1464 7 is_stmt 1 view .LVU923 2789 013a 2046 mov r0, r4 2790 013c FFF7FEFF bl I2C_Flush_TXDR 2791 .LVL190: 1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2792 .loc 1 1466 7 view .LVU924 1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2793 .loc 1 1466 14 is_stmt 0 view .LVU925 2794 0140 0120 movs r0, #1 2795 0142 51E0 b .L186 2796 .L209: 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2797 .loc 1 1475 9 is_stmt 1 view .LVU926 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccDmmuIk.s page 195 2798 .loc 1 1475 13 is_stmt 0 view .LVU927 2799 0144 2268 ldr r2, [r4] 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2800 .loc 1 1475 23 view .LVU928 2801 0146 5368 ldr r3, [r2, #4] 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2802 .loc 1 1475 29 view .LVU929 2803 0148 43F40043 orr r3, r3, #32768 2804 014c 5360 str r3, [r2, #4] 1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2805 .loc 1 1476 9 is_stmt 1 view .LVU930 1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2806 .loc 1 1476 16 is_stmt 0 view .LVU931 2807 014e 0120 movs r0, #1 2808 0150 4AE0 b .L186 2809 .L208: 1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2810 .loc 1 1489 5 is_stmt 1 view .LVU932 1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2811 .loc 1 1489 13 is_stmt 0 view .LVU933 2812 0152 0096 str r6, [sp] 2813 0154 2B46 mov r3, r5 2814 0156 1021 movs r1, #16 2815 0158 2046 mov r0, r4 2816 015a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2817 .LVL191: 1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2818 .loc 1 1491 5 is_stmt 1 view .LVU934 1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2819 .loc 1 1491 8 is_stmt 0 view .LVU935 2820 015e E8B1 cbz r0, .L196 1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2821 .loc 1 1497 7 is_stmt 1 view .LVU936 1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2822 .loc 1 1497 20 is_stmt 0 view .LVU937 2823 0160 638D ldrh r3, [r4, #42] 2824 0162 9BB2 uxth r3, r3 2825 .LVL192: 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2826 .loc 1 1498 7 is_stmt 1 view .LVU938 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2827 .loc 1 1498 16 is_stmt 0 view .LVU939 2828 0164 626C ldr r2, [r4, #68] 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2829 .loc 1 1498 10 view .LVU940 2830 0166 042A cmp r2, #4 2831 0168 11D1 bne .L197 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2832 .loc 1 1498 49 discriminator 1 view .LVU941 2833 016a 83B9 cbnz r3, .L197 1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2834 .loc 1 1501 9 is_stmt 1 view .LVU942 1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2835 .loc 1 1501 25 is_stmt 0 view .LVU943 2836 016c 6364 str r3, [r4, #68] 2837 .LVL193: 2838 .L198: ARM GAS /tmp/ccDmmuIk.s page 196 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2839 .loc 1 1532 5 is_stmt 1 view .LVU944 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2840 .loc 1 1532 9 is_stmt 0 view .LVU945 2841 016e 0096 str r6, [sp] 2842 0170 2B46 mov r3, r5 2843 0172 0122 movs r2, #1 2844 0174 4FF40041 mov r1, #32768 2845 0178 2046 mov r0, r4 2846 017a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2847 .LVL194: 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2848 .loc 1 1532 8 discriminator 1 view .LVU946 2849 017e 20B3 cbz r0, .L200 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2850 .loc 1 1535 7 is_stmt 1 view .LVU947 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2851 .loc 1 1535 11 is_stmt 0 view .LVU948 2852 0180 2268 ldr r2, [r4] 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2853 .loc 1 1535 21 view .LVU949 2854 0182 5368 ldr r3, [r2, #4] 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2855 .loc 1 1535 27 view .LVU950 2856 0184 43F40043 orr r3, r3, #32768 2857 0188 5360 str r3, [r2, #4] 1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2858 .loc 1 1536 7 is_stmt 1 view .LVU951 1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2859 .loc 1 1536 14 is_stmt 0 view .LVU952 2860 018a 0120 movs r0, #1 2861 018c 2CE0 b .L186 2862 .LVL195: 2863 .L197: 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2864 .loc 1 1506 9 is_stmt 1 view .LVU953 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2865 .loc 1 1506 13 is_stmt 0 view .LVU954 2866 018e 2268 ldr r2, [r4] 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2867 .loc 1 1506 23 view .LVU955 2868 0190 5368 ldr r3, [r2, #4] 2869 .LVL196: 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2870 .loc 1 1506 29 view .LVU956 2871 0192 43F40043 orr r3, r3, #32768 2872 0196 5360 str r3, [r2, #4] 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2873 .loc 1 1507 9 is_stmt 1 view .LVU957 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2874 .loc 1 1507 16 is_stmt 0 view .LVU958 2875 0198 0120 movs r0, #1 2876 .LVL197: 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2877 .loc 1 1507 16 view .LVU959 2878 019a 25E0 b .L186 2879 .LVL198: ARM GAS /tmp/ccDmmuIk.s page 197 2880 .L196: 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2881 .loc 1 1513 7 is_stmt 1 view .LVU960 2882 019c 2046 mov r0, r4 2883 .LVL199: 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2884 .loc 1 1513 7 is_stmt 0 view .LVU961 2885 019e FFF7FEFF bl I2C_Flush_TXDR 2886 .LVL200: 1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2887 .loc 1 1516 7 is_stmt 1 view .LVU962 2888 01a2 2368 ldr r3, [r4] 2889 01a4 1022 movs r2, #16 2890 01a6 DA61 str r2, [r3, #28] 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2891 .loc 1 1519 7 view .LVU963 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2892 .loc 1 1519 11 is_stmt 0 view .LVU964 2893 01a8 3246 mov r2, r6 2894 01aa 2946 mov r1, r5 2895 01ac 2046 mov r0, r4 2896 01ae FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2897 .LVL201: 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2898 .loc 1 1519 10 discriminator 1 view .LVU965 2899 01b2 18B9 cbnz r0, .L211 1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2900 .loc 1 1528 7 is_stmt 1 view .LVU966 2901 01b4 2368 ldr r3, [r4] 2902 01b6 2022 movs r2, #32 2903 01b8 DA61 str r2, [r3, #28] 2904 01ba D8E7 b .L198 2905 .L211: 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2906 .loc 1 1522 9 view .LVU967 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2907 .loc 1 1522 13 is_stmt 0 view .LVU968 2908 01bc 2268 ldr r2, [r4] 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2909 .loc 1 1522 23 view .LVU969 2910 01be 5368 ldr r3, [r2, #4] 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2911 .loc 1 1522 29 view .LVU970 2912 01c0 43F40043 orr r3, r3, #32768 2913 01c4 5360 str r3, [r2, #4] 1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2914 .loc 1 1524 9 is_stmt 1 view .LVU971 1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2915 .loc 1 1524 16 is_stmt 0 view .LVU972 2916 01c6 0120 movs r0, #1 2917 01c8 0EE0 b .L186 2918 .L200: 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2919 .loc 1 1540 5 is_stmt 1 view .LVU973 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2920 .loc 1 1540 9 is_stmt 0 view .LVU974 2921 01ca 2268 ldr r2, [r4] ARM GAS /tmp/ccDmmuIk.s page 198 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2922 .loc 1 1540 19 view .LVU975 2923 01cc 5368 ldr r3, [r2, #4] 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2924 .loc 1 1540 25 view .LVU976 2925 01ce 43F40043 orr r3, r3, #32768 2926 01d2 5360 str r3, [r2, #4] 1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2927 .loc 1 1542 5 is_stmt 1 view .LVU977 1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2928 .loc 1 1542 17 is_stmt 0 view .LVU978 2929 01d4 2023 movs r3, #32 2930 01d6 84F84130 strb r3, [r4, #65] 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2931 .loc 1 1543 5 is_stmt 1 view .LVU979 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2932 .loc 1 1543 17 is_stmt 0 view .LVU980 2933 01da 0023 movs r3, #0 2934 01dc 84F84230 strb r3, [r4, #66] 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2935 .loc 1 1546 5 is_stmt 1 view .LVU981 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2936 .loc 1 1546 5 view .LVU982 2937 01e0 84F84030 strb r3, [r4, #64] 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2938 .loc 1 1546 5 view .LVU983 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2939 .loc 1 1548 5 view .LVU984 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2940 .loc 1 1548 12 is_stmt 0 view .LVU985 2941 01e4 00E0 b .L186 2942 .LVL202: 2943 .L201: 1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2944 .loc 1 1552 12 view .LVU986 2945 01e6 0220 movs r0, #2 2946 .LVL203: 2947 .L186: 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2948 .loc 1 1554 1 view .LVU987 2949 01e8 02B0 add sp, sp, #8 2950 .LCFI29: 2951 .cfi_remember_state 2952 .cfi_def_cfa_offset 24 2953 @ sp needed 2954 01ea BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2955 .LVL204: 2956 .L202: 2957 .LCFI30: 2958 .cfi_restore_state 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2959 .loc 1 1393 5 discriminator 1 view .LVU988 2960 01ee 0220 movs r0, #2 2961 .LVL205: 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2962 .loc 1 1393 5 discriminator 1 view .LVU989 2963 01f0 FAE7 b .L186 ARM GAS /tmp/ccDmmuIk.s page 199 2964 .cfi_endproc 2965 .LFE335: 2967 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2968 .align 1 2969 .global HAL_I2C_Slave_Receive 2970 .syntax unified 2971 .thumb 2972 .thumb_func 2974 HAL_I2C_Slave_Receive: 2975 .LVL206: 2976 .LFB336: 1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2977 .loc 1 1567 1 is_stmt 1 view -0 2978 .cfi_startproc 2979 @ args = 0, pretend = 0, frame = 0 2980 @ frame_needed = 0, uses_anonymous_args = 0 1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2981 .loc 1 1567 1 is_stmt 0 view .LVU991 2982 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2983 .LCFI31: 2984 .cfi_def_cfa_offset 24 2985 .cfi_offset 4, -24 2986 .cfi_offset 5, -20 2987 .cfi_offset 6, -16 2988 .cfi_offset 7, -12 2989 .cfi_offset 8, -8 2990 .cfi_offset 14, -4 2991 0004 82B0 sub sp, sp, #8 2992 .LCFI32: 2993 .cfi_def_cfa_offset 32 2994 0006 1D46 mov r5, r3 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2995 .loc 1 1568 3 is_stmt 1 view .LVU992 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2996 .loc 1 1570 3 view .LVU993 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2997 .loc 1 1570 11 is_stmt 0 view .LVU994 2998 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2999 .LVL207: 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3000 .loc 1 1570 6 view .LVU995 3001 000c 202B cmp r3, #32 3002 000e 40F0B080 bne .L223 3003 0012 0446 mov r4, r0 3004 0014 8846 mov r8, r1 3005 0016 1746 mov r7, r2 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3006 .loc 1 1572 5 is_stmt 1 view .LVU996 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3007 .loc 1 1572 8 is_stmt 0 view .LVU997 3008 0018 61B3 cbz r1, .L214 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3009 .loc 1 1572 25 discriminator 1 view .LVU998 3010 001a 5AB3 cbz r2, .L214 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3011 .loc 1 1578 5 is_stmt 1 view .LVU999 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 200 3012 .loc 1 1578 5 view .LVU1000 3013 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3014 0020 012B cmp r3, #1 3015 0022 00F0AA80 beq .L224 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3016 .loc 1 1578 5 discriminator 2 view .LVU1001 3017 0026 0123 movs r3, #1 3018 0028 80F84030 strb r3, [r0, #64] 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3019 .loc 1 1578 5 view .LVU1002 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3020 .loc 1 1581 5 view .LVU1003 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3021 .loc 1 1581 17 is_stmt 0 view .LVU1004 3022 002c FFF7FEFF bl HAL_GetTick 3023 .LVL208: 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3024 .loc 1 1581 17 view .LVU1005 3025 0030 0646 mov r6, r0 3026 .LVL209: 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3027 .loc 1 1583 5 is_stmt 1 view .LVU1006 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3028 .loc 1 1583 21 is_stmt 0 view .LVU1007 3029 0032 2223 movs r3, #34 3030 0034 84F84130 strb r3, [r4, #65] 1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3031 .loc 1 1584 5 is_stmt 1 view .LVU1008 1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3032 .loc 1 1584 21 is_stmt 0 view .LVU1009 3033 0038 2023 movs r3, #32 3034 003a 84F84230 strb r3, [r4, #66] 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3035 .loc 1 1585 5 is_stmt 1 view .LVU1010 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3036 .loc 1 1585 21 is_stmt 0 view .LVU1011 3037 003e 0022 movs r2, #0 3038 0040 6264 str r2, [r4, #68] 1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3039 .loc 1 1588 5 is_stmt 1 view .LVU1012 1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3040 .loc 1 1588 21 is_stmt 0 view .LVU1013 3041 0042 C4F82480 str r8, [r4, #36] 1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3042 .loc 1 1589 5 is_stmt 1 view .LVU1014 1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3043 .loc 1 1589 21 is_stmt 0 view .LVU1015 3044 0046 6785 strh r7, [r4, #42] @ movhi 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 3045 .loc 1 1590 5 is_stmt 1 view .LVU1016 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 3046 .loc 1 1590 26 is_stmt 0 view .LVU1017 3047 0048 638D ldrh r3, [r4, #42] 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 3048 .loc 1 1590 20 view .LVU1018 3049 004a 2385 strh r3, [r4, #40] @ movhi 1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 201 3050 .loc 1 1591 5 is_stmt 1 view .LVU1019 1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3051 .loc 1 1591 21 is_stmt 0 view .LVU1020 3052 004c 6263 str r2, [r4, #52] 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3053 .loc 1 1594 5 is_stmt 1 view .LVU1021 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3054 .loc 1 1594 9 is_stmt 0 view .LVU1022 3055 004e 2168 ldr r1, [r4] 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3056 .loc 1 1594 19 view .LVU1023 3057 0050 4B68 ldr r3, [r1, #4] 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3058 .loc 1 1594 25 view .LVU1024 3059 0052 23F40043 bic r3, r3, #32768 3060 0056 4B60 str r3, [r1, #4] 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3061 .loc 1 1597 5 is_stmt 1 view .LVU1025 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3062 .loc 1 1597 9 is_stmt 0 view .LVU1026 3063 0058 0090 str r0, [sp] 3064 005a 2B46 mov r3, r5 3065 005c 0821 movs r1, #8 3066 005e 2046 mov r0, r4 3067 .LVL210: 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3068 .loc 1 1597 9 view .LVU1027 3069 0060 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3070 .LVL211: 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3071 .loc 1 1597 8 discriminator 1 view .LVU1028 3072 0064 58B1 cbz r0, .L216 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3073 .loc 1 1600 7 is_stmt 1 view .LVU1029 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3074 .loc 1 1600 11 is_stmt 0 view .LVU1030 3075 0066 2268 ldr r2, [r4] 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3076 .loc 1 1600 21 view .LVU1031 3077 0068 5368 ldr r3, [r2, #4] 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3078 .loc 1 1600 27 view .LVU1032 3079 006a 43F40043 orr r3, r3, #32768 3080 006e 5360 str r3, [r2, #4] 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3081 .loc 1 1601 7 is_stmt 1 view .LVU1033 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3082 .loc 1 1601 14 is_stmt 0 view .LVU1034 3083 0070 0120 movs r0, #1 3084 0072 7FE0 b .L213 3085 .LVL212: 3086 .L214: 1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3087 .loc 1 1574 7 is_stmt 1 view .LVU1035 1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3088 .loc 1 1574 23 is_stmt 0 view .LVU1036 3089 0074 4FF40073 mov r3, #512 ARM GAS /tmp/ccDmmuIk.s page 202 3090 0078 6364 str r3, [r4, #68] 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3091 .loc 1 1575 7 is_stmt 1 view .LVU1037 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3092 .loc 1 1575 15 is_stmt 0 view .LVU1038 3093 007a 0120 movs r0, #1 3094 .LVL213: 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3095 .loc 1 1575 15 view .LVU1039 3096 007c 7AE0 b .L213 3097 .LVL214: 3098 .L216: 1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3099 .loc 1 1605 5 is_stmt 1 view .LVU1040 3100 007e 2368 ldr r3, [r4] 3101 0080 0822 movs r2, #8 3102 0082 DA61 str r2, [r3, #28] 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3103 .loc 1 1608 5 view .LVU1041 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3104 .loc 1 1608 9 is_stmt 0 view .LVU1042 3105 0084 0096 str r6, [sp] 3106 0086 2B46 mov r3, r5 3107 0088 0122 movs r2, #1 3108 008a 4FF48031 mov r1, #65536 3109 008e 2046 mov r0, r4 3110 0090 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3111 .LVL215: 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3112 .loc 1 1608 8 discriminator 1 view .LVU1043 3113 0094 F0B9 cbnz r0, .L226 3114 .L217: 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3115 .loc 1 1615 28 is_stmt 1 view .LVU1044 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3116 .loc 1 1615 16 is_stmt 0 view .LVU1045 3117 0096 638D ldrh r3, [r4, #42] 3118 0098 9BB2 uxth r3, r3 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3119 .loc 1 1615 28 view .LVU1046 3120 009a 002B cmp r3, #0 3121 009c 3BD0 beq .L227 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3122 .loc 1 1618 7 is_stmt 1 view .LVU1047 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3123 .loc 1 1618 11 is_stmt 0 view .LVU1048 3124 009e 3246 mov r2, r6 3125 00a0 2946 mov r1, r5 3126 00a2 2046 mov r0, r4 3127 00a4 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 3128 .LVL216: 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3129 .loc 1 1618 10 discriminator 1 view .LVU1049 3130 00a8 D8B9 cbnz r0, .L228 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3131 .loc 1 1640 7 is_stmt 1 view .LVU1050 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 203 3132 .loc 1 1640 38 is_stmt 0 view .LVU1051 3133 00aa 2368 ldr r3, [r4] 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3134 .loc 1 1640 48 view .LVU1052 3135 00ac 5A6A ldr r2, [r3, #36] 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3136 .loc 1 1640 12 view .LVU1053 3137 00ae 636A ldr r3, [r4, #36] 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3138 .loc 1 1640 23 view .LVU1054 3139 00b0 1A70 strb r2, [r3] 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3140 .loc 1 1643 7 is_stmt 1 view .LVU1055 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3141 .loc 1 1643 11 is_stmt 0 view .LVU1056 3142 00b2 636A ldr r3, [r4, #36] 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3143 .loc 1 1643 21 view .LVU1057 3144 00b4 0133 adds r3, r3, #1 3145 00b6 6362 str r3, [r4, #36] 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3146 .loc 1 1645 7 is_stmt 1 view .LVU1058 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3147 .loc 1 1645 11 is_stmt 0 view .LVU1059 3148 00b8 B4F82AC0 ldrh ip, [r4, #42] 3149 00bc 1FFA8CFC uxth ip, ip 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3150 .loc 1 1645 22 view .LVU1060 3151 00c0 0CF1FF3C add ip, ip, #-1 3152 00c4 1FFA8CFC uxth ip, ip 3153 00c8 A4F82AC0 strh ip, [r4, #42] @ movhi 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3154 .loc 1 1646 7 is_stmt 1 view .LVU1061 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3155 .loc 1 1646 11 is_stmt 0 view .LVU1062 3156 00cc 238D ldrh r3, [r4, #40] 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3157 .loc 1 1646 21 view .LVU1063 3158 00ce 013B subs r3, r3, #1 3159 00d0 2385 strh r3, [r4, #40] @ movhi 3160 00d2 E0E7 b .L217 3161 .L226: 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3162 .loc 1 1611 7 is_stmt 1 view .LVU1064 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3163 .loc 1 1611 11 is_stmt 0 view .LVU1065 3164 00d4 2268 ldr r2, [r4] 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3165 .loc 1 1611 21 view .LVU1066 3166 00d6 5368 ldr r3, [r2, #4] 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3167 .loc 1 1611 27 view .LVU1067 3168 00d8 43F40043 orr r3, r3, #32768 3169 00dc 5360 str r3, [r2, #4] 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3170 .loc 1 1612 7 is_stmt 1 view .LVU1068 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 204 3171 .loc 1 1612 14 is_stmt 0 view .LVU1069 3172 00de 0120 movs r0, #1 3173 00e0 48E0 b .L213 3174 .L228: 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3175 .loc 1 1621 9 is_stmt 1 view .LVU1070 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3176 .loc 1 1621 13 is_stmt 0 view .LVU1071 3177 00e2 2268 ldr r2, [r4] 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3178 .loc 1 1621 23 view .LVU1072 3179 00e4 5368 ldr r3, [r2, #4] 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3180 .loc 1 1621 29 view .LVU1073 3181 00e6 43F40043 orr r3, r3, #32768 3182 00ea 5360 str r3, [r2, #4] 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3183 .loc 1 1624 9 is_stmt 1 view .LVU1074 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3184 .loc 1 1624 13 is_stmt 0 view .LVU1075 3185 00ec 2368 ldr r3, [r4] 3186 00ee 9A69 ldr r2, [r3, #24] 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3187 .loc 1 1624 12 view .LVU1076 3188 00f0 12F0040F tst r2, #4 3189 00f4 0DD0 beq .L219 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3190 .loc 1 1627 11 is_stmt 1 view .LVU1077 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3191 .loc 1 1627 52 is_stmt 0 view .LVU1078 3192 00f6 5A6A ldr r2, [r3, #36] 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3193 .loc 1 1627 16 view .LVU1079 3194 00f8 636A ldr r3, [r4, #36] 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3195 .loc 1 1627 27 view .LVU1080 3196 00fa 1A70 strb r2, [r3] 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3197 .loc 1 1630 11 is_stmt 1 view .LVU1081 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3198 .loc 1 1630 15 is_stmt 0 view .LVU1082 3199 00fc 636A ldr r3, [r4, #36] 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3200 .loc 1 1630 25 view .LVU1083 3201 00fe 0133 adds r3, r3, #1 3202 0100 6362 str r3, [r4, #36] 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3203 .loc 1 1632 11 is_stmt 1 view .LVU1084 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3204 .loc 1 1632 15 is_stmt 0 view .LVU1085 3205 0102 638D ldrh r3, [r4, #42] 3206 0104 9BB2 uxth r3, r3 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3207 .loc 1 1632 26 view .LVU1086 3208 0106 013B subs r3, r3, #1 3209 0108 9BB2 uxth r3, r3 3210 010a 6385 strh r3, [r4, #42] @ movhi ARM GAS /tmp/ccDmmuIk.s page 205 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3211 .loc 1 1633 11 is_stmt 1 view .LVU1087 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3212 .loc 1 1633 15 is_stmt 0 view .LVU1088 3213 010c 238D ldrh r3, [r4, #40] 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3214 .loc 1 1633 25 view .LVU1089 3215 010e 013B subs r3, r3, #1 3216 0110 2385 strh r3, [r4, #40] @ movhi 3217 .L219: 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3218 .loc 1 1636 9 is_stmt 1 view .LVU1090 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3219 .loc 1 1636 16 is_stmt 0 view .LVU1091 3220 0112 0120 movs r0, #1 3221 0114 2EE0 b .L213 3222 .L227: 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3223 .loc 1 1650 5 is_stmt 1 view .LVU1092 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3224 .loc 1 1650 9 is_stmt 0 view .LVU1093 3225 0116 3246 mov r2, r6 3226 0118 2946 mov r1, r5 3227 011a 2046 mov r0, r4 3228 011c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 3229 .LVL217: 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3230 .loc 1 1650 8 discriminator 1 view .LVU1094 3231 0120 30B1 cbz r0, .L221 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3232 .loc 1 1653 7 is_stmt 1 view .LVU1095 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3233 .loc 1 1653 11 is_stmt 0 view .LVU1096 3234 0122 2268 ldr r2, [r4] 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3235 .loc 1 1653 21 view .LVU1097 3236 0124 5368 ldr r3, [r2, #4] 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3237 .loc 1 1653 27 view .LVU1098 3238 0126 43F40043 orr r3, r3, #32768 3239 012a 5360 str r3, [r2, #4] 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3240 .loc 1 1654 7 is_stmt 1 view .LVU1099 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3241 .loc 1 1654 14 is_stmt 0 view .LVU1100 3242 012c 0120 movs r0, #1 3243 012e 21E0 b .L213 3244 .L221: 1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3245 .loc 1 1658 5 is_stmt 1 view .LVU1101 3246 0130 2368 ldr r3, [r4] 3247 0132 2022 movs r2, #32 3248 0134 DA61 str r2, [r3, #28] 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3249 .loc 1 1661 5 view .LVU1102 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3250 .loc 1 1661 9 is_stmt 0 view .LVU1103 ARM GAS /tmp/ccDmmuIk.s page 206 3251 0136 0096 str r6, [sp] 3252 0138 2B46 mov r3, r5 3253 013a 0122 movs r2, #1 3254 013c 4FF40041 mov r1, #32768 3255 0140 2046 mov r0, r4 3256 0142 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3257 .LVL218: 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3258 .loc 1 1661 8 discriminator 1 view .LVU1104 3259 0146 30B1 cbz r0, .L222 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3260 .loc 1 1664 7 is_stmt 1 view .LVU1105 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3261 .loc 1 1664 11 is_stmt 0 view .LVU1106 3262 0148 2268 ldr r2, [r4] 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3263 .loc 1 1664 21 view .LVU1107 3264 014a 5368 ldr r3, [r2, #4] 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3265 .loc 1 1664 27 view .LVU1108 3266 014c 43F40043 orr r3, r3, #32768 3267 0150 5360 str r3, [r2, #4] 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3268 .loc 1 1665 7 is_stmt 1 view .LVU1109 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3269 .loc 1 1665 14 is_stmt 0 view .LVU1110 3270 0152 0120 movs r0, #1 3271 0154 0EE0 b .L213 3272 .L222: 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3273 .loc 1 1669 5 is_stmt 1 view .LVU1111 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3274 .loc 1 1669 9 is_stmt 0 view .LVU1112 3275 0156 2268 ldr r2, [r4] 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3276 .loc 1 1669 19 view .LVU1113 3277 0158 5368 ldr r3, [r2, #4] 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3278 .loc 1 1669 25 view .LVU1114 3279 015a 43F40043 orr r3, r3, #32768 3280 015e 5360 str r3, [r2, #4] 1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3281 .loc 1 1671 5 is_stmt 1 view .LVU1115 1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3282 .loc 1 1671 17 is_stmt 0 view .LVU1116 3283 0160 2023 movs r3, #32 3284 0162 84F84130 strb r3, [r4, #65] 1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3285 .loc 1 1672 5 is_stmt 1 view .LVU1117 1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3286 .loc 1 1672 17 is_stmt 0 view .LVU1118 3287 0166 0023 movs r3, #0 3288 0168 84F84230 strb r3, [r4, #66] 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3289 .loc 1 1675 5 is_stmt 1 view .LVU1119 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3290 .loc 1 1675 5 view .LVU1120 ARM GAS /tmp/ccDmmuIk.s page 207 3291 016c 84F84030 strb r3, [r4, #64] 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3292 .loc 1 1675 5 view .LVU1121 1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3293 .loc 1 1677 5 view .LVU1122 1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3294 .loc 1 1677 12 is_stmt 0 view .LVU1123 3295 0170 00E0 b .L213 3296 .LVL219: 3297 .L223: 1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3298 .loc 1 1681 12 view .LVU1124 3299 0172 0220 movs r0, #2 3300 .LVL220: 3301 .L213: 1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3302 .loc 1 1683 1 view .LVU1125 3303 0174 02B0 add sp, sp, #8 3304 .LCFI33: 3305 .cfi_remember_state 3306 .cfi_def_cfa_offset 24 3307 @ sp needed 3308 0176 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3309 .LVL221: 3310 .L224: 3311 .LCFI34: 3312 .cfi_restore_state 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3313 .loc 1 1578 5 discriminator 1 view .LVU1126 3314 017a 0220 movs r0, #2 3315 .LVL222: 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3316 .loc 1 1578 5 discriminator 1 view .LVU1127 3317 017c FAE7 b .L213 3318 .cfi_endproc 3319 .LFE336: 3321 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3322 .align 1 3323 .global HAL_I2C_Master_Transmit_IT 3324 .syntax unified 3325 .thumb 3326 .thumb_func 3328 HAL_I2C_Master_Transmit_IT: 3329 .LVL223: 3330 .LFB337: 1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3331 .loc 1 1697 1 is_stmt 1 view -0 3332 .cfi_startproc 3333 @ args = 0, pretend = 0, frame = 0 3334 @ frame_needed = 0, uses_anonymous_args = 0 1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3335 .loc 1 1697 1 is_stmt 0 view .LVU1129 3336 0000 30B5 push {r4, r5, lr} 3337 .LCFI35: 3338 .cfi_def_cfa_offset 12 3339 .cfi_offset 4, -12 3340 .cfi_offset 5, -8 ARM GAS /tmp/ccDmmuIk.s page 208 3341 .cfi_offset 14, -4 3342 0002 83B0 sub sp, sp, #12 3343 .LCFI36: 3344 .cfi_def_cfa_offset 24 3345 0004 0446 mov r4, r0 1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3346 .loc 1 1698 3 is_stmt 1 view .LVU1130 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3347 .loc 1 1700 3 view .LVU1131 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3348 .loc 1 1700 11 is_stmt 0 view .LVU1132 3349 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3350 .LVL224: 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3351 .loc 1 1700 6 view .LVU1133 3352 000a 2028 cmp r0, #32 3353 000c 4ED1 bne .L235 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3354 .loc 1 1702 5 is_stmt 1 view .LVU1134 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3355 .loc 1 1702 9 is_stmt 0 view .LVU1135 3356 000e 2068 ldr r0, [r4] 3357 0010 8569 ldr r5, [r0, #24] 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3358 .loc 1 1702 8 view .LVU1136 3359 0012 15F4004F tst r5, #32768 3360 0016 4BD1 bne .L236 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3361 .loc 1 1708 5 is_stmt 1 view .LVU1137 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3362 .loc 1 1708 5 view .LVU1138 3363 0018 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 3364 001c 012D cmp r5, #1 3365 001e 49D0 beq .L237 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3366 .loc 1 1708 5 discriminator 2 view .LVU1139 3367 0020 0125 movs r5, #1 3368 0022 84F84050 strb r5, [r4, #64] 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3369 .loc 1 1708 5 view .LVU1140 1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3370 .loc 1 1710 5 view .LVU1141 1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3371 .loc 1 1710 23 is_stmt 0 view .LVU1142 3372 0026 2125 movs r5, #33 3373 0028 84F84150 strb r5, [r4, #65] 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3374 .loc 1 1711 5 is_stmt 1 view .LVU1143 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3375 .loc 1 1711 23 is_stmt 0 view .LVU1144 3376 002c 1025 movs r5, #16 3377 002e 84F84250 strb r5, [r4, #66] 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3378 .loc 1 1712 5 is_stmt 1 view .LVU1145 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3379 .loc 1 1712 23 is_stmt 0 view .LVU1146 3380 0032 0025 movs r5, #0 ARM GAS /tmp/ccDmmuIk.s page 209 3381 0034 6564 str r5, [r4, #68] 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3382 .loc 1 1715 5 is_stmt 1 view .LVU1147 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3383 .loc 1 1715 23 is_stmt 0 view .LVU1148 3384 0036 6262 str r2, [r4, #36] 1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3385 .loc 1 1716 5 is_stmt 1 view .LVU1149 1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3386 .loc 1 1716 23 is_stmt 0 view .LVU1150 3387 0038 6385 strh r3, [r4, #42] @ movhi 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3388 .loc 1 1717 5 is_stmt 1 view .LVU1151 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3389 .loc 1 1717 23 is_stmt 0 view .LVU1152 3390 003a 1F4B ldr r3, .L239 3391 .LVL225: 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3392 .loc 1 1717 23 view .LVU1153 3393 003c E362 str r3, [r4, #44] 3394 .LVL226: 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3395 .loc 1 1718 5 is_stmt 1 view .LVU1154 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3396 .loc 1 1718 23 is_stmt 0 view .LVU1155 3397 003e 1F4B ldr r3, .L239+4 3398 0040 6363 str r3, [r4, #52] 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3399 .loc 1 1720 5 is_stmt 1 view .LVU1156 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3400 .loc 1 1720 13 is_stmt 0 view .LVU1157 3401 0042 638D ldrh r3, [r4, #42] 3402 0044 9BB2 uxth r3, r3 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3403 .loc 1 1720 8 view .LVU1158 3404 0046 FF2B cmp r3, #255 3405 0048 24D9 bls .L231 1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3406 .loc 1 1722 7 is_stmt 1 view .LVU1159 1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3407 .loc 1 1722 22 is_stmt 0 view .LVU1160 3408 004a FF23 movs r3, #255 3409 004c 2385 strh r3, [r4, #40] @ movhi 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3410 .loc 1 1723 7 is_stmt 1 view .LVU1161 3411 .LVL227: 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3412 .loc 1 1723 16 is_stmt 0 view .LVU1162 3413 004e 4FF08073 mov r3, #16777216 3414 .LVL228: 3415 .L232: 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3416 .loc 1 1733 5 is_stmt 1 view .LVU1163 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3417 .loc 1 1733 13 is_stmt 0 view .LVU1164 3418 0052 258D ldrh r5, [r4, #40] 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 210 3419 .loc 1 1733 8 view .LVU1165 3420 0054 1DB3 cbz r5, .L233 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3421 .loc 1 1737 7 is_stmt 1 view .LVU1166 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3422 .loc 1 1737 30 is_stmt 0 view .LVU1167 3423 0056 1278 ldrb r2, [r2] @ zero_extendqisi2 3424 .LVL229: 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3425 .loc 1 1737 28 view .LVU1168 3426 0058 8262 str r2, [r0, #40] 3427 .LVL230: 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3428 .loc 1 1740 7 is_stmt 1 view .LVU1169 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3429 .loc 1 1740 11 is_stmt 0 view .LVU1170 3430 005a 626A ldr r2, [r4, #36] 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3431 .loc 1 1740 21 view .LVU1171 3432 005c 0132 adds r2, r2, #1 3433 005e 6262 str r2, [r4, #36] 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3434 .loc 1 1742 7 is_stmt 1 view .LVU1172 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3435 .loc 1 1742 11 is_stmt 0 view .LVU1173 3436 0060 628D ldrh r2, [r4, #42] 3437 0062 92B2 uxth r2, r2 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3438 .loc 1 1742 22 view .LVU1174 3439 0064 013A subs r2, r2, #1 3440 0066 92B2 uxth r2, r2 3441 0068 6285 strh r2, [r4, #42] @ movhi 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3442 .loc 1 1743 7 is_stmt 1 view .LVU1175 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3443 .loc 1 1743 11 is_stmt 0 view .LVU1176 3444 006a 228D ldrh r2, [r4, #40] 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3445 .loc 1 1743 21 view .LVU1177 3446 006c 013A subs r2, r2, #1 3447 006e 92B2 uxth r2, r2 3448 0070 2285 strh r2, [r4, #40] @ movhi 1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3449 .loc 1 1745 7 is_stmt 1 view .LVU1178 3450 0072 0132 adds r2, r2, #1 3451 0074 1248 ldr r0, .L239+8 3452 0076 0090 str r0, [sp] 3453 0078 D2B2 uxtb r2, r2 3454 007a 2046 mov r0, r4 3455 007c FFF7FEFF bl I2C_TransferConfig 3456 .LVL231: 3457 .L234: 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3458 .loc 1 1755 5 view .LVU1179 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3459 .loc 1 1755 5 view .LVU1180 3460 0080 0025 movs r5, #0 ARM GAS /tmp/ccDmmuIk.s page 211 3461 0082 84F84050 strb r5, [r4, #64] 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3462 .loc 1 1755 5 view .LVU1181 1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3463 .loc 1 1765 5 view .LVU1182 3464 0086 0121 movs r1, #1 3465 0088 2046 mov r0, r4 3466 008a FFF7FEFF bl I2C_Enable_IRQ 3467 .LVL232: 1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3468 .loc 1 1767 5 view .LVU1183 1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3469 .loc 1 1767 12 is_stmt 0 view .LVU1184 3470 008e 2846 mov r0, r5 3471 .LVL233: 3472 .L230: 1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3473 .loc 1 1773 1 view .LVU1185 3474 0090 03B0 add sp, sp, #12 3475 .LCFI37: 3476 .cfi_remember_state 3477 .cfi_def_cfa_offset 12 3478 @ sp needed 3479 0092 30BD pop {r4, r5, pc} 3480 .LVL234: 3481 .L231: 3482 .LCFI38: 3483 .cfi_restore_state 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3484 .loc 1 1727 7 is_stmt 1 view .LVU1186 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3485 .loc 1 1727 28 is_stmt 0 view .LVU1187 3486 0094 638D ldrh r3, [r4, #42] 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3487 .loc 1 1727 22 view .LVU1188 3488 0096 2385 strh r3, [r4, #40] @ movhi 1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3489 .loc 1 1728 7 is_stmt 1 view .LVU1189 3490 .LVL235: 1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3491 .loc 1 1728 16 is_stmt 0 view .LVU1190 3492 0098 4FF00073 mov r3, #33554432 3493 009c D9E7 b .L232 3494 .LVL236: 3495 .L233: 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3496 .loc 1 1750 7 is_stmt 1 view .LVU1191 3497 009e 084A ldr r2, .L239+8 3498 .LVL237: 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3499 .loc 1 1750 7 is_stmt 0 view .LVU1192 3500 00a0 0092 str r2, [sp] 3501 .LVL238: 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3502 .loc 1 1750 7 view .LVU1193 3503 00a2 EAB2 uxtb r2, r5 3504 00a4 2046 mov r0, r4 ARM GAS /tmp/ccDmmuIk.s page 212 3505 00a6 FFF7FEFF bl I2C_TransferConfig 3506 .LVL239: 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3507 .loc 1 1750 7 view .LVU1194 3508 00aa E9E7 b .L234 3509 .LVL240: 3510 .L235: 1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3511 .loc 1 1771 12 view .LVU1195 3512 00ac 0220 movs r0, #2 3513 00ae EFE7 b .L230 3514 .L236: 1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3515 .loc 1 1704 14 view .LVU1196 3516 00b0 0220 movs r0, #2 3517 00b2 EDE7 b .L230 3518 .L237: 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3519 .loc 1 1708 5 discriminator 1 view .LVU1197 3520 00b4 0220 movs r0, #2 3521 00b6 EBE7 b .L230 3522 .L240: 3523 .align 2 3524 .L239: 3525 00b8 0000FFFF .word -65536 3526 00bc 00000000 .word I2C_Master_ISR_IT 3527 00c0 00200080 .word -2147475456 3528 .cfi_endproc 3529 .LFE337: 3531 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3532 .align 1 3533 .global HAL_I2C_Master_Receive_IT 3534 .syntax unified 3535 .thumb 3536 .thumb_func 3538 HAL_I2C_Master_Receive_IT: 3539 .LVL241: 3540 .LFB338: 1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3541 .loc 1 1787 1 is_stmt 1 view -0 3542 .cfi_startproc 3543 @ args = 0, pretend = 0, frame = 0 3544 @ frame_needed = 0, uses_anonymous_args = 0 1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3545 .loc 1 1787 1 is_stmt 0 view .LVU1199 3546 0000 30B5 push {r4, r5, lr} 3547 .LCFI39: 3548 .cfi_def_cfa_offset 12 3549 .cfi_offset 4, -12 3550 .cfi_offset 5, -8 3551 .cfi_offset 14, -4 3552 0002 83B0 sub sp, sp, #12 3553 .LCFI40: 3554 .cfi_def_cfa_offset 24 3555 0004 0446 mov r4, r0 1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3556 .loc 1 1788 3 is_stmt 1 view .LVU1200 ARM GAS /tmp/ccDmmuIk.s page 213 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3557 .loc 1 1790 3 view .LVU1201 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3558 .loc 1 1790 11 is_stmt 0 view .LVU1202 3559 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3560 .LVL242: 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3561 .loc 1 1790 6 view .LVU1203 3562 000a 2028 cmp r0, #32 3563 000c 37D1 bne .L245 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3564 .loc 1 1792 5 is_stmt 1 view .LVU1204 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3565 .loc 1 1792 9 is_stmt 0 view .LVU1205 3566 000e 2068 ldr r0, [r4] 3567 0010 8069 ldr r0, [r0, #24] 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3568 .loc 1 1792 8 view .LVU1206 3569 0012 10F4004F tst r0, #32768 3570 0016 34D1 bne .L246 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3571 .loc 1 1798 5 is_stmt 1 view .LVU1207 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3572 .loc 1 1798 5 view .LVU1208 3573 0018 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3574 001c 0128 cmp r0, #1 3575 001e 32D0 beq .L247 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3576 .loc 1 1798 5 discriminator 2 view .LVU1209 3577 0020 0120 movs r0, #1 3578 0022 84F84000 strb r0, [r4, #64] 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3579 .loc 1 1798 5 view .LVU1210 1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3580 .loc 1 1800 5 view .LVU1211 1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3581 .loc 1 1800 23 is_stmt 0 view .LVU1212 3582 0026 2220 movs r0, #34 3583 0028 84F84100 strb r0, [r4, #65] 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3584 .loc 1 1801 5 is_stmt 1 view .LVU1213 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3585 .loc 1 1801 23 is_stmt 0 view .LVU1214 3586 002c 1020 movs r0, #16 3587 002e 84F84200 strb r0, [r4, #66] 1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3588 .loc 1 1802 5 is_stmt 1 view .LVU1215 1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3589 .loc 1 1802 23 is_stmt 0 view .LVU1216 3590 0032 0020 movs r0, #0 3591 0034 6064 str r0, [r4, #68] 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3592 .loc 1 1805 5 is_stmt 1 view .LVU1217 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3593 .loc 1 1805 23 is_stmt 0 view .LVU1218 3594 0036 6262 str r2, [r4, #36] 1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; ARM GAS /tmp/ccDmmuIk.s page 214 3595 .loc 1 1806 5 is_stmt 1 view .LVU1219 1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3596 .loc 1 1806 23 is_stmt 0 view .LVU1220 3597 0038 6385 strh r3, [r4, #42] @ movhi 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3598 .loc 1 1807 5 is_stmt 1 view .LVU1221 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3599 .loc 1 1807 23 is_stmt 0 view .LVU1222 3600 003a 144B ldr r3, .L249 3601 .LVL243: 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3602 .loc 1 1807 23 view .LVU1223 3603 003c E362 str r3, [r4, #44] 3604 .LVL244: 1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3605 .loc 1 1808 5 is_stmt 1 view .LVU1224 1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3606 .loc 1 1808 23 is_stmt 0 view .LVU1225 3607 003e 144B ldr r3, .L249+4 3608 0040 6363 str r3, [r4, #52] 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3609 .loc 1 1810 5 is_stmt 1 view .LVU1226 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3610 .loc 1 1810 13 is_stmt 0 view .LVU1227 3611 0042 638D ldrh r3, [r4, #42] 3612 0044 9BB2 uxth r3, r3 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3613 .loc 1 1810 8 view .LVU1228 3614 0046 FF2B cmp r3, #255 3615 0048 14D9 bls .L243 1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3616 .loc 1 1812 7 is_stmt 1 view .LVU1229 1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3617 .loc 1 1812 22 is_stmt 0 view .LVU1230 3618 004a FF23 movs r3, #255 3619 004c 2385 strh r3, [r4, #40] @ movhi 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3620 .loc 1 1813 7 is_stmt 1 view .LVU1231 3621 .LVL245: 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3622 .loc 1 1813 16 is_stmt 0 view .LVU1232 3623 004e 4FF08073 mov r3, #16777216 3624 .LVL246: 3625 .L244: 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3626 .loc 1 1823 5 is_stmt 1 view .LVU1233 3627 0052 104A ldr r2, .L249+8 3628 .LVL247: 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3629 .loc 1 1823 5 is_stmt 0 view .LVU1234 3630 0054 0092 str r2, [sp] 3631 .LVL248: 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3632 .loc 1 1823 5 view .LVU1235 3633 0056 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3634 005a 2046 mov r0, r4 3635 005c FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/ccDmmuIk.s page 215 3636 .LVL249: 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3637 .loc 1 1826 5 is_stmt 1 view .LVU1236 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3638 .loc 1 1826 5 view .LVU1237 3639 0060 0025 movs r5, #0 3640 0062 84F84050 strb r5, [r4, #64] 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3641 .loc 1 1826 5 view .LVU1238 1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3642 .loc 1 1836 5 view .LVU1239 3643 0066 0221 movs r1, #2 3644 0068 2046 mov r0, r4 3645 006a FFF7FEFF bl I2C_Enable_IRQ 3646 .LVL250: 1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3647 .loc 1 1838 5 view .LVU1240 1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3648 .loc 1 1838 12 is_stmt 0 view .LVU1241 3649 006e 2846 mov r0, r5 3650 .LVL251: 3651 .L242: 1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3652 .loc 1 1844 1 view .LVU1242 3653 0070 03B0 add sp, sp, #12 3654 .LCFI41: 3655 .cfi_remember_state 3656 .cfi_def_cfa_offset 12 3657 @ sp needed 3658 0072 30BD pop {r4, r5, pc} 3659 .LVL252: 3660 .L243: 3661 .LCFI42: 3662 .cfi_restore_state 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3663 .loc 1 1817 7 is_stmt 1 view .LVU1243 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3664 .loc 1 1817 28 is_stmt 0 view .LVU1244 3665 0074 638D ldrh r3, [r4, #42] 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3666 .loc 1 1817 22 view .LVU1245 3667 0076 2385 strh r3, [r4, #40] @ movhi 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3668 .loc 1 1818 7 is_stmt 1 view .LVU1246 3669 .LVL253: 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3670 .loc 1 1818 16 is_stmt 0 view .LVU1247 3671 0078 4FF00073 mov r3, #33554432 3672 007c E9E7 b .L244 3673 .LVL254: 3674 .L245: 1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3675 .loc 1 1842 12 view .LVU1248 3676 007e 0220 movs r0, #2 3677 0080 F6E7 b .L242 3678 .L246: 1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 216 3679 .loc 1 1794 14 view .LVU1249 3680 0082 0220 movs r0, #2 3681 0084 F4E7 b .L242 3682 .L247: 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3683 .loc 1 1798 5 discriminator 1 view .LVU1250 3684 0086 0220 movs r0, #2 3685 0088 F2E7 b .L242 3686 .L250: 3687 008a 00BF .align 2 3688 .L249: 3689 008c 0000FFFF .word -65536 3690 0090 00000000 .word I2C_Master_ISR_IT 3691 0094 00240080 .word -2147474432 3692 .cfi_endproc 3693 .LFE338: 3695 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3696 .align 1 3697 .global HAL_I2C_Slave_Transmit_IT 3698 .syntax unified 3699 .thumb 3700 .thumb_func 3702 HAL_I2C_Slave_Transmit_IT: 3703 .LVL255: 3704 .LFB339: 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3705 .loc 1 1855 1 is_stmt 1 view -0 3706 .cfi_startproc 3707 @ args = 0, pretend = 0, frame = 0 3708 @ frame_needed = 0, uses_anonymous_args = 0 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3709 .loc 1 1856 3 view .LVU1252 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3710 .loc 1 1856 11 is_stmt 0 view .LVU1253 3711 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3712 .loc 1 1856 6 view .LVU1254 3713 0004 202B cmp r3, #32 3714 0006 38D1 bne .L254 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3715 .loc 1 1859 5 is_stmt 1 view .LVU1255 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3716 .loc 1 1859 5 view .LVU1256 3717 0008 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3718 000c 012B cmp r3, #1 3719 000e 36D0 beq .L255 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3720 .loc 1 1855 1 is_stmt 0 view .LVU1257 3721 0010 10B5 push {r4, lr} 3722 .LCFI43: 3723 .cfi_def_cfa_offset 8 3724 .cfi_offset 4, -8 3725 .cfi_offset 14, -4 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3726 .loc 1 1859 5 is_stmt 1 discriminator 2 view .LVU1258 3727 0012 0123 movs r3, #1 3728 0014 80F84030 strb r3, [r0, #64] ARM GAS /tmp/ccDmmuIk.s page 217 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3729 .loc 1 1859 5 view .LVU1259 1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3730 .loc 1 1861 5 view .LVU1260 1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3731 .loc 1 1861 23 is_stmt 0 view .LVU1261 3732 0018 2123 movs r3, #33 3733 001a 80F84130 strb r3, [r0, #65] 1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3734 .loc 1 1862 5 is_stmt 1 view .LVU1262 1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3735 .loc 1 1862 23 is_stmt 0 view .LVU1263 3736 001e 2023 movs r3, #32 3737 0020 80F84230 strb r3, [r0, #66] 1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3738 .loc 1 1863 5 is_stmt 1 view .LVU1264 1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3739 .loc 1 1863 23 is_stmt 0 view .LVU1265 3740 0024 0023 movs r3, #0 3741 0026 4364 str r3, [r0, #68] 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3742 .loc 1 1866 5 is_stmt 1 view .LVU1266 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3743 .loc 1 1866 9 is_stmt 0 view .LVU1267 3744 0028 0468 ldr r4, [r0] 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3745 .loc 1 1866 19 view .LVU1268 3746 002a 6368 ldr r3, [r4, #4] 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3747 .loc 1 1866 25 view .LVU1269 3748 002c 23F40043 bic r3, r3, #32768 3749 0030 6360 str r3, [r4, #4] 1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3750 .loc 1 1869 5 is_stmt 1 view .LVU1270 1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3751 .loc 1 1869 23 is_stmt 0 view .LVU1271 3752 0032 4162 str r1, [r0, #36] 1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3753 .loc 1 1870 5 is_stmt 1 view .LVU1272 1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3754 .loc 1 1870 23 is_stmt 0 view .LVU1273 3755 0034 4285 strh r2, [r0, #42] @ movhi 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3756 .loc 1 1871 5 is_stmt 1 view .LVU1274 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3757 .loc 1 1871 29 is_stmt 0 view .LVU1275 3758 0036 438D ldrh r3, [r0, #42] 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3759 .loc 1 1871 23 view .LVU1276 3760 0038 0385 strh r3, [r0, #40] @ movhi 1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3761 .loc 1 1872 5 is_stmt 1 view .LVU1277 1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3762 .loc 1 1872 23 is_stmt 0 view .LVU1278 3763 003a 124B ldr r3, .L261 3764 003c C362 str r3, [r0, #44] 1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 218 3765 .loc 1 1873 5 is_stmt 1 view .LVU1279 1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3766 .loc 1 1873 23 is_stmt 0 view .LVU1280 3767 003e 124B ldr r3, .L261+4 3768 0040 4363 str r3, [r0, #52] 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3769 .loc 1 1876 5 is_stmt 1 view .LVU1281 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3770 .loc 1 1876 19 is_stmt 0 view .LVU1282 3771 0042 036A ldr r3, [r0, #32] 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3772 .loc 1 1876 8 view .LVU1283 3773 0044 B3F5003F cmp r3, #131072 3774 0048 08D0 beq .L260 3775 .LVL256: 3776 .L253: 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3777 .loc 1 1890 5 is_stmt 1 view .LVU1284 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3778 .loc 1 1890 5 view .LVU1285 3779 004a 0024 movs r4, #0 3780 004c 80F84040 strb r4, [r0, #64] 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3781 .loc 1 1890 5 view .LVU1286 1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3782 .loc 1 1900 5 view .LVU1287 3783 0050 48F20101 movw r1, #32769 3784 .LVL257: 1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3785 .loc 1 1900 5 is_stmt 0 view .LVU1288 3786 0054 FFF7FEFF bl I2C_Enable_IRQ 3787 .LVL258: 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3788 .loc 1 1902 5 is_stmt 1 view .LVU1289 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3789 .loc 1 1902 12 is_stmt 0 view .LVU1290 3790 0058 2046 mov r0, r4 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3791 .loc 1 1908 1 view .LVU1291 3792 005a 10BD pop {r4, pc} 3793 .LVL259: 3794 .L260: 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3795 .loc 1 1880 7 is_stmt 1 view .LVU1292 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3796 .loc 1 1880 11 is_stmt 0 view .LVU1293 3797 005c 0368 ldr r3, [r0] 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3798 .loc 1 1880 30 view .LVU1294 3799 005e 0A78 ldrb r2, [r1] @ zero_extendqisi2 3800 .LVL260: 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3801 .loc 1 1880 28 view .LVU1295 3802 0060 9A62 str r2, [r3, #40] 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3803 .loc 1 1883 7 is_stmt 1 view .LVU1296 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 219 3804 .loc 1 1883 11 is_stmt 0 view .LVU1297 3805 0062 436A ldr r3, [r0, #36] 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3806 .loc 1 1883 21 view .LVU1298 3807 0064 0133 adds r3, r3, #1 3808 0066 4362 str r3, [r0, #36] 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3809 .loc 1 1885 7 is_stmt 1 view .LVU1299 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3810 .loc 1 1885 11 is_stmt 0 view .LVU1300 3811 0068 438D ldrh r3, [r0, #42] 3812 006a 9BB2 uxth r3, r3 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3813 .loc 1 1885 22 view .LVU1301 3814 006c 013B subs r3, r3, #1 3815 006e 9BB2 uxth r3, r3 3816 0070 4385 strh r3, [r0, #42] @ movhi 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3817 .loc 1 1886 7 is_stmt 1 view .LVU1302 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3818 .loc 1 1886 11 is_stmt 0 view .LVU1303 3819 0072 038D ldrh r3, [r0, #40] 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3820 .loc 1 1886 21 view .LVU1304 3821 0074 013B subs r3, r3, #1 3822 0076 0385 strh r3, [r0, #40] @ movhi 3823 0078 E7E7 b .L253 3824 .LVL261: 3825 .L254: 3826 .LCFI44: 3827 .cfi_def_cfa_offset 0 3828 .cfi_restore 4 3829 .cfi_restore 14 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3830 .loc 1 1906 12 view .LVU1305 3831 007a 0220 movs r0, #2 3832 .LVL262: 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3833 .loc 1 1906 12 view .LVU1306 3834 007c 7047 bx lr 3835 .LVL263: 3836 .L255: 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3837 .loc 1 1859 5 discriminator 1 view .LVU1307 3838 007e 0220 movs r0, #2 3839 .LVL264: 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3840 .loc 1 1908 1 view .LVU1308 3841 0080 7047 bx lr 3842 .L262: 3843 0082 00BF .align 2 3844 .L261: 3845 0084 0000FFFF .word -65536 3846 0088 00000000 .word I2C_Slave_ISR_IT 3847 .cfi_endproc 3848 .LFE339: 3850 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits ARM GAS /tmp/ccDmmuIk.s page 220 3851 .align 1 3852 .global HAL_I2C_Slave_Receive_IT 3853 .syntax unified 3854 .thumb 3855 .thumb_func 3857 HAL_I2C_Slave_Receive_IT: 3858 .LVL265: 3859 .LFB340: 1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3860 .loc 1 1919 1 is_stmt 1 view -0 3861 .cfi_startproc 3862 @ args = 0, pretend = 0, frame = 0 3863 @ frame_needed = 0, uses_anonymous_args = 0 1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3864 .loc 1 1919 1 is_stmt 0 view .LVU1310 3865 0000 38B5 push {r3, r4, r5, lr} 3866 .LCFI45: 3867 .cfi_def_cfa_offset 16 3868 .cfi_offset 3, -16 3869 .cfi_offset 4, -12 3870 .cfi_offset 5, -8 3871 .cfi_offset 14, -4 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3872 .loc 1 1920 3 is_stmt 1 view .LVU1311 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3873 .loc 1 1920 11 is_stmt 0 view .LVU1312 3874 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3875 .loc 1 1920 6 view .LVU1313 3876 0006 202B cmp r3, #32 3877 0008 23D1 bne .L265 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3878 .loc 1 1923 5 is_stmt 1 view .LVU1314 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3879 .loc 1 1923 5 view .LVU1315 3880 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3881 000e 012B cmp r3, #1 3882 0010 21D0 beq .L266 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3883 .loc 1 1923 5 discriminator 2 view .LVU1316 3884 0012 0123 movs r3, #1 3885 0014 80F84030 strb r3, [r0, #64] 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3886 .loc 1 1923 5 view .LVU1317 1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3887 .loc 1 1925 5 view .LVU1318 1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3888 .loc 1 1925 23 is_stmt 0 view .LVU1319 3889 0018 2223 movs r3, #34 3890 001a 80F84130 strb r3, [r0, #65] 1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3891 .loc 1 1926 5 is_stmt 1 view .LVU1320 1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3892 .loc 1 1926 23 is_stmt 0 view .LVU1321 3893 001e 2023 movs r3, #32 3894 0020 80F84230 strb r3, [r0, #66] 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 221 3895 .loc 1 1927 5 is_stmt 1 view .LVU1322 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3896 .loc 1 1927 23 is_stmt 0 view .LVU1323 3897 0024 0024 movs r4, #0 3898 0026 4464 str r4, [r0, #68] 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3899 .loc 1 1930 5 is_stmt 1 view .LVU1324 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3900 .loc 1 1930 9 is_stmt 0 view .LVU1325 3901 0028 0568 ldr r5, [r0] 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3902 .loc 1 1930 19 view .LVU1326 3903 002a 6B68 ldr r3, [r5, #4] 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3904 .loc 1 1930 25 view .LVU1327 3905 002c 23F40043 bic r3, r3, #32768 3906 0030 6B60 str r3, [r5, #4] 1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3907 .loc 1 1933 5 is_stmt 1 view .LVU1328 1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3908 .loc 1 1933 23 is_stmt 0 view .LVU1329 3909 0032 4162 str r1, [r0, #36] 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3910 .loc 1 1934 5 is_stmt 1 view .LVU1330 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3911 .loc 1 1934 23 is_stmt 0 view .LVU1331 3912 0034 4285 strh r2, [r0, #42] @ movhi 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3913 .loc 1 1935 5 is_stmt 1 view .LVU1332 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3914 .loc 1 1935 29 is_stmt 0 view .LVU1333 3915 0036 438D ldrh r3, [r0, #42] 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3916 .loc 1 1935 23 view .LVU1334 3917 0038 0385 strh r3, [r0, #40] @ movhi 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3918 .loc 1 1936 5 is_stmt 1 view .LVU1335 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3919 .loc 1 1936 23 is_stmt 0 view .LVU1336 3920 003a 084B ldr r3, .L268 3921 003c C362 str r3, [r0, #44] 1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3922 .loc 1 1937 5 is_stmt 1 view .LVU1337 1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3923 .loc 1 1937 23 is_stmt 0 view .LVU1338 3924 003e 084B ldr r3, .L268+4 3925 0040 4363 str r3, [r0, #52] 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3926 .loc 1 1940 5 is_stmt 1 view .LVU1339 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3927 .loc 1 1940 5 view .LVU1340 3928 0042 80F84040 strb r4, [r0, #64] 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3929 .loc 1 1940 5 view .LVU1341 1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3930 .loc 1 1950 5 view .LVU1342 3931 0046 48F20201 movw r1, #32770 ARM GAS /tmp/ccDmmuIk.s page 222 3932 .LVL266: 1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3933 .loc 1 1950 5 is_stmt 0 view .LVU1343 3934 004a FFF7FEFF bl I2C_Enable_IRQ 3935 .LVL267: 1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3936 .loc 1 1952 5 is_stmt 1 view .LVU1344 1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3937 .loc 1 1952 12 is_stmt 0 view .LVU1345 3938 004e 2046 mov r0, r4 3939 .L264: 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3940 .loc 1 1958 1 view .LVU1346 3941 0050 38BD pop {r3, r4, r5, pc} 3942 .LVL268: 3943 .L265: 1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3944 .loc 1 1956 12 view .LVU1347 3945 0052 0220 movs r0, #2 3946 .LVL269: 1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3947 .loc 1 1956 12 view .LVU1348 3948 0054 FCE7 b .L264 3949 .LVL270: 3950 .L266: 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3951 .loc 1 1923 5 discriminator 1 view .LVU1349 3952 0056 0220 movs r0, #2 3953 .LVL271: 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3954 .loc 1 1923 5 discriminator 1 view .LVU1350 3955 0058 FAE7 b .L264 3956 .L269: 3957 005a 00BF .align 2 3958 .L268: 3959 005c 0000FFFF .word -65536 3960 0060 00000000 .word I2C_Slave_ISR_IT 3961 .cfi_endproc 3962 .LFE340: 3964 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3965 .align 1 3966 .global HAL_I2C_Master_Transmit_DMA 3967 .syntax unified 3968 .thumb 3969 .thumb_func 3971 HAL_I2C_Master_Transmit_DMA: 3972 .LVL272: 3973 .LFB341: 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3974 .loc 1 1972 1 is_stmt 1 view -0 3975 .cfi_startproc 3976 @ args = 0, pretend = 0, frame = 0 3977 @ frame_needed = 0, uses_anonymous_args = 0 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3978 .loc 1 1972 1 is_stmt 0 view .LVU1352 3979 0000 70B5 push {r4, r5, r6, lr} 3980 .LCFI46: ARM GAS /tmp/ccDmmuIk.s page 223 3981 .cfi_def_cfa_offset 16 3982 .cfi_offset 4, -16 3983 .cfi_offset 5, -12 3984 .cfi_offset 6, -8 3985 .cfi_offset 14, -4 3986 0002 82B0 sub sp, sp, #8 3987 .LCFI47: 3988 .cfi_def_cfa_offset 24 3989 0004 0446 mov r4, r0 1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3990 .loc 1 1973 3 is_stmt 1 view .LVU1353 1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3991 .loc 1 1974 3 view .LVU1354 1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3992 .loc 1 1975 3 view .LVU1355 3993 .LVL273: 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3994 .loc 1 1977 3 view .LVU1356 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3995 .loc 1 1977 11 is_stmt 0 view .LVU1357 3996 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3997 .LVL274: 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3998 .loc 1 1977 6 view .LVU1358 3999 000a 2028 cmp r0, #32 4000 000c 40F09D80 bne .L280 4001 0010 0D46 mov r5, r1 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4002 .loc 1 1979 5 is_stmt 1 view .LVU1359 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4003 .loc 1 1979 9 is_stmt 0 view .LVU1360 4004 0012 2068 ldr r0, [r4] 4005 0014 8169 ldr r1, [r0, #24] 4006 .LVL275: 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4007 .loc 1 1979 8 view .LVU1361 4008 0016 11F40041 ands r1, r1, #32768 4009 001a 40F09980 bne .L281 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4010 .loc 1 1985 5 is_stmt 1 view .LVU1362 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4011 .loc 1 1985 5 view .LVU1363 4012 001e 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 4013 0022 012E cmp r6, #1 4014 0024 00F09680 beq .L282 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4015 .loc 1 1985 5 discriminator 2 view .LVU1364 4016 0028 0126 movs r6, #1 4017 002a 84F84060 strb r6, [r4, #64] 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4018 .loc 1 1985 5 view .LVU1365 1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4019 .loc 1 1987 5 view .LVU1366 1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4020 .loc 1 1987 23 is_stmt 0 view .LVU1367 4021 002e 2126 movs r6, #33 4022 0030 84F84160 strb r6, [r4, #65] ARM GAS /tmp/ccDmmuIk.s page 224 1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4023 .loc 1 1988 5 is_stmt 1 view .LVU1368 1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4024 .loc 1 1988 23 is_stmt 0 view .LVU1369 4025 0034 1026 movs r6, #16 4026 0036 84F84260 strb r6, [r4, #66] 1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4027 .loc 1 1989 5 is_stmt 1 view .LVU1370 1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4028 .loc 1 1989 23 is_stmt 0 view .LVU1371 4029 003a 0026 movs r6, #0 4030 003c 6664 str r6, [r4, #68] 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4031 .loc 1 1992 5 is_stmt 1 view .LVU1372 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4032 .loc 1 1992 23 is_stmt 0 view .LVU1373 4033 003e 6262 str r2, [r4, #36] 1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4034 .loc 1 1993 5 is_stmt 1 view .LVU1374 1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4035 .loc 1 1993 23 is_stmt 0 view .LVU1375 4036 0040 6385 strh r3, [r4, #42] @ movhi 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4037 .loc 1 1994 5 is_stmt 1 view .LVU1376 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4038 .loc 1 1994 23 is_stmt 0 view .LVU1377 4039 0042 454B ldr r3, .L286 4040 .LVL276: 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4041 .loc 1 1994 23 view .LVU1378 4042 0044 E362 str r3, [r4, #44] 4043 .LVL277: 1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4044 .loc 1 1995 5 is_stmt 1 view .LVU1379 1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4045 .loc 1 1995 23 is_stmt 0 view .LVU1380 4046 0046 454B ldr r3, .L286+4 4047 0048 6363 str r3, [r4, #52] 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4048 .loc 1 1997 5 is_stmt 1 view .LVU1381 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4049 .loc 1 1997 13 is_stmt 0 view .LVU1382 4050 004a 638D ldrh r3, [r4, #42] 4051 004c 9BB2 uxth r3, r3 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4052 .loc 1 1997 8 view .LVU1383 4053 004e FF2B cmp r3, #255 4054 0050 37D9 bls .L272 1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4055 .loc 1 1999 7 is_stmt 1 view .LVU1384 1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4056 .loc 1 1999 22 is_stmt 0 view .LVU1385 4057 0052 FF23 movs r3, #255 4058 0054 2385 strh r3, [r4, #40] @ movhi 2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4059 .loc 1 2000 7 is_stmt 1 view .LVU1386 4060 .LVL278: ARM GAS /tmp/ccDmmuIk.s page 225 2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4061 .loc 1 2000 16 is_stmt 0 view .LVU1387 4062 0056 4FF08076 mov r6, #16777216 4063 .LVL279: 4064 .L273: 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4065 .loc 1 2008 5 is_stmt 1 view .LVU1388 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4066 .loc 1 2008 13 is_stmt 0 view .LVU1389 4067 005a 238D ldrh r3, [r4, #40] 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4068 .loc 1 2008 8 view .LVU1390 4069 005c 63B1 cbz r3, .L274 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4070 .loc 1 2012 7 is_stmt 1 view .LVU1391 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4071 .loc 1 2012 30 is_stmt 0 view .LVU1392 4072 005e 1378 ldrb r3, [r2] @ zero_extendqisi2 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4073 .loc 1 2012 28 view .LVU1393 4074 0060 8362 str r3, [r0, #40] 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4075 .loc 1 2015 7 is_stmt 1 view .LVU1394 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4076 .loc 1 2015 11 is_stmt 0 view .LVU1395 4077 0062 636A ldr r3, [r4, #36] 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4078 .loc 1 2015 21 view .LVU1396 4079 0064 0133 adds r3, r3, #1 4080 0066 6362 str r3, [r4, #36] 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4081 .loc 1 2017 7 is_stmt 1 view .LVU1397 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4082 .loc 1 2017 24 is_stmt 0 view .LVU1398 4083 0068 218D ldrh r1, [r4, #40] 4084 .LVL280: 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4085 .loc 1 2018 7 is_stmt 1 view .LVU1399 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4086 .loc 1 2018 11 is_stmt 0 view .LVU1400 4087 006a 638D ldrh r3, [r4, #42] 4088 006c 9BB2 uxth r3, r3 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4089 .loc 1 2018 22 view .LVU1401 4090 006e 013B subs r3, r3, #1 4091 0070 9BB2 uxth r3, r3 4092 0072 6385 strh r3, [r4, #42] @ movhi 2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4093 .loc 1 2019 7 is_stmt 1 view .LVU1402 2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4094 .loc 1 2019 21 is_stmt 0 view .LVU1403 4095 0074 4B1E subs r3, r1, #1 4096 0076 2385 strh r3, [r4, #40] @ movhi 4097 .LVL281: 4098 .L274: 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4099 .loc 1 2022 5 is_stmt 1 view .LVU1404 ARM GAS /tmp/ccDmmuIk.s page 226 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4100 .loc 1 2022 13 is_stmt 0 view .LVU1405 4101 0078 238D ldrh r3, [r4, #40] 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4102 .loc 1 2022 8 view .LVU1406 4103 007a 002B cmp r3, #0 4104 007c 51D0 beq .L275 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4105 .loc 1 2024 7 is_stmt 1 view .LVU1407 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4106 .loc 1 2024 15 is_stmt 0 view .LVU1408 4107 007e A36B ldr r3, [r4, #56] 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4108 .loc 1 2024 10 view .LVU1409 4109 0080 23B3 cbz r3, .L276 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4110 .loc 1 2027 9 is_stmt 1 view .LVU1410 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4111 .loc 1 2027 40 is_stmt 0 view .LVU1411 4112 0082 374A ldr r2, .L286+8 4113 .LVL282: 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4114 .loc 1 2027 40 view .LVU1412 4115 0084 DA62 str r2, [r3, #44] 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4116 .loc 1 2030 9 is_stmt 1 view .LVU1413 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4117 .loc 1 2030 13 is_stmt 0 view .LVU1414 4118 0086 A36B ldr r3, [r4, #56] 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4119 .loc 1 2030 41 view .LVU1415 4120 0088 364A ldr r2, .L286+12 4121 008a 5A63 str r2, [r3, #52] 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4122 .loc 1 2033 9 is_stmt 1 view .LVU1416 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4123 .loc 1 2033 13 is_stmt 0 view .LVU1417 4124 008c A26B ldr r2, [r4, #56] 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4125 .loc 1 2033 44 view .LVU1418 4126 008e 0023 movs r3, #0 4127 0090 1363 str r3, [r2, #48] 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4128 .loc 1 2034 9 is_stmt 1 view .LVU1419 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4129 .loc 1 2034 13 is_stmt 0 view .LVU1420 4130 0092 A26B ldr r2, [r4, #56] 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4131 .loc 1 2034 41 view .LVU1421 4132 0094 9363 str r3, [r2, #56] 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4133 .loc 1 2037 9 is_stmt 1 view .LVU1422 2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4134 .loc 1 2038 57 is_stmt 0 view .LVU1423 4135 0096 2268 ldr r2, [r4] 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4136 .loc 1 2037 25 view .LVU1424 ARM GAS /tmp/ccDmmuIk.s page 227 4137 0098 238D ldrh r3, [r4, #40] 4138 009a 2832 adds r2, r2, #40 4139 009c 616A ldr r1, [r4, #36] 4140 .LVL283: 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4141 .loc 1 2037 25 view .LVU1425 4142 009e A06B ldr r0, [r4, #56] 4143 00a0 FFF7FEFF bl HAL_DMA_Start_IT 4144 .LVL284: 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4145 .loc 1 2055 7 is_stmt 1 view .LVU1426 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4146 .loc 1 2055 10 is_stmt 0 view .LVU1427 4147 00a4 00B3 cbz r0, .L285 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4148 .loc 1 2080 9 is_stmt 1 view .LVU1428 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4149 .loc 1 2080 25 is_stmt 0 view .LVU1429 4150 00a6 2023 movs r3, #32 4151 00a8 84F84130 strb r3, [r4, #65] 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4152 .loc 1 2081 9 is_stmt 1 view .LVU1430 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4153 .loc 1 2081 25 is_stmt 0 view .LVU1431 4154 00ac 0022 movs r2, #0 4155 00ae 84F84220 strb r2, [r4, #66] 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4156 .loc 1 2084 9 is_stmt 1 view .LVU1432 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4157 .loc 1 2084 13 is_stmt 0 view .LVU1433 4158 00b2 636C ldr r3, [r4, #68] 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4159 .loc 1 2084 25 view .LVU1434 4160 00b4 43F01003 orr r3, r3, #16 4161 00b8 6364 str r3, [r4, #68] 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4162 .loc 1 2087 9 is_stmt 1 view .LVU1435 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4163 .loc 1 2087 9 view .LVU1436 4164 00ba 84F84020 strb r2, [r4, #64] 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4165 .loc 1 2087 9 view .LVU1437 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4166 .loc 1 2089 9 view .LVU1438 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4167 .loc 1 2089 16 is_stmt 0 view .LVU1439 4168 00be 0120 movs r0, #1 4169 .LVL285: 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4170 .loc 1 2089 16 view .LVU1440 4171 00c0 44E0 b .L271 4172 .LVL286: 4173 .L272: 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4174 .loc 1 2004 7 is_stmt 1 view .LVU1441 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4175 .loc 1 2004 28 is_stmt 0 view .LVU1442 ARM GAS /tmp/ccDmmuIk.s page 228 4176 00c2 638D ldrh r3, [r4, #42] 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4177 .loc 1 2004 22 view .LVU1443 4178 00c4 2385 strh r3, [r4, #40] @ movhi 2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4179 .loc 1 2005 7 is_stmt 1 view .LVU1444 4180 .LVL287: 2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4181 .loc 1 2005 16 is_stmt 0 view .LVU1445 4182 00c6 4FF00076 mov r6, #33554432 4183 00ca C6E7 b .L273 4184 .LVL288: 4185 .L276: 2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4186 .loc 1 2043 9 is_stmt 1 view .LVU1446 2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4187 .loc 1 2043 25 is_stmt 0 view .LVU1447 4188 00cc 2023 movs r3, #32 4189 00ce 84F84130 strb r3, [r4, #65] 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4190 .loc 1 2044 9 is_stmt 1 view .LVU1448 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4191 .loc 1 2044 25 is_stmt 0 view .LVU1449 4192 00d2 0022 movs r2, #0 4193 .LVL289: 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4194 .loc 1 2044 25 view .LVU1450 4195 00d4 84F84220 strb r2, [r4, #66] 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4196 .loc 1 2047 9 is_stmt 1 view .LVU1451 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4197 .loc 1 2047 13 is_stmt 0 view .LVU1452 4198 00d8 636C ldr r3, [r4, #68] 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4199 .loc 1 2047 25 view .LVU1453 4200 00da 43F08003 orr r3, r3, #128 4201 00de 6364 str r3, [r4, #68] 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4202 .loc 1 2050 9 is_stmt 1 view .LVU1454 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4203 .loc 1 2050 9 view .LVU1455 4204 00e0 84F84020 strb r2, [r4, #64] 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4205 .loc 1 2050 9 view .LVU1456 2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4206 .loc 1 2052 9 view .LVU1457 2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4207 .loc 1 2052 16 is_stmt 0 view .LVU1458 4208 00e4 0120 movs r0, #1 4209 00e6 31E0 b .L271 4210 .LVL290: 4211 .L285: 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4212 .loc 1 2059 9 is_stmt 1 view .LVU1459 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4213 .loc 1 2059 60 is_stmt 0 view .LVU1460 4214 00e8 228D ldrh r2, [r4, #40] ARM GAS /tmp/ccDmmuIk.s page 229 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4215 .loc 1 2059 9 view .LVU1461 4216 00ea 0132 adds r2, r2, #1 4217 00ec 1E4B ldr r3, .L286+16 4218 00ee 0093 str r3, [sp] 4219 00f0 3346 mov r3, r6 4220 00f2 D2B2 uxtb r2, r2 4221 00f4 2946 mov r1, r5 4222 00f6 2046 mov r0, r4 4223 .LVL291: 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4224 .loc 1 2059 9 view .LVU1462 4225 00f8 FFF7FEFF bl I2C_TransferConfig 4226 .LVL292: 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4227 .loc 1 2063 9 is_stmt 1 view .LVU1463 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4228 .loc 1 2063 13 is_stmt 0 view .LVU1464 4229 00fc 638D ldrh r3, [r4, #42] 4230 00fe 9BB2 uxth r3, r3 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4231 .loc 1 2063 32 view .LVU1465 4232 0100 228D ldrh r2, [r4, #40] 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4233 .loc 1 2063 25 view .LVU1466 4234 0102 9B1A subs r3, r3, r2 4235 0104 9BB2 uxth r3, r3 4236 0106 6385 strh r3, [r4, #42] @ movhi 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4237 .loc 1 2066 9 is_stmt 1 view .LVU1467 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4238 .loc 1 2066 9 view .LVU1468 4239 0108 0023 movs r3, #0 4240 010a 84F84030 strb r3, [r4, #64] 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4241 .loc 1 2066 9 view .LVU1469 2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4242 .loc 1 2072 9 view .LVU1470 4243 010e 1021 movs r1, #16 4244 0110 2046 mov r0, r4 4245 0112 FFF7FEFF bl I2C_Enable_IRQ 4246 .LVL293: 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4247 .loc 1 2075 9 view .LVU1471 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4248 .loc 1 2075 13 is_stmt 0 view .LVU1472 4249 0116 2268 ldr r2, [r4] 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4250 .loc 1 2075 23 view .LVU1473 4251 0118 1368 ldr r3, [r2] 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4252 .loc 1 2075 29 view .LVU1474 4253 011a 43F48043 orr r3, r3, #16384 4254 011e 1360 str r3, [r2] 4255 0120 11E0 b .L279 4256 .LVL294: 4257 .L275: ARM GAS /tmp/ccDmmuIk.s page 230 2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4258 .loc 1 2095 7 is_stmt 1 view .LVU1475 2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4259 .loc 1 2095 21 is_stmt 0 view .LVU1476 4260 0122 124B ldr r3, .L286+20 4261 0124 6363 str r3, [r4, #52] 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4262 .loc 1 2099 7 is_stmt 1 view .LVU1477 4263 0126 104B ldr r3, .L286+16 4264 0128 0093 str r3, [sp] 4265 012a 4FF00073 mov r3, #33554432 4266 012e CAB2 uxtb r2, r1 4267 .LVL295: 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4268 .loc 1 2099 7 is_stmt 0 view .LVU1478 4269 0130 2946 mov r1, r5 4270 .LVL296: 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4271 .loc 1 2099 7 view .LVU1479 4272 0132 2046 mov r0, r4 4273 0134 FFF7FEFF bl I2C_TransferConfig 4274 .LVL297: 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4275 .loc 1 2103 7 is_stmt 1 view .LVU1480 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4276 .loc 1 2103 7 view .LVU1481 4277 0138 0023 movs r3, #0 4278 013a 84F84030 strb r3, [r4, #64] 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4279 .loc 1 2103 7 view .LVU1482 2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4280 .loc 1 2112 7 view .LVU1483 4281 013e 0121 movs r1, #1 4282 0140 2046 mov r0, r4 4283 0142 FFF7FEFF bl I2C_Enable_IRQ 4284 .LVL298: 4285 .L279: 2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4286 .loc 1 2115 5 view .LVU1484 2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4287 .loc 1 2115 12 is_stmt 0 view .LVU1485 4288 0146 0020 movs r0, #0 4289 0148 00E0 b .L271 4290 .LVL299: 4291 .L280: 2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4292 .loc 1 2119 12 view .LVU1486 4293 014a 0220 movs r0, #2 4294 .LVL300: 4295 .L271: 2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4296 .loc 1 2121 1 view .LVU1487 4297 014c 02B0 add sp, sp, #8 4298 .LCFI48: 4299 .cfi_remember_state 4300 .cfi_def_cfa_offset 16 4301 @ sp needed ARM GAS /tmp/ccDmmuIk.s page 231 4302 014e 70BD pop {r4, r5, r6, pc} 4303 .LVL301: 4304 .L281: 4305 .LCFI49: 4306 .cfi_restore_state 1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4307 .loc 1 1981 14 view .LVU1488 4308 0150 0220 movs r0, #2 4309 0152 FBE7 b .L271 4310 .L282: 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4311 .loc 1 1985 5 discriminator 1 view .LVU1489 4312 0154 0220 movs r0, #2 4313 0156 F9E7 b .L271 4314 .L287: 4315 .align 2 4316 .L286: 4317 0158 0000FFFF .word -65536 4318 015c 00000000 .word I2C_Master_ISR_DMA 4319 0160 00000000 .word I2C_DMAMasterTransmitCplt 4320 0164 00000000 .word I2C_DMAError 4321 0168 00200080 .word -2147475456 4322 016c 00000000 .word I2C_Master_ISR_IT 4323 .cfi_endproc 4324 .LFE341: 4326 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4327 .align 1 4328 .global HAL_I2C_Master_Receive_DMA 4329 .syntax unified 4330 .thumb 4331 .thumb_func 4333 HAL_I2C_Master_Receive_DMA: 4334 .LVL302: 4335 .LFB342: 2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 4336 .loc 1 2135 1 is_stmt 1 view -0 4337 .cfi_startproc 4338 @ args = 0, pretend = 0, frame = 0 4339 @ frame_needed = 0, uses_anonymous_args = 0 2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 4340 .loc 1 2135 1 is_stmt 0 view .LVU1491 4341 0000 70B5 push {r4, r5, r6, lr} 4342 .LCFI50: 4343 .cfi_def_cfa_offset 16 4344 .cfi_offset 4, -16 4345 .cfi_offset 5, -12 4346 .cfi_offset 6, -8 4347 .cfi_offset 14, -4 4348 0002 82B0 sub sp, sp, #8 4349 .LCFI51: 4350 .cfi_def_cfa_offset 24 4351 0004 0446 mov r4, r0 2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4352 .loc 1 2136 3 is_stmt 1 view .LVU1492 2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4353 .loc 1 2137 3 view .LVU1493 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 232 4354 .loc 1 2139 3 view .LVU1494 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4355 .loc 1 2139 11 is_stmt 0 view .LVU1495 4356 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4357 .LVL303: 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4358 .loc 1 2139 6 view .LVU1496 4359 000a 2028 cmp r0, #32 4360 000c 40F08C80 bne .L297 4361 0010 0D46 mov r5, r1 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4362 .loc 1 2141 5 is_stmt 1 view .LVU1497 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4363 .loc 1 2141 9 is_stmt 0 view .LVU1498 4364 0012 2168 ldr r1, [r4] 4365 .LVL304: 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4366 .loc 1 2141 9 view .LVU1499 4367 0014 8969 ldr r1, [r1, #24] 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4368 .loc 1 2141 8 view .LVU1500 4369 0016 11F4004F tst r1, #32768 4370 001a 40F08880 bne .L298 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4371 .loc 1 2147 5 is_stmt 1 view .LVU1501 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4372 .loc 1 2147 5 view .LVU1502 4373 001e 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 4374 0022 0129 cmp r1, #1 4375 0024 00F08580 beq .L299 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4376 .loc 1 2147 5 discriminator 2 view .LVU1503 4377 0028 0121 movs r1, #1 4378 002a 84F84010 strb r1, [r4, #64] 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4379 .loc 1 2147 5 view .LVU1504 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4380 .loc 1 2149 5 view .LVU1505 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4381 .loc 1 2149 23 is_stmt 0 view .LVU1506 4382 002e 2221 movs r1, #34 4383 0030 84F84110 strb r1, [r4, #65] 2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4384 .loc 1 2150 5 is_stmt 1 view .LVU1507 2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4385 .loc 1 2150 23 is_stmt 0 view .LVU1508 4386 0034 1021 movs r1, #16 4387 0036 84F84210 strb r1, [r4, #66] 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4388 .loc 1 2151 5 is_stmt 1 view .LVU1509 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4389 .loc 1 2151 23 is_stmt 0 view .LVU1510 4390 003a 0021 movs r1, #0 4391 003c 6164 str r1, [r4, #68] 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4392 .loc 1 2154 5 is_stmt 1 view .LVU1511 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccDmmuIk.s page 233 4393 .loc 1 2154 23 is_stmt 0 view .LVU1512 4394 003e 6262 str r2, [r4, #36] 2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4395 .loc 1 2155 5 is_stmt 1 view .LVU1513 2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4396 .loc 1 2155 23 is_stmt 0 view .LVU1514 4397 0040 6385 strh r3, [r4, #42] @ movhi 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4398 .loc 1 2156 5 is_stmt 1 view .LVU1515 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4399 .loc 1 2156 23 is_stmt 0 view .LVU1516 4400 0042 3D4B ldr r3, .L303 4401 .LVL305: 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4402 .loc 1 2156 23 view .LVU1517 4403 0044 E362 str r3, [r4, #44] 4404 .LVL306: 2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4405 .loc 1 2157 5 is_stmt 1 view .LVU1518 2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4406 .loc 1 2157 23 is_stmt 0 view .LVU1519 4407 0046 3D4B ldr r3, .L303+4 4408 0048 6363 str r3, [r4, #52] 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4409 .loc 1 2159 5 is_stmt 1 view .LVU1520 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4410 .loc 1 2159 13 is_stmt 0 view .LVU1521 4411 004a 638D ldrh r3, [r4, #42] 4412 004c 9BB2 uxth r3, r3 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4413 .loc 1 2159 8 view .LVU1522 4414 004e FF2B cmp r3, #255 4415 0050 27D9 bls .L290 2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4416 .loc 1 2161 7 is_stmt 1 view .LVU1523 2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4417 .loc 1 2161 22 is_stmt 0 view .LVU1524 4418 0052 FF23 movs r3, #255 4419 0054 2385 strh r3, [r4, #40] @ movhi 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4420 .loc 1 2162 7 is_stmt 1 view .LVU1525 4421 .LVL307: 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4422 .loc 1 2162 16 is_stmt 0 view .LVU1526 4423 0056 4FF08076 mov r6, #16777216 4424 .LVL308: 4425 .L291: 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4426 .loc 1 2170 5 is_stmt 1 view .LVU1527 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4427 .loc 1 2170 13 is_stmt 0 view .LVU1528 4428 005a 218D ldrh r1, [r4, #40] 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4429 .loc 1 2170 8 view .LVU1529 4430 005c 0029 cmp r1, #0 4431 005e 4FD0 beq .L292 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 234 4432 .loc 1 2172 7 is_stmt 1 view .LVU1530 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4433 .loc 1 2172 15 is_stmt 0 view .LVU1531 4434 0060 E36B ldr r3, [r4, #60] 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4435 .loc 1 2172 10 view .LVU1532 4436 0062 1BB3 cbz r3, .L293 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4437 .loc 1 2175 9 is_stmt 1 view .LVU1533 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4438 .loc 1 2175 40 is_stmt 0 view .LVU1534 4439 0064 3649 ldr r1, .L303+8 4440 0066 D962 str r1, [r3, #44] 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4441 .loc 1 2178 9 is_stmt 1 view .LVU1535 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4442 .loc 1 2178 13 is_stmt 0 view .LVU1536 4443 0068 E36B ldr r3, [r4, #60] 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4444 .loc 1 2178 41 view .LVU1537 4445 006a 3649 ldr r1, .L303+12 4446 006c 5963 str r1, [r3, #52] 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4447 .loc 1 2181 9 is_stmt 1 view .LVU1538 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4448 .loc 1 2181 13 is_stmt 0 view .LVU1539 4449 006e E16B ldr r1, [r4, #60] 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4450 .loc 1 2181 44 view .LVU1540 4451 0070 0023 movs r3, #0 4452 0072 0B63 str r3, [r1, #48] 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4453 .loc 1 2182 9 is_stmt 1 view .LVU1541 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4454 .loc 1 2182 13 is_stmt 0 view .LVU1542 4455 0074 E16B ldr r1, [r4, #60] 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4456 .loc 1 2182 41 view .LVU1543 4457 0076 8B63 str r3, [r1, #56] 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4458 .loc 1 2185 9 is_stmt 1 view .LVU1544 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4459 .loc 1 2185 71 is_stmt 0 view .LVU1545 4460 0078 2168 ldr r1, [r4] 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4461 .loc 1 2185 25 view .LVU1546 4462 007a 238D ldrh r3, [r4, #40] 4463 007c 2431 adds r1, r1, #36 4464 007e E06B ldr r0, [r4, #60] 4465 0080 FFF7FEFF bl HAL_DMA_Start_IT 4466 .LVL309: 2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4467 .loc 1 2203 7 is_stmt 1 view .LVU1547 2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4468 .loc 1 2203 10 is_stmt 0 view .LVU1548 4469 0084 00B3 cbz r0, .L302 2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccDmmuIk.s page 235 4470 .loc 1 2227 9 is_stmt 1 view .LVU1549 2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4471 .loc 1 2227 25 is_stmt 0 view .LVU1550 4472 0086 2023 movs r3, #32 4473 0088 84F84130 strb r3, [r4, #65] 2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4474 .loc 1 2228 9 is_stmt 1 view .LVU1551 2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4475 .loc 1 2228 25 is_stmt 0 view .LVU1552 4476 008c 0022 movs r2, #0 4477 008e 84F84220 strb r2, [r4, #66] 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4478 .loc 1 2231 9 is_stmt 1 view .LVU1553 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4479 .loc 1 2231 13 is_stmt 0 view .LVU1554 4480 0092 636C ldr r3, [r4, #68] 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4481 .loc 1 2231 25 view .LVU1555 4482 0094 43F01003 orr r3, r3, #16 4483 0098 6364 str r3, [r4, #68] 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4484 .loc 1 2234 9 is_stmt 1 view .LVU1556 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4485 .loc 1 2234 9 view .LVU1557 4486 009a 84F84020 strb r2, [r4, #64] 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4487 .loc 1 2234 9 view .LVU1558 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4488 .loc 1 2236 9 view .LVU1559 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4489 .loc 1 2236 16 is_stmt 0 view .LVU1560 4490 009e 0120 movs r0, #1 4491 .LVL310: 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4492 .loc 1 2236 16 view .LVU1561 4493 00a0 43E0 b .L289 4494 .LVL311: 4495 .L290: 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4496 .loc 1 2166 7 is_stmt 1 view .LVU1562 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4497 .loc 1 2166 28 is_stmt 0 view .LVU1563 4498 00a2 638D ldrh r3, [r4, #42] 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4499 .loc 1 2166 22 view .LVU1564 4500 00a4 2385 strh r3, [r4, #40] @ movhi 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4501 .loc 1 2167 7 is_stmt 1 view .LVU1565 4502 .LVL312: 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4503 .loc 1 2167 16 is_stmt 0 view .LVU1566 4504 00a6 4FF00076 mov r6, #33554432 4505 00aa D6E7 b .L291 4506 .LVL313: 4507 .L293: 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4508 .loc 1 2191 9 is_stmt 1 view .LVU1567 ARM GAS /tmp/ccDmmuIk.s page 236 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4509 .loc 1 2191 25 is_stmt 0 view .LVU1568 4510 00ac 2023 movs r3, #32 4511 00ae 84F84130 strb r3, [r4, #65] 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4512 .loc 1 2192 9 is_stmt 1 view .LVU1569 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4513 .loc 1 2192 25 is_stmt 0 view .LVU1570 4514 00b2 0022 movs r2, #0 4515 .LVL314: 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4516 .loc 1 2192 25 view .LVU1571 4517 00b4 84F84220 strb r2, [r4, #66] 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4518 .loc 1 2195 9 is_stmt 1 view .LVU1572 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4519 .loc 1 2195 13 is_stmt 0 view .LVU1573 4520 00b8 636C ldr r3, [r4, #68] 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4521 .loc 1 2195 25 view .LVU1574 4522 00ba 43F08003 orr r3, r3, #128 4523 00be 6364 str r3, [r4, #68] 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4524 .loc 1 2198 9 is_stmt 1 view .LVU1575 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4525 .loc 1 2198 9 view .LVU1576 4526 00c0 84F84020 strb r2, [r4, #64] 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4527 .loc 1 2198 9 view .LVU1577 2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4528 .loc 1 2200 9 view .LVU1578 2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4529 .loc 1 2200 16 is_stmt 0 view .LVU1579 4530 00c4 0120 movs r0, #1 4531 00c6 30E0 b .L289 4532 .LVL315: 4533 .L302: 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4534 .loc 1 2207 9 is_stmt 1 view .LVU1580 4535 00c8 1F4B ldr r3, .L303+16 4536 00ca 0093 str r3, [sp] 4537 00cc 3346 mov r3, r6 4538 00ce 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 4539 00d2 2946 mov r1, r5 4540 00d4 2046 mov r0, r4 4541 .LVL316: 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4542 .loc 1 2207 9 is_stmt 0 view .LVU1581 4543 00d6 FFF7FEFF bl I2C_TransferConfig 4544 .LVL317: 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4545 .loc 1 2210 9 is_stmt 1 view .LVU1582 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4546 .loc 1 2210 13 is_stmt 0 view .LVU1583 4547 00da 638D ldrh r3, [r4, #42] 4548 00dc 9BB2 uxth r3, r3 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 237 4549 .loc 1 2210 32 view .LVU1584 4550 00de 228D ldrh r2, [r4, #40] 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4551 .loc 1 2210 25 view .LVU1585 4552 00e0 9B1A subs r3, r3, r2 4553 00e2 9BB2 uxth r3, r3 4554 00e4 6385 strh r3, [r4, #42] @ movhi 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4555 .loc 1 2213 9 is_stmt 1 view .LVU1586 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4556 .loc 1 2213 9 view .LVU1587 4557 00e6 0023 movs r3, #0 4558 00e8 84F84030 strb r3, [r4, #64] 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4559 .loc 1 2213 9 view .LVU1588 2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4560 .loc 1 2219 9 view .LVU1589 4561 00ec 1021 movs r1, #16 4562 00ee 2046 mov r0, r4 4563 00f0 FFF7FEFF bl I2C_Enable_IRQ 4564 .LVL318: 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4565 .loc 1 2222 9 view .LVU1590 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4566 .loc 1 2222 13 is_stmt 0 view .LVU1591 4567 00f4 2268 ldr r2, [r4] 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4568 .loc 1 2222 23 view .LVU1592 4569 00f6 1368 ldr r3, [r2] 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4570 .loc 1 2222 29 view .LVU1593 4571 00f8 43F40043 orr r3, r3, #32768 4572 00fc 1360 str r3, [r2] 4573 00fe 11E0 b .L296 4574 .LVL319: 4575 .L292: 2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4576 .loc 1 2242 7 is_stmt 1 view .LVU1594 2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4577 .loc 1 2242 21 is_stmt 0 view .LVU1595 4578 0100 124B ldr r3, .L303+20 4579 0102 6363 str r3, [r4, #52] 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4580 .loc 1 2246 7 is_stmt 1 view .LVU1596 4581 0104 104B ldr r3, .L303+16 4582 0106 0093 str r3, [sp] 4583 0108 4FF00073 mov r3, #33554432 4584 010c CAB2 uxtb r2, r1 4585 .LVL320: 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4586 .loc 1 2246 7 is_stmt 0 view .LVU1597 4587 010e 2946 mov r1, r5 4588 0110 2046 mov r0, r4 4589 0112 FFF7FEFF bl I2C_TransferConfig 4590 .LVL321: 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4591 .loc 1 2250 7 is_stmt 1 view .LVU1598 ARM GAS /tmp/ccDmmuIk.s page 238 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4592 .loc 1 2250 7 view .LVU1599 4593 0116 0023 movs r3, #0 4594 0118 84F84030 strb r3, [r4, #64] 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4595 .loc 1 2250 7 view .LVU1600 2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4596 .loc 1 2259 7 view .LVU1601 4597 011c 0221 movs r1, #2 4598 011e 2046 mov r0, r4 4599 0120 FFF7FEFF bl I2C_Enable_IRQ 4600 .LVL322: 4601 .L296: 2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4602 .loc 1 2262 5 view .LVU1602 2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4603 .loc 1 2262 12 is_stmt 0 view .LVU1603 4604 0124 0020 movs r0, #0 4605 0126 00E0 b .L289 4606 .LVL323: 4607 .L297: 2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4608 .loc 1 2266 12 view .LVU1604 4609 0128 0220 movs r0, #2 4610 .LVL324: 4611 .L289: 2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4612 .loc 1 2268 1 view .LVU1605 4613 012a 02B0 add sp, sp, #8 4614 .LCFI52: 4615 .cfi_remember_state 4616 .cfi_def_cfa_offset 16 4617 @ sp needed 4618 012c 70BD pop {r4, r5, r6, pc} 4619 .LVL325: 4620 .L298: 4621 .LCFI53: 4622 .cfi_restore_state 2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4623 .loc 1 2143 14 view .LVU1606 4624 012e 0220 movs r0, #2 4625 0130 FBE7 b .L289 4626 .L299: 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4627 .loc 1 2147 5 discriminator 1 view .LVU1607 4628 0132 0220 movs r0, #2 4629 0134 F9E7 b .L289 4630 .L304: 4631 0136 00BF .align 2 4632 .L303: 4633 0138 0000FFFF .word -65536 4634 013c 00000000 .word I2C_Master_ISR_DMA 4635 0140 00000000 .word I2C_DMAMasterReceiveCplt 4636 0144 00000000 .word I2C_DMAError 4637 0148 00240080 .word -2147474432 4638 014c 00000000 .word I2C_Master_ISR_IT 4639 .cfi_endproc ARM GAS /tmp/ccDmmuIk.s page 239 4640 .LFE342: 4642 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4643 .align 1 4644 .global HAL_I2C_Slave_Transmit_DMA 4645 .syntax unified 4646 .thumb 4647 .thumb_func 4649 HAL_I2C_Slave_Transmit_DMA: 4650 .LVL326: 4651 .LFB343: 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4652 .loc 1 2279 1 is_stmt 1 view -0 4653 .cfi_startproc 4654 @ args = 0, pretend = 0, frame = 0 4655 @ frame_needed = 0, uses_anonymous_args = 0 2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4656 .loc 1 2280 3 view .LVU1609 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4657 .loc 1 2282 3 view .LVU1610 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4658 .loc 1 2282 11 is_stmt 0 view .LVU1611 4659 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4660 .loc 1 2282 6 view .LVU1612 4661 0004 202B cmp r3, #32 4662 0006 40F08D80 bne .L315 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4663 .loc 1 2279 1 view .LVU1613 4664 000a 10B5 push {r4, lr} 4665 .LCFI54: 4666 .cfi_def_cfa_offset 8 4667 .cfi_offset 4, -8 4668 .cfi_offset 14, -4 4669 000c 0446 mov r4, r0 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4670 .loc 1 2284 5 is_stmt 1 view .LVU1614 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4671 .loc 1 2284 8 is_stmt 0 view .LVU1615 4672 000e 0029 cmp r1, #0 4673 0010 44D0 beq .L307 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4674 .loc 1 2284 25 discriminator 1 view .LVU1616 4675 0012 002A cmp r2, #0 4676 0014 42D0 beq .L307 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4677 .loc 1 2290 5 is_stmt 1 view .LVU1617 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4678 .loc 1 2290 5 view .LVU1618 4679 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4680 001a 012B cmp r3, #1 4681 001c 00F08480 beq .L316 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4682 .loc 1 2290 5 discriminator 2 view .LVU1619 4683 0020 0123 movs r3, #1 4684 0022 80F84030 strb r3, [r0, #64] 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4685 .loc 1 2290 5 view .LVU1620 ARM GAS /tmp/ccDmmuIk.s page 240 2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4686 .loc 1 2292 5 view .LVU1621 2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4687 .loc 1 2292 23 is_stmt 0 view .LVU1622 4688 0026 2123 movs r3, #33 4689 0028 80F84130 strb r3, [r0, #65] 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4690 .loc 1 2293 5 is_stmt 1 view .LVU1623 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4691 .loc 1 2293 23 is_stmt 0 view .LVU1624 4692 002c 2023 movs r3, #32 4693 002e 80F84230 strb r3, [r0, #66] 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4694 .loc 1 2294 5 is_stmt 1 view .LVU1625 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4695 .loc 1 2294 23 is_stmt 0 view .LVU1626 4696 0032 0023 movs r3, #0 4697 0034 4364 str r3, [r0, #68] 2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4698 .loc 1 2297 5 is_stmt 1 view .LVU1627 2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4699 .loc 1 2297 23 is_stmt 0 view .LVU1628 4700 0036 4162 str r1, [r0, #36] 2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4701 .loc 1 2298 5 is_stmt 1 view .LVU1629 2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4702 .loc 1 2298 23 is_stmt 0 view .LVU1630 4703 0038 4285 strh r2, [r0, #42] @ movhi 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4704 .loc 1 2299 5 is_stmt 1 view .LVU1631 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4705 .loc 1 2299 29 is_stmt 0 view .LVU1632 4706 003a 438D ldrh r3, [r0, #42] 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4707 .loc 1 2299 23 view .LVU1633 4708 003c 0385 strh r3, [r0, #40] @ movhi 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4709 .loc 1 2300 5 is_stmt 1 view .LVU1634 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4710 .loc 1 2300 23 is_stmt 0 view .LVU1635 4711 003e 3B4B ldr r3, .L324 4712 0040 C362 str r3, [r0, #44] 2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4713 .loc 1 2301 5 is_stmt 1 view .LVU1636 2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4714 .loc 1 2301 23 is_stmt 0 view .LVU1637 4715 0042 3B4B ldr r3, .L324+4 4716 0044 4363 str r3, [r0, #52] 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4717 .loc 1 2304 5 is_stmt 1 view .LVU1638 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4718 .loc 1 2304 19 is_stmt 0 view .LVU1639 4719 0046 036A ldr r3, [r0, #32] 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4720 .loc 1 2304 8 view .LVU1640 4721 0048 B3F5003F cmp r3, #131072 4722 004c 2BD0 beq .L322 ARM GAS /tmp/ccDmmuIk.s page 241 4723 .LVL327: 4724 .L309: 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4725 .loc 1 2317 5 is_stmt 1 view .LVU1641 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4726 .loc 1 2317 13 is_stmt 0 view .LVU1642 4727 004e 638D ldrh r3, [r4, #42] 4728 0050 9BB2 uxth r3, r3 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4729 .loc 1 2317 8 view .LVU1643 4730 0052 002B cmp r3, #0 4731 0054 57D0 beq .L310 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4732 .loc 1 2319 7 is_stmt 1 view .LVU1644 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4733 .loc 1 2319 15 is_stmt 0 view .LVU1645 4734 0056 A36B ldr r3, [r4, #56] 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4735 .loc 1 2319 10 view .LVU1646 4736 0058 002B cmp r3, #0 4737 005a 33D0 beq .L311 2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4738 .loc 1 2322 9 is_stmt 1 view .LVU1647 2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4739 .loc 1 2322 40 is_stmt 0 view .LVU1648 4740 005c 354A ldr r2, .L324+8 4741 005e DA62 str r2, [r3, #44] 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4742 .loc 1 2325 9 is_stmt 1 view .LVU1649 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4743 .loc 1 2325 13 is_stmt 0 view .LVU1650 4744 0060 A36B ldr r3, [r4, #56] 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4745 .loc 1 2325 41 view .LVU1651 4746 0062 354A ldr r2, .L324+12 4747 0064 5A63 str r2, [r3, #52] 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4748 .loc 1 2328 9 is_stmt 1 view .LVU1652 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4749 .loc 1 2328 13 is_stmt 0 view .LVU1653 4750 0066 A26B ldr r2, [r4, #56] 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4751 .loc 1 2328 44 view .LVU1654 4752 0068 0023 movs r3, #0 4753 006a 1363 str r3, [r2, #48] 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4754 .loc 1 2329 9 is_stmt 1 view .LVU1655 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4755 .loc 1 2329 13 is_stmt 0 view .LVU1656 4756 006c A26B ldr r2, [r4, #56] 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4757 .loc 1 2329 41 view .LVU1657 4758 006e 9363 str r3, [r2, #56] 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4759 .loc 1 2332 9 is_stmt 1 view .LVU1658 2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4760 .loc 1 2333 83 is_stmt 0 view .LVU1659 ARM GAS /tmp/ccDmmuIk.s page 242 4761 0070 2268 ldr r2, [r4] 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4762 .loc 1 2332 25 view .LVU1660 4763 0072 238D ldrh r3, [r4, #40] 4764 0074 2832 adds r2, r2, #40 4765 0076 616A ldr r1, [r4, #36] 4766 .LVL328: 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4767 .loc 1 2332 25 view .LVU1661 4768 0078 A06B ldr r0, [r4, #56] 4769 .LVL329: 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4770 .loc 1 2332 25 view .LVU1662 4771 007a FFF7FEFF bl HAL_DMA_Start_IT 4772 .LVL330: 2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4773 .loc 1 2351 7 is_stmt 1 view .LVU1663 2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4774 .loc 1 2351 10 is_stmt 0 view .LVU1664 4775 007e 78B3 cbz r0, .L323 2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4776 .loc 1 2371 9 is_stmt 1 view .LVU1665 2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4777 .loc 1 2371 25 is_stmt 0 view .LVU1666 4778 0080 2823 movs r3, #40 4779 0082 84F84130 strb r3, [r4, #65] 2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4780 .loc 1 2372 9 is_stmt 1 view .LVU1667 2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4781 .loc 1 2372 25 is_stmt 0 view .LVU1668 4782 0086 0022 movs r2, #0 4783 0088 84F84220 strb r2, [r4, #66] 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4784 .loc 1 2375 9 is_stmt 1 view .LVU1669 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4785 .loc 1 2375 13 is_stmt 0 view .LVU1670 4786 008c 636C ldr r3, [r4, #68] 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4787 .loc 1 2375 25 view .LVU1671 4788 008e 43F01003 orr r3, r3, #16 4789 0092 6364 str r3, [r4, #68] 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4790 .loc 1 2378 9 is_stmt 1 view .LVU1672 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4791 .loc 1 2378 9 view .LVU1673 4792 0094 84F84020 strb r2, [r4, #64] 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4793 .loc 1 2378 9 view .LVU1674 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4794 .loc 1 2380 9 view .LVU1675 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4795 .loc 1 2380 16 is_stmt 0 view .LVU1676 4796 0098 0120 movs r0, #1 4797 .LVL331: 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4798 .loc 1 2380 16 view .LVU1677 4799 009a 03E0 b .L306 ARM GAS /tmp/ccDmmuIk.s page 243 4800 .LVL332: 4801 .L307: 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4802 .loc 1 2286 7 is_stmt 1 view .LVU1678 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4803 .loc 1 2286 23 is_stmt 0 view .LVU1679 4804 009c 4FF40073 mov r3, #512 4805 00a0 6364 str r3, [r4, #68] 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4806 .loc 1 2287 7 is_stmt 1 view .LVU1680 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4807 .loc 1 2287 15 is_stmt 0 view .LVU1681 4808 00a2 0120 movs r0, #1 4809 .LVL333: 4810 .L306: 2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4811 .loc 1 2404 1 view .LVU1682 4812 00a4 10BD pop {r4, pc} 4813 .LVL334: 4814 .L322: 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4815 .loc 1 2308 7 is_stmt 1 view .LVU1683 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4816 .loc 1 2308 11 is_stmt 0 view .LVU1684 4817 00a6 0368 ldr r3, [r0] 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4818 .loc 1 2308 30 view .LVU1685 4819 00a8 0A78 ldrb r2, [r1] @ zero_extendqisi2 4820 .LVL335: 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4821 .loc 1 2308 28 view .LVU1686 4822 00aa 9A62 str r2, [r3, #40] 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4823 .loc 1 2311 7 is_stmt 1 view .LVU1687 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4824 .loc 1 2311 11 is_stmt 0 view .LVU1688 4825 00ac 436A ldr r3, [r0, #36] 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4826 .loc 1 2311 21 view .LVU1689 4827 00ae 0133 adds r3, r3, #1 4828 00b0 4362 str r3, [r0, #36] 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4829 .loc 1 2313 7 is_stmt 1 view .LVU1690 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4830 .loc 1 2313 11 is_stmt 0 view .LVU1691 4831 00b2 438D ldrh r3, [r0, #42] 4832 00b4 9BB2 uxth r3, r3 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4833 .loc 1 2313 22 view .LVU1692 4834 00b6 013B subs r3, r3, #1 4835 00b8 9BB2 uxth r3, r3 4836 00ba 4385 strh r3, [r0, #42] @ movhi 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4837 .loc 1 2314 7 is_stmt 1 view .LVU1693 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4838 .loc 1 2314 11 is_stmt 0 view .LVU1694 4839 00bc 038D ldrh r3, [r0, #40] ARM GAS /tmp/ccDmmuIk.s page 244 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4840 .loc 1 2314 21 view .LVU1695 4841 00be 013B subs r3, r3, #1 4842 00c0 0385 strh r3, [r0, #40] @ movhi 4843 00c2 C4E7 b .L309 4844 .L311: 2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4845 .loc 1 2339 9 is_stmt 1 view .LVU1696 2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4846 .loc 1 2339 25 is_stmt 0 view .LVU1697 4847 00c4 2823 movs r3, #40 4848 00c6 84F84130 strb r3, [r4, #65] 2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4849 .loc 1 2340 9 is_stmt 1 view .LVU1698 2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4850 .loc 1 2340 25 is_stmt 0 view .LVU1699 4851 00ca 0022 movs r2, #0 4852 00cc 84F84220 strb r2, [r4, #66] 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4853 .loc 1 2343 9 is_stmt 1 view .LVU1700 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4854 .loc 1 2343 13 is_stmt 0 view .LVU1701 4855 00d0 636C ldr r3, [r4, #68] 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4856 .loc 1 2343 25 view .LVU1702 4857 00d2 43F08003 orr r3, r3, #128 4858 00d6 6364 str r3, [r4, #68] 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4859 .loc 1 2346 9 is_stmt 1 view .LVU1703 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4860 .loc 1 2346 9 view .LVU1704 4861 00d8 84F84020 strb r2, [r4, #64] 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4862 .loc 1 2346 9 view .LVU1705 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4863 .loc 1 2348 9 view .LVU1706 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4864 .loc 1 2348 16 is_stmt 0 view .LVU1707 4865 00dc 0120 movs r0, #1 4866 .LVL336: 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4867 .loc 1 2348 16 view .LVU1708 4868 00de E1E7 b .L306 4869 .LVL337: 4870 .L323: 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4871 .loc 1 2354 9 is_stmt 1 view .LVU1709 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4872 .loc 1 2354 13 is_stmt 0 view .LVU1710 4873 00e0 2268 ldr r2, [r4] 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4874 .loc 1 2354 23 view .LVU1711 4875 00e2 5368 ldr r3, [r2, #4] 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4876 .loc 1 2354 29 view .LVU1712 4877 00e4 23F40043 bic r3, r3, #32768 4878 00e8 5360 str r3, [r2, #4] ARM GAS /tmp/ccDmmuIk.s page 245 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4879 .loc 1 2357 9 is_stmt 1 view .LVU1713 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4880 .loc 1 2357 9 view .LVU1714 4881 00ea 0023 movs r3, #0 4882 00ec 84F84030 strb r3, [r4, #64] 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4883 .loc 1 2357 9 view .LVU1715 2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4884 .loc 1 2363 9 view .LVU1716 4885 00f0 4FF40041 mov r1, #32768 4886 00f4 2046 mov r0, r4 4887 .LVL338: 2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4888 .loc 1 2363 9 is_stmt 0 view .LVU1717 4889 00f6 FFF7FEFF bl I2C_Enable_IRQ 4890 .LVL339: 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4891 .loc 1 2366 9 is_stmt 1 view .LVU1718 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4892 .loc 1 2366 13 is_stmt 0 view .LVU1719 4893 00fa 2268 ldr r2, [r4] 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4894 .loc 1 2366 23 view .LVU1720 4895 00fc 1368 ldr r3, [r2] 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4896 .loc 1 2366 29 view .LVU1721 4897 00fe 43F48043 orr r3, r3, #16384 4898 0102 1360 str r3, [r2] 4899 0104 0CE0 b .L314 4900 .LVL340: 4901 .L310: 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4902 .loc 1 2386 7 is_stmt 1 view .LVU1722 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4903 .loc 1 2386 11 is_stmt 0 view .LVU1723 4904 0106 2268 ldr r2, [r4] 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4905 .loc 1 2386 21 view .LVU1724 4906 0108 5368 ldr r3, [r2, #4] 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4907 .loc 1 2386 27 view .LVU1725 4908 010a 23F40043 bic r3, r3, #32768 4909 010e 5360 str r3, [r2, #4] 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4910 .loc 1 2389 7 is_stmt 1 view .LVU1726 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4911 .loc 1 2389 7 view .LVU1727 4912 0110 0023 movs r3, #0 4913 0112 84F84030 strb r3, [r4, #64] 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4914 .loc 1 2389 7 view .LVU1728 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4915 .loc 1 2395 7 view .LVU1729 4916 0116 4FF40041 mov r1, #32768 4917 .LVL341: 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 246 4918 .loc 1 2395 7 is_stmt 0 view .LVU1730 4919 011a 2046 mov r0, r4 4920 .LVL342: 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4921 .loc 1 2395 7 view .LVU1731 4922 011c FFF7FEFF bl I2C_Enable_IRQ 4923 .LVL343: 4924 .L314: 2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4925 .loc 1 2398 5 is_stmt 1 view .LVU1732 2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4926 .loc 1 2398 12 is_stmt 0 view .LVU1733 4927 0120 0020 movs r0, #0 4928 0122 BFE7 b .L306 4929 .LVL344: 4930 .L315: 4931 .LCFI55: 4932 .cfi_def_cfa_offset 0 4933 .cfi_restore 4 4934 .cfi_restore 14 2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4935 .loc 1 2402 12 view .LVU1734 4936 0124 0220 movs r0, #2 4937 .LVL345: 2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4938 .loc 1 2404 1 view .LVU1735 4939 0126 7047 bx lr 4940 .LVL346: 4941 .L316: 4942 .LCFI56: 4943 .cfi_def_cfa_offset 8 4944 .cfi_offset 4, -8 4945 .cfi_offset 14, -4 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4946 .loc 1 2290 5 discriminator 1 view .LVU1736 4947 0128 0220 movs r0, #2 4948 .LVL347: 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4949 .loc 1 2290 5 discriminator 1 view .LVU1737 4950 012a BBE7 b .L306 4951 .L325: 4952 .align 2 4953 .L324: 4954 012c 0000FFFF .word -65536 4955 0130 00000000 .word I2C_Slave_ISR_DMA 4956 0134 00000000 .word I2C_DMASlaveTransmitCplt 4957 0138 00000000 .word I2C_DMAError 4958 .cfi_endproc 4959 .LFE343: 4961 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4962 .align 1 4963 .global HAL_I2C_Slave_Receive_DMA 4964 .syntax unified 4965 .thumb 4966 .thumb_func 4968 HAL_I2C_Slave_Receive_DMA: 4969 .LVL348: ARM GAS /tmp/ccDmmuIk.s page 247 4970 .LFB344: 2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4971 .loc 1 2415 1 is_stmt 1 view -0 4972 .cfi_startproc 4973 @ args = 0, pretend = 0, frame = 0 4974 @ frame_needed = 0, uses_anonymous_args = 0 2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4975 .loc 1 2415 1 is_stmt 0 view .LVU1739 4976 0000 38B5 push {r3, r4, r5, lr} 4977 .LCFI57: 4978 .cfi_def_cfa_offset 16 4979 .cfi_offset 3, -16 4980 .cfi_offset 4, -12 4981 .cfi_offset 5, -8 4982 .cfi_offset 14, -4 2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4983 .loc 1 2416 3 is_stmt 1 view .LVU1740 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4984 .loc 1 2418 3 view .LVU1741 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4985 .loc 1 2418 11 is_stmt 0 view .LVU1742 4986 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4987 .loc 1 2418 6 view .LVU1743 4988 0006 202B cmp r3, #32 4989 0008 65D1 bne .L333 4990 000a 0446 mov r4, r0 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4991 .loc 1 2420 5 is_stmt 1 view .LVU1744 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4992 .loc 1 2420 8 is_stmt 0 view .LVU1745 4993 000c 0029 cmp r1, #0 4994 000e 3CD0 beq .L328 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4995 .loc 1 2420 25 discriminator 1 view .LVU1746 4996 0010 002A cmp r2, #0 4997 0012 3AD0 beq .L328 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4998 .loc 1 2426 5 is_stmt 1 view .LVU1747 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4999 .loc 1 2426 5 view .LVU1748 5000 0014 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5001 0018 012B cmp r3, #1 5002 001a 5FD0 beq .L334 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5003 .loc 1 2426 5 discriminator 2 view .LVU1749 5004 001c 0123 movs r3, #1 5005 001e 80F84030 strb r3, [r0, #64] 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5006 .loc 1 2426 5 view .LVU1750 2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5007 .loc 1 2428 5 view .LVU1751 2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5008 .loc 1 2428 23 is_stmt 0 view .LVU1752 5009 0022 2223 movs r3, #34 5010 0024 80F84130 strb r3, [r0, #65] 2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccDmmuIk.s page 248 5011 .loc 1 2429 5 is_stmt 1 view .LVU1753 2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5012 .loc 1 2429 23 is_stmt 0 view .LVU1754 5013 0028 2023 movs r3, #32 5014 002a 80F84230 strb r3, [r0, #66] 2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5015 .loc 1 2430 5 is_stmt 1 view .LVU1755 2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5016 .loc 1 2430 23 is_stmt 0 view .LVU1756 5017 002e 0023 movs r3, #0 5018 0030 4364 str r3, [r0, #68] 2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5019 .loc 1 2433 5 is_stmt 1 view .LVU1757 2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5020 .loc 1 2433 23 is_stmt 0 view .LVU1758 5021 0032 4162 str r1, [r0, #36] 2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5022 .loc 1 2434 5 is_stmt 1 view .LVU1759 2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5023 .loc 1 2434 23 is_stmt 0 view .LVU1760 5024 0034 4285 strh r2, [r0, #42] @ movhi 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5025 .loc 1 2435 5 is_stmt 1 view .LVU1761 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5026 .loc 1 2435 29 is_stmt 0 view .LVU1762 5027 0036 438D ldrh r3, [r0, #42] 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5028 .loc 1 2435 23 view .LVU1763 5029 0038 0385 strh r3, [r0, #40] @ movhi 2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5030 .loc 1 2436 5 is_stmt 1 view .LVU1764 2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5031 .loc 1 2436 23 is_stmt 0 view .LVU1765 5032 003a 294B ldr r3, .L338 5033 003c C362 str r3, [r0, #44] 2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5034 .loc 1 2437 5 is_stmt 1 view .LVU1766 2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5035 .loc 1 2437 23 is_stmt 0 view .LVU1767 5036 003e 294B ldr r3, .L338+4 5037 0040 4363 str r3, [r0, #52] 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5038 .loc 1 2439 5 is_stmt 1 view .LVU1768 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5039 .loc 1 2439 13 is_stmt 0 view .LVU1769 5040 0042 C36B ldr r3, [r0, #60] 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5041 .loc 1 2439 8 view .LVU1770 5042 0044 33B3 cbz r3, .L330 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5043 .loc 1 2442 7 is_stmt 1 view .LVU1771 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5044 .loc 1 2442 38 is_stmt 0 view .LVU1772 5045 0046 284A ldr r2, .L338+8 5046 .LVL349: 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5047 .loc 1 2442 38 view .LVU1773 ARM GAS /tmp/ccDmmuIk.s page 249 5048 0048 DA62 str r2, [r3, #44] 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5049 .loc 1 2445 7 is_stmt 1 view .LVU1774 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5050 .loc 1 2445 11 is_stmt 0 view .LVU1775 5051 004a C36B ldr r3, [r0, #60] 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5052 .loc 1 2445 39 view .LVU1776 5053 004c 274A ldr r2, .L338+12 5054 004e 5A63 str r2, [r3, #52] 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5055 .loc 1 2448 7 is_stmt 1 view .LVU1777 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5056 .loc 1 2448 11 is_stmt 0 view .LVU1778 5057 0050 C26B ldr r2, [r0, #60] 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5058 .loc 1 2448 42 view .LVU1779 5059 0052 0023 movs r3, #0 5060 0054 1363 str r3, [r2, #48] 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5061 .loc 1 2449 7 is_stmt 1 view .LVU1780 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5062 .loc 1 2449 11 is_stmt 0 view .LVU1781 5063 0056 C26B ldr r2, [r0, #60] 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5064 .loc 1 2449 39 view .LVU1782 5065 0058 9363 str r3, [r2, #56] 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 5066 .loc 1 2452 7 is_stmt 1 view .LVU1783 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 5067 .loc 1 2452 69 is_stmt 0 view .LVU1784 5068 005a 0068 ldr r0, [r0] 5069 .LVL350: 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 5070 .loc 1 2452 23 view .LVU1785 5071 005c 238D ldrh r3, [r4, #40] 5072 005e 0A46 mov r2, r1 5073 0060 00F12401 add r1, r0, #36 5074 .LVL351: 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 5075 .loc 1 2452 23 view .LVU1786 5076 0064 E06B ldr r0, [r4, #60] 5077 0066 FFF7FEFF bl HAL_DMA_Start_IT 5078 .LVL352: 2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5079 .loc 1 2470 5 is_stmt 1 view .LVU1787 2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5080 .loc 1 2470 8 is_stmt 0 view .LVU1788 5081 006a 0546 mov r5, r0 5082 006c 00B3 cbz r0, .L337 2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5083 .loc 1 2490 7 is_stmt 1 view .LVU1789 2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5084 .loc 1 2490 23 is_stmt 0 view .LVU1790 5085 006e 2823 movs r3, #40 5086 0070 84F84130 strb r3, [r4, #65] 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 250 5087 .loc 1 2491 7 is_stmt 1 view .LVU1791 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5088 .loc 1 2491 23 is_stmt 0 view .LVU1792 5089 0074 0022 movs r2, #0 5090 0076 84F84220 strb r2, [r4, #66] 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5091 .loc 1 2494 7 is_stmt 1 view .LVU1793 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5092 .loc 1 2494 11 is_stmt 0 view .LVU1794 5093 007a 636C ldr r3, [r4, #68] 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5094 .loc 1 2494 23 view .LVU1795 5095 007c 43F01003 orr r3, r3, #16 5096 0080 6364 str r3, [r4, #68] 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5097 .loc 1 2497 7 is_stmt 1 view .LVU1796 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5098 .loc 1 2497 7 view .LVU1797 5099 0082 84F84020 strb r2, [r4, #64] 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5100 .loc 1 2497 7 view .LVU1798 2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5101 .loc 1 2499 7 view .LVU1799 2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5102 .loc 1 2499 14 is_stmt 0 view .LVU1800 5103 0086 0125 movs r5, #1 5104 0088 26E0 b .L327 5105 .LVL353: 5106 .L328: 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5107 .loc 1 2422 7 is_stmt 1 view .LVU1801 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5108 .loc 1 2422 23 is_stmt 0 view .LVU1802 5109 008a 4FF40073 mov r3, #512 5110 008e 6364 str r3, [r4, #68] 2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5111 .loc 1 2423 7 is_stmt 1 view .LVU1803 2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5112 .loc 1 2423 15 is_stmt 0 view .LVU1804 5113 0090 0125 movs r5, #1 5114 0092 21E0 b .L327 5115 .L330: 2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5116 .loc 1 2458 7 is_stmt 1 view .LVU1805 2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5117 .loc 1 2458 23 is_stmt 0 view .LVU1806 5118 0094 2823 movs r3, #40 5119 0096 80F84130 strb r3, [r0, #65] 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5120 .loc 1 2459 7 is_stmt 1 view .LVU1807 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5121 .loc 1 2459 23 is_stmt 0 view .LVU1808 5122 009a 0022 movs r2, #0 5123 .LVL354: 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5124 .loc 1 2459 23 view .LVU1809 5125 009c 80F84220 strb r2, [r0, #66] ARM GAS /tmp/ccDmmuIk.s page 251 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5126 .loc 1 2462 7 is_stmt 1 view .LVU1810 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5127 .loc 1 2462 11 is_stmt 0 view .LVU1811 5128 00a0 436C ldr r3, [r0, #68] 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5129 .loc 1 2462 23 view .LVU1812 5130 00a2 43F08003 orr r3, r3, #128 5131 00a6 4364 str r3, [r0, #68] 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5132 .loc 1 2465 7 is_stmt 1 view .LVU1813 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5133 .loc 1 2465 7 view .LVU1814 5134 00a8 80F84020 strb r2, [r0, #64] 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5135 .loc 1 2465 7 view .LVU1815 2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5136 .loc 1 2467 7 view .LVU1816 2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5137 .loc 1 2467 14 is_stmt 0 view .LVU1817 5138 00ac 0125 movs r5, #1 5139 00ae 13E0 b .L327 5140 .LVL355: 5141 .L337: 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5142 .loc 1 2473 7 is_stmt 1 view .LVU1818 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5143 .loc 1 2473 11 is_stmt 0 view .LVU1819 5144 00b0 2268 ldr r2, [r4] 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5145 .loc 1 2473 21 view .LVU1820 5146 00b2 5368 ldr r3, [r2, #4] 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5147 .loc 1 2473 27 view .LVU1821 5148 00b4 23F40043 bic r3, r3, #32768 5149 00b8 5360 str r3, [r2, #4] 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5150 .loc 1 2476 7 is_stmt 1 view .LVU1822 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5151 .loc 1 2476 7 view .LVU1823 5152 00ba 0023 movs r3, #0 5153 00bc 84F84030 strb r3, [r4, #64] 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5154 .loc 1 2476 7 view .LVU1824 2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5155 .loc 1 2482 7 view .LVU1825 5156 00c0 4FF40041 mov r1, #32768 5157 00c4 2046 mov r0, r4 5158 .LVL356: 2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5159 .loc 1 2482 7 is_stmt 0 view .LVU1826 5160 00c6 FFF7FEFF bl I2C_Enable_IRQ 5161 .LVL357: 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5162 .loc 1 2485 7 is_stmt 1 view .LVU1827 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5163 .loc 1 2485 11 is_stmt 0 view .LVU1828 ARM GAS /tmp/ccDmmuIk.s page 252 5164 00ca 2268 ldr r2, [r4] 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5165 .loc 1 2485 21 view .LVU1829 5166 00cc 1368 ldr r3, [r2] 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5167 .loc 1 2485 27 view .LVU1830 5168 00ce 43F40043 orr r3, r3, #32768 5169 00d2 1360 str r3, [r2] 2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5170 .loc 1 2502 5 is_stmt 1 view .LVU1831 2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5171 .loc 1 2502 12 is_stmt 0 view .LVU1832 5172 00d4 00E0 b .L327 5173 .LVL358: 5174 .L333: 2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5175 .loc 1 2506 12 view .LVU1833 5176 00d6 0225 movs r5, #2 5177 .LVL359: 5178 .L327: 2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5179 .loc 1 2508 1 view .LVU1834 5180 00d8 2846 mov r0, r5 5181 00da 38BD pop {r3, r4, r5, pc} 5182 .LVL360: 5183 .L334: 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5184 .loc 1 2426 5 discriminator 1 view .LVU1835 5185 00dc 0225 movs r5, #2 5186 00de FBE7 b .L327 5187 .L339: 5188 .align 2 5189 .L338: 5190 00e0 0000FFFF .word -65536 5191 00e4 00000000 .word I2C_Slave_ISR_DMA 5192 00e8 00000000 .word I2C_DMASlaveReceiveCplt 5193 00ec 00000000 .word I2C_DMAError 5194 .cfi_endproc 5195 .LFE344: 5197 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 5198 .align 1 5199 .global HAL_I2C_Mem_Write 5200 .syntax unified 5201 .thumb 5202 .thumb_func 5204 HAL_I2C_Mem_Write: 5205 .LVL361: 5206 .LFB345: 2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5207 .loc 1 2525 1 is_stmt 1 view -0 5208 .cfi_startproc 5209 @ args = 12, pretend = 0, frame = 0 5210 @ frame_needed = 0, uses_anonymous_args = 0 2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5211 .loc 1 2525 1 is_stmt 0 view .LVU1837 5212 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5213 .LCFI58: ARM GAS /tmp/ccDmmuIk.s page 253 5214 .cfi_def_cfa_offset 36 5215 .cfi_offset 4, -36 5216 .cfi_offset 5, -32 5217 .cfi_offset 6, -28 5218 .cfi_offset 7, -24 5219 .cfi_offset 8, -20 5220 .cfi_offset 9, -16 5221 .cfi_offset 10, -12 5222 .cfi_offset 11, -8 5223 .cfi_offset 14, -4 5224 0004 83B0 sub sp, sp, #12 5225 .LCFI59: 5226 .cfi_def_cfa_offset 48 5227 0006 0E46 mov r6, r1 5228 0008 BDF834A0 ldrh r10, [sp, #52] 5229 000c 0E9D ldr r5, [sp, #56] 2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5230 .loc 1 2526 3 is_stmt 1 view .LVU1838 2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5231 .loc 1 2529 3 view .LVU1839 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5232 .loc 1 2531 3 view .LVU1840 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5233 .loc 1 2531 11 is_stmt 0 view .LVU1841 5234 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5235 .LVL362: 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5236 .loc 1 2531 6 view .LVU1842 5237 0012 2029 cmp r1, #32 5238 0014 40F0BB80 bne .L350 5239 0018 0446 mov r4, r0 5240 001a 9146 mov r9, r2 5241 001c 9846 mov r8, r3 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5242 .loc 1 2533 5 is_stmt 1 view .LVU1843 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5243 .loc 1 2533 8 is_stmt 0 view .LVU1844 5244 001e 0C9B ldr r3, [sp, #48] 5245 .LVL363: 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5246 .loc 1 2533 8 view .LVU1845 5247 0020 CBB1 cbz r3, .L342 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5248 .loc 1 2533 25 discriminator 1 view .LVU1846 5249 0022 BAF1000F cmp r10, #0 5250 0026 16D0 beq .L342 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5251 .loc 1 2540 5 is_stmt 1 view .LVU1847 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5252 .loc 1 2540 5 view .LVU1848 5253 0028 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5254 002c 012B cmp r3, #1 5255 002e 00F0B280 beq .L351 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5256 .loc 1 2540 5 discriminator 2 view .LVU1849 5257 0032 4FF0010B mov fp, #1 5258 0036 80F840B0 strb fp, [r0, #64] ARM GAS /tmp/ccDmmuIk.s page 254 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5259 .loc 1 2540 5 view .LVU1850 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5260 .loc 1 2543 5 view .LVU1851 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5261 .loc 1 2543 17 is_stmt 0 view .LVU1852 5262 003a FFF7FEFF bl HAL_GetTick 5263 .LVL364: 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5264 .loc 1 2543 17 view .LVU1853 5265 003e 0746 mov r7, r0 5266 .LVL365: 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5267 .loc 1 2545 5 is_stmt 1 view .LVU1854 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5268 .loc 1 2545 9 is_stmt 0 view .LVU1855 5269 0040 0090 str r0, [sp] 5270 0042 1923 movs r3, #25 5271 0044 5A46 mov r2, fp 5272 0046 4FF40041 mov r1, #32768 5273 004a 2046 mov r0, r4 5274 .LVL366: 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5275 .loc 1 2545 9 view .LVU1856 5276 004c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5277 .LVL367: 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5278 .loc 1 2545 8 discriminator 1 view .LVU1857 5279 0050 30B1 cbz r0, .L357 2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5280 .loc 1 2547 14 view .LVU1858 5281 0052 0120 movs r0, #1 5282 0054 9CE0 b .L341 5283 .LVL368: 5284 .L342: 2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5285 .loc 1 2535 7 is_stmt 1 view .LVU1859 2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5286 .loc 1 2535 23 is_stmt 0 view .LVU1860 5287 0056 4FF40073 mov r3, #512 5288 005a 6364 str r3, [r4, #68] 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5289 .loc 1 2536 7 is_stmt 1 view .LVU1861 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5290 .loc 1 2536 15 is_stmt 0 view .LVU1862 5291 005c 0120 movs r0, #1 5292 .LVL369: 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5293 .loc 1 2536 15 view .LVU1863 5294 005e 97E0 b .L341 5295 .LVL370: 5296 .L357: 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5297 .loc 1 2550 5 is_stmt 1 view .LVU1864 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5298 .loc 1 2550 21 is_stmt 0 view .LVU1865 5299 0060 2123 movs r3, #33 ARM GAS /tmp/ccDmmuIk.s page 255 5300 0062 84F84130 strb r3, [r4, #65] 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5301 .loc 1 2551 5 is_stmt 1 view .LVU1866 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5302 .loc 1 2551 21 is_stmt 0 view .LVU1867 5303 0066 4023 movs r3, #64 5304 0068 84F84230 strb r3, [r4, #66] 2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5305 .loc 1 2552 5 is_stmt 1 view .LVU1868 2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5306 .loc 1 2552 21 is_stmt 0 view .LVU1869 5307 006c 0023 movs r3, #0 5308 006e 6364 str r3, [r4, #68] 2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5309 .loc 1 2555 5 is_stmt 1 view .LVU1870 2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5310 .loc 1 2555 21 is_stmt 0 view .LVU1871 5311 0070 0C9A ldr r2, [sp, #48] 5312 0072 6262 str r2, [r4, #36] 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5313 .loc 1 2556 5 is_stmt 1 view .LVU1872 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5314 .loc 1 2556 21 is_stmt 0 view .LVU1873 5315 0074 A4F82AA0 strh r10, [r4, #42] @ movhi 2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5316 .loc 1 2557 5 is_stmt 1 view .LVU1874 2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5317 .loc 1 2557 21 is_stmt 0 view .LVU1875 5318 0078 6363 str r3, [r4, #52] 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5319 .loc 1 2560 5 is_stmt 1 view .LVU1876 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5320 .loc 1 2560 9 is_stmt 0 view .LVU1877 5321 007a 0197 str r7, [sp, #4] 5322 007c 0095 str r5, [sp] 5323 007e 4346 mov r3, r8 5324 0080 4A46 mov r2, r9 5325 0082 3146 mov r1, r6 5326 0084 2046 mov r0, r4 5327 0086 FFF7FEFF bl I2C_RequestMemoryWrite 5328 .LVL371: 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5329 .loc 1 2560 8 discriminator 1 view .LVU1878 5330 008a 70B9 cbnz r0, .L358 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5331 .loc 1 2568 5 is_stmt 1 view .LVU1879 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5332 .loc 1 2568 13 is_stmt 0 view .LVU1880 5333 008c 638D ldrh r3, [r4, #42] 5334 008e 9BB2 uxth r3, r3 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5335 .loc 1 2568 8 view .LVU1881 5336 0090 FF2B cmp r3, #255 5337 0092 0FD9 bls .L345 2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5338 .loc 1 2570 7 is_stmt 1 view .LVU1882 2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST ARM GAS /tmp/ccDmmuIk.s page 256 5339 .loc 1 2570 22 is_stmt 0 view .LVU1883 5340 0094 FF22 movs r2, #255 5341 0096 2285 strh r2, [r4, #40] @ movhi 2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5342 .loc 1 2571 7 is_stmt 1 view .LVU1884 5343 0098 0023 movs r3, #0 5344 009a 0093 str r3, [sp] 5345 009c 4FF08073 mov r3, #16777216 5346 00a0 3146 mov r1, r6 5347 00a2 2046 mov r0, r4 5348 00a4 FFF7FEFF bl I2C_TransferConfig 5349 .LVL372: 5350 00a8 21E0 b .L349 5351 .L358: 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5352 .loc 1 2563 7 view .LVU1885 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5353 .loc 1 2563 7 view .LVU1886 5354 00aa 0023 movs r3, #0 5355 00ac 84F84030 strb r3, [r4, #64] 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5356 .loc 1 2563 7 view .LVU1887 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5357 .loc 1 2564 7 view .LVU1888 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5358 .loc 1 2564 14 is_stmt 0 view .LVU1889 5359 00b0 5846 mov r0, fp 5360 00b2 6DE0 b .L341 5361 .L345: 2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5362 .loc 1 2575 7 is_stmt 1 view .LVU1890 2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5363 .loc 1 2575 28 is_stmt 0 view .LVU1891 5364 00b4 628D ldrh r2, [r4, #42] 5365 00b6 92B2 uxth r2, r2 2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5366 .loc 1 2575 22 view .LVU1892 5367 00b8 2285 strh r2, [r4, #40] @ movhi 2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5368 .loc 1 2576 7 is_stmt 1 view .LVU1893 5369 00ba 0023 movs r3, #0 5370 00bc 0093 str r3, [sp] 5371 00be 4FF00073 mov r3, #33554432 5372 00c2 D2B2 uxtb r2, r2 5373 00c4 3146 mov r1, r6 5374 00c6 2046 mov r0, r4 5375 00c8 FFF7FEFF bl I2C_TransferConfig 5376 .LVL373: 5377 00cc 0FE0 b .L349 5378 .L348: 2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5379 .loc 1 2612 11 view .LVU1894 2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5380 .loc 1 2612 32 is_stmt 0 view .LVU1895 5381 00ce 628D ldrh r2, [r4, #42] 5382 00d0 92B2 uxth r2, r2 2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, ARM GAS /tmp/ccDmmuIk.s page 257 5383 .loc 1 2612 26 view .LVU1896 5384 00d2 2285 strh r2, [r4, #40] @ movhi 2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5385 .loc 1 2613 11 is_stmt 1 view .LVU1897 5386 00d4 0023 movs r3, #0 5387 00d6 0093 str r3, [sp] 5388 00d8 4FF00073 mov r3, #33554432 5389 00dc D2B2 uxtb r2, r2 5390 00de 3146 mov r1, r6 5391 00e0 2046 mov r0, r4 5392 00e2 FFF7FEFF bl I2C_TransferConfig 5393 .LVL374: 5394 .L347: 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5395 .loc 1 2618 30 view .LVU1898 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5396 .loc 1 2618 18 is_stmt 0 view .LVU1899 5397 00e6 638D ldrh r3, [r4, #42] 5398 00e8 9BB2 uxth r3, r3 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5399 .loc 1 2618 30 view .LVU1900 5400 00ea 002B cmp r3, #0 5401 00ec 33D0 beq .L359 5402 .L349: 2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5403 .loc 1 2579 5 is_stmt 1 view .LVU1901 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5404 .loc 1 2582 7 view .LVU1902 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5405 .loc 1 2582 11 is_stmt 0 view .LVU1903 5406 00ee 3A46 mov r2, r7 5407 00f0 2946 mov r1, r5 5408 00f2 2046 mov r0, r4 5409 00f4 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5410 .LVL375: 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5411 .loc 1 2582 10 discriminator 1 view .LVU1904 5412 00f8 0028 cmp r0, #0 5413 00fa 4ED1 bne .L353 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5414 .loc 1 2588 7 is_stmt 1 view .LVU1905 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5415 .loc 1 2588 35 is_stmt 0 view .LVU1906 5416 00fc 626A ldr r2, [r4, #36] 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5417 .loc 1 2588 11 view .LVU1907 5418 00fe 2368 ldr r3, [r4] 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5419 .loc 1 2588 30 view .LVU1908 5420 0100 1278 ldrb r2, [r2] @ zero_extendqisi2 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5421 .loc 1 2588 28 view .LVU1909 5422 0102 9A62 str r2, [r3, #40] 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5423 .loc 1 2591 7 is_stmt 1 view .LVU1910 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5424 .loc 1 2591 11 is_stmt 0 view .LVU1911 ARM GAS /tmp/ccDmmuIk.s page 258 5425 0104 636A ldr r3, [r4, #36] 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5426 .loc 1 2591 21 view .LVU1912 5427 0106 0133 adds r3, r3, #1 5428 0108 6362 str r3, [r4, #36] 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5429 .loc 1 2593 7 is_stmt 1 view .LVU1913 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5430 .loc 1 2593 11 is_stmt 0 view .LVU1914 5431 010a 638D ldrh r3, [r4, #42] 5432 010c 9BB2 uxth r3, r3 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5433 .loc 1 2593 22 view .LVU1915 5434 010e 013B subs r3, r3, #1 5435 0110 9BB2 uxth r3, r3 5436 0112 6385 strh r3, [r4, #42] @ movhi 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5437 .loc 1 2594 7 is_stmt 1 view .LVU1916 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5438 .loc 1 2594 11 is_stmt 0 view .LVU1917 5439 0114 238D ldrh r3, [r4, #40] 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5440 .loc 1 2594 21 view .LVU1918 5441 0116 013B subs r3, r3, #1 5442 0118 9BB2 uxth r3, r3 5443 011a 2385 strh r3, [r4, #40] @ movhi 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5444 .loc 1 2596 7 is_stmt 1 view .LVU1919 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5445 .loc 1 2596 16 is_stmt 0 view .LVU1920 5446 011c 628D ldrh r2, [r4, #42] 5447 011e 92B2 uxth r2, r2 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5448 .loc 1 2596 10 view .LVU1921 5449 0120 002A cmp r2, #0 5450 0122 E0D0 beq .L347 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5451 .loc 1 2596 35 discriminator 1 view .LVU1922 5452 0124 002B cmp r3, #0 5453 0126 DED1 bne .L347 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5454 .loc 1 2599 9 is_stmt 1 view .LVU1923 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5455 .loc 1 2599 13 is_stmt 0 view .LVU1924 5456 0128 0097 str r7, [sp] 5457 012a 2B46 mov r3, r5 5458 012c 0022 movs r2, #0 5459 012e 8021 movs r1, #128 5460 0130 2046 mov r0, r4 5461 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5462 .LVL376: 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5463 .loc 1 2599 12 discriminator 1 view .LVU1925 5464 0136 90BB cbnz r0, .L354 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5465 .loc 1 2604 9 is_stmt 1 view .LVU1926 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 259 5466 .loc 1 2604 17 is_stmt 0 view .LVU1927 5467 0138 638D ldrh r3, [r4, #42] 5468 013a 9BB2 uxth r3, r3 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5469 .loc 1 2604 12 view .LVU1928 5470 013c FF2B cmp r3, #255 5471 013e C6D9 bls .L348 2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5472 .loc 1 2606 11 is_stmt 1 view .LVU1929 2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5473 .loc 1 2606 26 is_stmt 0 view .LVU1930 5474 0140 FF22 movs r2, #255 5475 0142 2285 strh r2, [r4, #40] @ movhi 2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5476 .loc 1 2607 11 is_stmt 1 view .LVU1931 5477 0144 0023 movs r3, #0 5478 0146 0093 str r3, [sp] 5479 0148 4FF08073 mov r3, #16777216 5480 014c 3146 mov r1, r6 5481 014e 2046 mov r0, r4 5482 0150 FFF7FEFF bl I2C_TransferConfig 5483 .LVL377: 5484 0154 C7E7 b .L347 5485 .L359: 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5486 .loc 1 2622 5 view .LVU1932 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5487 .loc 1 2622 9 is_stmt 0 view .LVU1933 5488 0156 3A46 mov r2, r7 5489 0158 2946 mov r1, r5 5490 015a 2046 mov r0, r4 5491 015c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5492 .LVL378: 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5493 .loc 1 2622 8 discriminator 1 view .LVU1934 5494 0160 F8B9 cbnz r0, .L355 2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5495 .loc 1 2628 5 is_stmt 1 view .LVU1935 5496 0162 2368 ldr r3, [r4] 5497 0164 2022 movs r2, #32 5498 0166 DA61 str r2, [r3, #28] 2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5499 .loc 1 2631 5 view .LVU1936 5500 0168 2168 ldr r1, [r4] 5501 016a 4B68 ldr r3, [r1, #4] 5502 016c 23F0FF73 bic r3, r3, #33423360 5503 0170 23F48B33 bic r3, r3, #71168 5504 0174 23F4FF73 bic r3, r3, #510 5505 0178 23F00103 bic r3, r3, #1 5506 017c 4B60 str r3, [r1, #4] 2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5507 .loc 1 2633 5 view .LVU1937 2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5508 .loc 1 2633 17 is_stmt 0 view .LVU1938 5509 017e 84F84120 strb r2, [r4, #65] 2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5510 .loc 1 2634 5 is_stmt 1 view .LVU1939 ARM GAS /tmp/ccDmmuIk.s page 260 2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5511 .loc 1 2634 17 is_stmt 0 view .LVU1940 5512 0182 0023 movs r3, #0 5513 0184 84F84230 strb r3, [r4, #66] 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5514 .loc 1 2637 5 is_stmt 1 view .LVU1941 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5515 .loc 1 2637 5 view .LVU1942 5516 0188 84F84030 strb r3, [r4, #64] 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5517 .loc 1 2637 5 view .LVU1943 2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5518 .loc 1 2639 5 view .LVU1944 2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5519 .loc 1 2639 12 is_stmt 0 view .LVU1945 5520 018c 00E0 b .L341 5521 .LVL379: 5522 .L350: 2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5523 .loc 1 2643 12 view .LVU1946 5524 018e 0220 movs r0, #2 5525 .LVL380: 5526 .L341: 2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5527 .loc 1 2645 1 view .LVU1947 5528 0190 03B0 add sp, sp, #12 5529 .LCFI60: 5530 .cfi_remember_state 5531 .cfi_def_cfa_offset 36 5532 @ sp needed 5533 0192 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5534 .LVL381: 5535 .L351: 5536 .LCFI61: 5537 .cfi_restore_state 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5538 .loc 1 2540 5 discriminator 1 view .LVU1948 5539 0196 0220 movs r0, #2 5540 .LVL382: 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5541 .loc 1 2540 5 discriminator 1 view .LVU1949 5542 0198 FAE7 b .L341 5543 .LVL383: 5544 .L353: 2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5545 .loc 1 2584 16 view .LVU1950 5546 019a 0120 movs r0, #1 5547 019c F8E7 b .L341 5548 .L354: 2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5549 .loc 1 2601 18 view .LVU1951 5550 019e 0120 movs r0, #1 5551 01a0 F6E7 b .L341 5552 .L355: 2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5553 .loc 1 2624 14 view .LVU1952 5554 01a2 0120 movs r0, #1 ARM GAS /tmp/ccDmmuIk.s page 261 5555 01a4 F4E7 b .L341 5556 .cfi_endproc 5557 .LFE345: 5559 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5560 .align 1 5561 .global HAL_I2C_Mem_Read 5562 .syntax unified 5563 .thumb 5564 .thumb_func 5566 HAL_I2C_Mem_Read: 5567 .LVL384: 5568 .LFB346: 2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5569 .loc 1 2662 1 is_stmt 1 view -0 5570 .cfi_startproc 5571 @ args = 12, pretend = 0, frame = 0 5572 @ frame_needed = 0, uses_anonymous_args = 0 2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5573 .loc 1 2662 1 is_stmt 0 view .LVU1954 5574 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5575 .LCFI62: 5576 .cfi_def_cfa_offset 36 5577 .cfi_offset 4, -36 5578 .cfi_offset 5, -32 5579 .cfi_offset 6, -28 5580 .cfi_offset 7, -24 5581 .cfi_offset 8, -20 5582 .cfi_offset 9, -16 5583 .cfi_offset 10, -12 5584 .cfi_offset 11, -8 5585 .cfi_offset 14, -4 5586 0004 83B0 sub sp, sp, #12 5587 .LCFI63: 5588 .cfi_def_cfa_offset 48 5589 0006 0E46 mov r6, r1 5590 0008 BDF834A0 ldrh r10, [sp, #52] 5591 000c 0E9D ldr r5, [sp, #56] 2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5592 .loc 1 2663 3 is_stmt 1 view .LVU1955 2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5593 .loc 1 2666 3 view .LVU1956 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5594 .loc 1 2668 3 view .LVU1957 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5595 .loc 1 2668 11 is_stmt 0 view .LVU1958 5596 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5597 .LVL385: 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5598 .loc 1 2668 6 view .LVU1959 5599 0012 2029 cmp r1, #32 5600 0014 40F0BC80 bne .L370 5601 0018 0446 mov r4, r0 5602 001a 9146 mov r9, r2 5603 001c 9846 mov r8, r3 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5604 .loc 1 2670 5 is_stmt 1 view .LVU1960 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 262 5605 .loc 1 2670 8 is_stmt 0 view .LVU1961 5606 001e 0C9B ldr r3, [sp, #48] 5607 .LVL386: 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5608 .loc 1 2670 8 view .LVU1962 5609 0020 CBB1 cbz r3, .L362 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5610 .loc 1 2670 25 discriminator 1 view .LVU1963 5611 0022 BAF1000F cmp r10, #0 5612 0026 16D0 beq .L362 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5613 .loc 1 2677 5 is_stmt 1 view .LVU1964 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5614 .loc 1 2677 5 view .LVU1965 5615 0028 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5616 002c 012B cmp r3, #1 5617 002e 00F0B380 beq .L371 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5618 .loc 1 2677 5 discriminator 2 view .LVU1966 5619 0032 4FF0010B mov fp, #1 5620 0036 80F840B0 strb fp, [r0, #64] 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5621 .loc 1 2677 5 view .LVU1967 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5622 .loc 1 2680 5 view .LVU1968 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5623 .loc 1 2680 17 is_stmt 0 view .LVU1969 5624 003a FFF7FEFF bl HAL_GetTick 5625 .LVL387: 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5626 .loc 1 2680 17 view .LVU1970 5627 003e 0746 mov r7, r0 5628 .LVL388: 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5629 .loc 1 2682 5 is_stmt 1 view .LVU1971 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5630 .loc 1 2682 9 is_stmt 0 view .LVU1972 5631 0040 0090 str r0, [sp] 5632 0042 1923 movs r3, #25 5633 0044 5A46 mov r2, fp 5634 0046 4FF40041 mov r1, #32768 5635 004a 2046 mov r0, r4 5636 .LVL389: 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5637 .loc 1 2682 9 view .LVU1973 5638 004c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5639 .LVL390: 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5640 .loc 1 2682 8 discriminator 1 view .LVU1974 5641 0050 30B1 cbz r0, .L377 2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5642 .loc 1 2684 14 view .LVU1975 5643 0052 0120 movs r0, #1 5644 0054 9DE0 b .L361 5645 .LVL391: 5646 .L362: 2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccDmmuIk.s page 263 5647 .loc 1 2672 7 is_stmt 1 view .LVU1976 2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5648 .loc 1 2672 23 is_stmt 0 view .LVU1977 5649 0056 4FF40073 mov r3, #512 5650 005a 6364 str r3, [r4, #68] 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5651 .loc 1 2673 7 is_stmt 1 view .LVU1978 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5652 .loc 1 2673 15 is_stmt 0 view .LVU1979 5653 005c 0120 movs r0, #1 5654 .LVL392: 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5655 .loc 1 2673 15 view .LVU1980 5656 005e 98E0 b .L361 5657 .LVL393: 5658 .L377: 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5659 .loc 1 2687 5 is_stmt 1 view .LVU1981 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5660 .loc 1 2687 21 is_stmt 0 view .LVU1982 5661 0060 2223 movs r3, #34 5662 0062 84F84130 strb r3, [r4, #65] 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5663 .loc 1 2688 5 is_stmt 1 view .LVU1983 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5664 .loc 1 2688 21 is_stmt 0 view .LVU1984 5665 0066 4023 movs r3, #64 5666 0068 84F84230 strb r3, [r4, #66] 2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5667 .loc 1 2689 5 is_stmt 1 view .LVU1985 2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5668 .loc 1 2689 21 is_stmt 0 view .LVU1986 5669 006c 0023 movs r3, #0 5670 006e 6364 str r3, [r4, #68] 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5671 .loc 1 2692 5 is_stmt 1 view .LVU1987 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5672 .loc 1 2692 21 is_stmt 0 view .LVU1988 5673 0070 0C9A ldr r2, [sp, #48] 5674 0072 6262 str r2, [r4, #36] 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5675 .loc 1 2693 5 is_stmt 1 view .LVU1989 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5676 .loc 1 2693 21 is_stmt 0 view .LVU1990 5677 0074 A4F82AA0 strh r10, [r4, #42] @ movhi 2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5678 .loc 1 2694 5 is_stmt 1 view .LVU1991 2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5679 .loc 1 2694 21 is_stmt 0 view .LVU1992 5680 0078 6363 str r3, [r4, #52] 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5681 .loc 1 2697 5 is_stmt 1 view .LVU1993 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5682 .loc 1 2697 9 is_stmt 0 view .LVU1994 5683 007a 0197 str r7, [sp, #4] 5684 007c 0095 str r5, [sp] 5685 007e 4346 mov r3, r8 ARM GAS /tmp/ccDmmuIk.s page 264 5686 0080 4A46 mov r2, r9 5687 0082 3146 mov r1, r6 5688 0084 2046 mov r0, r4 5689 0086 FFF7FEFF bl I2C_RequestMemoryRead 5690 .LVL394: 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5691 .loc 1 2697 8 discriminator 1 view .LVU1995 5692 008a 70B9 cbnz r0, .L378 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5693 .loc 1 2706 5 is_stmt 1 view .LVU1996 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5694 .loc 1 2706 13 is_stmt 0 view .LVU1997 5695 008c 638D ldrh r3, [r4, #42] 5696 008e 9BB2 uxth r3, r3 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5697 .loc 1 2706 8 view .LVU1998 5698 0090 FF2B cmp r3, #255 5699 0092 0FD9 bls .L365 2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5700 .loc 1 2708 7 is_stmt 1 view .LVU1999 2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5701 .loc 1 2708 22 is_stmt 0 view .LVU2000 5702 0094 FF22 movs r2, #255 5703 0096 2285 strh r2, [r4, #40] @ movhi 2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5704 .loc 1 2709 7 is_stmt 1 view .LVU2001 5705 0098 434B ldr r3, .L380 5706 009a 0093 str r3, [sp] 5707 009c 4FF08073 mov r3, #16777216 5708 00a0 3146 mov r1, r6 5709 00a2 2046 mov r0, r4 5710 00a4 FFF7FEFF bl I2C_TransferConfig 5711 .LVL395: 5712 00a8 21E0 b .L369 5713 .L378: 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5714 .loc 1 2700 7 view .LVU2002 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5715 .loc 1 2700 7 view .LVU2003 5716 00aa 0023 movs r3, #0 5717 00ac 84F84030 strb r3, [r4, #64] 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5718 .loc 1 2700 7 view .LVU2004 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5719 .loc 1 2701 7 view .LVU2005 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5720 .loc 1 2701 14 is_stmt 0 view .LVU2006 5721 00b0 5846 mov r0, fp 5722 00b2 6EE0 b .L361 5723 .L365: 2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5724 .loc 1 2714 7 is_stmt 1 view .LVU2007 2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5725 .loc 1 2714 28 is_stmt 0 view .LVU2008 5726 00b4 628D ldrh r2, [r4, #42] 5727 00b6 92B2 uxth r2, r2 2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, ARM GAS /tmp/ccDmmuIk.s page 265 5728 .loc 1 2714 22 view .LVU2009 5729 00b8 2285 strh r2, [r4, #40] @ movhi 2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5730 .loc 1 2715 7 is_stmt 1 view .LVU2010 5731 00ba 3B4B ldr r3, .L380 5732 00bc 0093 str r3, [sp] 5733 00be 4FF00073 mov r3, #33554432 5734 00c2 D2B2 uxtb r2, r2 5735 00c4 3146 mov r1, r6 5736 00c6 2046 mov r0, r4 5737 00c8 FFF7FEFF bl I2C_TransferConfig 5738 .LVL396: 5739 00cc 0FE0 b .L369 5740 .L368: 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5741 .loc 1 2752 11 view .LVU2011 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5742 .loc 1 2752 32 is_stmt 0 view .LVU2012 5743 00ce 628D ldrh r2, [r4, #42] 5744 00d0 92B2 uxth r2, r2 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5745 .loc 1 2752 26 view .LVU2013 5746 00d2 2285 strh r2, [r4, #40] @ movhi 2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5747 .loc 1 2753 11 is_stmt 1 view .LVU2014 5748 00d4 0023 movs r3, #0 5749 00d6 0093 str r3, [sp] 5750 00d8 4FF00073 mov r3, #33554432 5751 00dc D2B2 uxtb r2, r2 5752 00de 3146 mov r1, r6 5753 00e0 2046 mov r0, r4 5754 00e2 FFF7FEFF bl I2C_TransferConfig 5755 .LVL397: 5756 .L367: 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5757 .loc 1 2757 30 view .LVU2015 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5758 .loc 1 2757 18 is_stmt 0 view .LVU2016 5759 00e6 638D ldrh r3, [r4, #42] 5760 00e8 9BB2 uxth r3, r3 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5761 .loc 1 2757 30 view .LVU2017 5762 00ea 002B cmp r3, #0 5763 00ec 34D0 beq .L379 5764 .L369: 2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5765 .loc 1 2719 5 is_stmt 1 view .LVU2018 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5766 .loc 1 2722 7 view .LVU2019 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5767 .loc 1 2722 11 is_stmt 0 view .LVU2020 5768 00ee 0097 str r7, [sp] 5769 00f0 2B46 mov r3, r5 5770 00f2 0022 movs r2, #0 5771 00f4 0421 movs r1, #4 5772 00f6 2046 mov r0, r4 5773 00f8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout ARM GAS /tmp/ccDmmuIk.s page 266 5774 .LVL398: 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5775 .loc 1 2722 10 discriminator 1 view .LVU2021 5776 00fc 0028 cmp r0, #0 5777 00fe 4DD1 bne .L373 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5778 .loc 1 2728 7 is_stmt 1 view .LVU2022 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5779 .loc 1 2728 38 is_stmt 0 view .LVU2023 5780 0100 2368 ldr r3, [r4] 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5781 .loc 1 2728 48 view .LVU2024 5782 0102 5A6A ldr r2, [r3, #36] 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5783 .loc 1 2728 12 view .LVU2025 5784 0104 636A ldr r3, [r4, #36] 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5785 .loc 1 2728 23 view .LVU2026 5786 0106 1A70 strb r2, [r3] 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5787 .loc 1 2731 7 is_stmt 1 view .LVU2027 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5788 .loc 1 2731 11 is_stmt 0 view .LVU2028 5789 0108 636A ldr r3, [r4, #36] 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5790 .loc 1 2731 21 view .LVU2029 5791 010a 0133 adds r3, r3, #1 5792 010c 6362 str r3, [r4, #36] 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5793 .loc 1 2733 7 is_stmt 1 view .LVU2030 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5794 .loc 1 2733 11 is_stmt 0 view .LVU2031 5795 010e 228D ldrh r2, [r4, #40] 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5796 .loc 1 2733 21 view .LVU2032 5797 0110 013A subs r2, r2, #1 5798 0112 92B2 uxth r2, r2 5799 0114 2285 strh r2, [r4, #40] @ movhi 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5800 .loc 1 2734 7 is_stmt 1 view .LVU2033 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5801 .loc 1 2734 11 is_stmt 0 view .LVU2034 5802 0116 638D ldrh r3, [r4, #42] 5803 0118 9BB2 uxth r3, r3 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5804 .loc 1 2734 22 view .LVU2035 5805 011a 013B subs r3, r3, #1 5806 011c 9BB2 uxth r3, r3 5807 011e 6385 strh r3, [r4, #42] @ movhi 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5808 .loc 1 2736 7 is_stmt 1 view .LVU2036 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5809 .loc 1 2736 16 is_stmt 0 view .LVU2037 5810 0120 638D ldrh r3, [r4, #42] 5811 0122 9BB2 uxth r3, r3 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5812 .loc 1 2736 10 view .LVU2038 ARM GAS /tmp/ccDmmuIk.s page 267 5813 0124 002B cmp r3, #0 5814 0126 DED0 beq .L367 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5815 .loc 1 2736 35 discriminator 1 view .LVU2039 5816 0128 002A cmp r2, #0 5817 012a DCD1 bne .L367 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5818 .loc 1 2739 9 is_stmt 1 view .LVU2040 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5819 .loc 1 2739 13 is_stmt 0 view .LVU2041 5820 012c 0097 str r7, [sp] 5821 012e 2B46 mov r3, r5 5822 0130 8021 movs r1, #128 5823 0132 2046 mov r0, r4 5824 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5825 .LVL399: 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5826 .loc 1 2739 12 discriminator 1 view .LVU2042 5827 0138 90BB cbnz r0, .L374 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5828 .loc 1 2744 9 is_stmt 1 view .LVU2043 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5829 .loc 1 2744 17 is_stmt 0 view .LVU2044 5830 013a 638D ldrh r3, [r4, #42] 5831 013c 9BB2 uxth r3, r3 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5832 .loc 1 2744 12 view .LVU2045 5833 013e FF2B cmp r3, #255 5834 0140 C5D9 bls .L368 2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5835 .loc 1 2746 11 is_stmt 1 view .LVU2046 2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5836 .loc 1 2746 26 is_stmt 0 view .LVU2047 5837 0142 FF22 movs r2, #255 5838 0144 2285 strh r2, [r4, #40] @ movhi 2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5839 .loc 1 2747 11 is_stmt 1 view .LVU2048 5840 0146 0023 movs r3, #0 5841 0148 0093 str r3, [sp] 5842 014a 4FF08073 mov r3, #16777216 5843 014e 3146 mov r1, r6 5844 0150 2046 mov r0, r4 5845 0152 FFF7FEFF bl I2C_TransferConfig 5846 .LVL400: 5847 0156 C6E7 b .L367 5848 .L379: 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5849 .loc 1 2761 5 view .LVU2049 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5850 .loc 1 2761 9 is_stmt 0 view .LVU2050 5851 0158 3A46 mov r2, r7 5852 015a 2946 mov r1, r5 5853 015c 2046 mov r0, r4 5854 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5855 .LVL401: 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5856 .loc 1 2761 8 discriminator 1 view .LVU2051 ARM GAS /tmp/ccDmmuIk.s page 268 5857 0162 F8B9 cbnz r0, .L375 2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5858 .loc 1 2767 5 is_stmt 1 view .LVU2052 5859 0164 2368 ldr r3, [r4] 5860 0166 2022 movs r2, #32 5861 0168 DA61 str r2, [r3, #28] 2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5862 .loc 1 2770 5 view .LVU2053 5863 016a 2168 ldr r1, [r4] 5864 016c 4B68 ldr r3, [r1, #4] 5865 016e 23F0FF73 bic r3, r3, #33423360 5866 0172 23F48B33 bic r3, r3, #71168 5867 0176 23F4FF73 bic r3, r3, #510 5868 017a 23F00103 bic r3, r3, #1 5869 017e 4B60 str r3, [r1, #4] 2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5870 .loc 1 2772 5 view .LVU2054 2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5871 .loc 1 2772 17 is_stmt 0 view .LVU2055 5872 0180 84F84120 strb r2, [r4, #65] 2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5873 .loc 1 2773 5 is_stmt 1 view .LVU2056 2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5874 .loc 1 2773 17 is_stmt 0 view .LVU2057 5875 0184 0023 movs r3, #0 5876 0186 84F84230 strb r3, [r4, #66] 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5877 .loc 1 2776 5 is_stmt 1 view .LVU2058 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5878 .loc 1 2776 5 view .LVU2059 5879 018a 84F84030 strb r3, [r4, #64] 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5880 .loc 1 2776 5 view .LVU2060 2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5881 .loc 1 2778 5 view .LVU2061 2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5882 .loc 1 2778 12 is_stmt 0 view .LVU2062 5883 018e 00E0 b .L361 5884 .LVL402: 5885 .L370: 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5886 .loc 1 2782 12 view .LVU2063 5887 0190 0220 movs r0, #2 5888 .LVL403: 5889 .L361: 2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5890 .loc 1 2784 1 view .LVU2064 5891 0192 03B0 add sp, sp, #12 5892 .LCFI64: 5893 .cfi_remember_state 5894 .cfi_def_cfa_offset 36 5895 @ sp needed 5896 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5897 .LVL404: 5898 .L371: 5899 .LCFI65: 5900 .cfi_restore_state ARM GAS /tmp/ccDmmuIk.s page 269 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5901 .loc 1 2677 5 discriminator 1 view .LVU2065 5902 0198 0220 movs r0, #2 5903 .LVL405: 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5904 .loc 1 2677 5 discriminator 1 view .LVU2066 5905 019a FAE7 b .L361 5906 .LVL406: 5907 .L373: 2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5908 .loc 1 2724 16 view .LVU2067 5909 019c 0120 movs r0, #1 5910 019e F8E7 b .L361 5911 .L374: 2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5912 .loc 1 2741 18 view .LVU2068 5913 01a0 0120 movs r0, #1 5914 01a2 F6E7 b .L361 5915 .L375: 2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5916 .loc 1 2763 14 view .LVU2069 5917 01a4 0120 movs r0, #1 5918 01a6 F4E7 b .L361 5919 .L381: 5920 .align 2 5921 .L380: 5922 01a8 00240080 .word -2147474432 5923 .cfi_endproc 5924 .LFE346: 5926 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5927 .align 1 5928 .global HAL_I2C_Mem_Write_IT 5929 .syntax unified 5930 .thumb 5931 .thumb_func 5933 HAL_I2C_Mem_Write_IT: 5934 .LVL407: 5935 .LFB347: 2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 5936 .loc 1 2799 1 is_stmt 1 view -0 5937 .cfi_startproc 5938 @ args = 8, pretend = 0, frame = 0 5939 @ frame_needed = 0, uses_anonymous_args = 0 2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 5940 .loc 1 2799 1 is_stmt 0 view .LVU2071 5941 0000 70B5 push {r4, r5, r6, lr} 5942 .LCFI66: 5943 .cfi_def_cfa_offset 16 5944 .cfi_offset 4, -16 5945 .cfi_offset 5, -12 5946 .cfi_offset 6, -8 5947 .cfi_offset 14, -4 5948 0002 82B0 sub sp, sp, #8 5949 .LCFI67: 5950 .cfi_def_cfa_offset 24 5951 0004 0446 mov r4, r0 5952 0006 1D46 mov r5, r3 ARM GAS /tmp/ccDmmuIk.s page 270 5953 0008 BDF81C30 ldrh r3, [sp, #28] 5954 .LVL408: 2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5955 .loc 1 2801 3 is_stmt 1 view .LVU2072 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5956 .loc 1 2803 3 view .LVU2073 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5957 .loc 1 2803 11 is_stmt 0 view .LVU2074 5958 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5959 .LVL409: 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5960 .loc 1 2803 6 view .LVU2075 5961 0010 2028 cmp r0, #32 5962 0012 43D1 bne .L388 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5963 .loc 1 2805 5 is_stmt 1 view .LVU2076 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5964 .loc 1 2805 8 is_stmt 0 view .LVU2077 5965 0014 0698 ldr r0, [sp, #24] 5966 0016 0028 cmp r0, #0 5967 0018 35D0 beq .L384 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5968 .loc 1 2805 25 discriminator 1 view .LVU2078 5969 001a 002B cmp r3, #0 5970 001c 33D0 beq .L384 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5971 .loc 1 2811 5 is_stmt 1 view .LVU2079 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5972 .loc 1 2811 9 is_stmt 0 view .LVU2080 5973 001e 2068 ldr r0, [r4] 5974 0020 8669 ldr r6, [r0, #24] 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5975 .loc 1 2811 8 view .LVU2081 5976 0022 16F4004F tst r6, #32768 5977 0026 3CD1 bne .L389 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5978 .loc 1 2817 5 is_stmt 1 view .LVU2082 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5979 .loc 1 2817 5 view .LVU2083 5980 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 5981 002c 012E cmp r6, #1 5982 002e 3AD0 beq .L390 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5983 .loc 1 2817 5 discriminator 2 view .LVU2084 5984 0030 0126 movs r6, #1 5985 0032 84F84060 strb r6, [r4, #64] 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5986 .loc 1 2817 5 view .LVU2085 2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5987 .loc 1 2819 5 view .LVU2086 2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5988 .loc 1 2819 23 is_stmt 0 view .LVU2087 5989 0036 2126 movs r6, #33 5990 0038 84F84160 strb r6, [r4, #65] 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5991 .loc 1 2820 5 is_stmt 1 view .LVU2088 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccDmmuIk.s page 271 5992 .loc 1 2820 23 is_stmt 0 view .LVU2089 5993 003c 4026 movs r6, #64 5994 003e 84F84260 strb r6, [r4, #66] 2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5995 .loc 1 2821 5 is_stmt 1 view .LVU2090 2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5996 .loc 1 2821 23 is_stmt 0 view .LVU2091 5997 0042 0026 movs r6, #0 5998 0044 6664 str r6, [r4, #68] 2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 5999 .loc 1 2824 5 is_stmt 1 view .LVU2092 2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 6000 .loc 1 2824 23 is_stmt 0 view .LVU2093 6001 0046 2685 strh r6, [r4, #40] @ movhi 2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6002 .loc 1 2825 5 is_stmt 1 view .LVU2094 2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6003 .loc 1 2825 23 is_stmt 0 view .LVU2095 6004 0048 069E ldr r6, [sp, #24] 6005 004a 6662 str r6, [r4, #36] 2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6006 .loc 1 2826 5 is_stmt 1 view .LVU2096 2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6007 .loc 1 2826 23 is_stmt 0 view .LVU2097 6008 004c 6385 strh r3, [r4, #42] @ movhi 2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6009 .loc 1 2827 5 is_stmt 1 view .LVU2098 2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6010 .loc 1 2827 23 is_stmt 0 view .LVU2099 6011 004e 174B ldr r3, .L393 6012 0050 E362 str r3, [r4, #44] 2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6013 .loc 1 2828 5 is_stmt 1 view .LVU2100 2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6014 .loc 1 2828 23 is_stmt 0 view .LVU2101 6015 0052 174B ldr r3, .L393+4 6016 0054 6363 str r3, [r4, #52] 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6017 .loc 1 2829 5 is_stmt 1 view .LVU2102 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6018 .loc 1 2829 23 is_stmt 0 view .LVU2103 6019 0056 E164 str r1, [r4, #76] 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6020 .loc 1 2832 5 is_stmt 1 view .LVU2104 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6021 .loc 1 2832 8 is_stmt 0 view .LVU2105 6022 0058 012D cmp r5, #1 6023 005a 19D0 beq .L392 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6024 .loc 1 2844 7 is_stmt 1 view .LVU2106 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6025 .loc 1 2844 30 is_stmt 0 view .LVU2107 6026 005c 130A lsrs r3, r2, #8 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6027 .loc 1 2844 28 view .LVU2108 6028 005e 8362 str r3, [r0, #40] 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 272 6029 .loc 1 2847 7 is_stmt 1 view .LVU2109 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6030 .loc 1 2847 26 is_stmt 0 view .LVU2110 6031 0060 D2B2 uxtb r2, r2 6032 .LVL410: 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6033 .loc 1 2847 24 view .LVU2111 6034 0062 2265 str r2, [r4, #80] 6035 .L387: 2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6036 .loc 1 2850 5 is_stmt 1 view .LVU2112 6037 0064 134B ldr r3, .L393+8 6038 0066 0093 str r3, [sp] 6039 0068 4FF08073 mov r3, #16777216 6040 006c EAB2 uxtb r2, r5 6041 006e 2046 mov r0, r4 6042 0070 FFF7FEFF bl I2C_TransferConfig 6043 .LVL411: 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6044 .loc 1 2853 5 view .LVU2113 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6045 .loc 1 2853 5 view .LVU2114 6046 0074 0025 movs r5, #0 6047 .LVL412: 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6048 .loc 1 2853 5 is_stmt 0 view .LVU2115 6049 0076 84F84050 strb r5, [r4, #64] 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6050 .loc 1 2853 5 is_stmt 1 view .LVU2116 2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6051 .loc 1 2863 5 view .LVU2117 6052 007a 0121 movs r1, #1 6053 007c 2046 mov r0, r4 6054 007e FFF7FEFF bl I2C_Enable_IRQ 6055 .LVL413: 2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6056 .loc 1 2865 5 view .LVU2118 2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6057 .loc 1 2865 12 is_stmt 0 view .LVU2119 6058 0082 2846 mov r0, r5 6059 0084 0BE0 b .L383 6060 .LVL414: 6061 .L384: 2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6062 .loc 1 2807 7 is_stmt 1 view .LVU2120 2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6063 .loc 1 2807 23 is_stmt 0 view .LVU2121 6064 0086 4FF40073 mov r3, #512 6065 008a 6364 str r3, [r4, #68] 2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6066 .loc 1 2808 7 is_stmt 1 view .LVU2122 2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6067 .loc 1 2808 15 is_stmt 0 view .LVU2123 6068 008c 0120 movs r0, #1 6069 008e 06E0 b .L383 6070 .L392: 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 273 6071 .loc 1 2835 7 is_stmt 1 view .LVU2124 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6072 .loc 1 2835 30 is_stmt 0 view .LVU2125 6073 0090 D2B2 uxtb r2, r2 6074 .LVL415: 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6075 .loc 1 2835 28 view .LVU2126 6076 0092 8262 str r2, [r0, #40] 2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6077 .loc 1 2838 7 is_stmt 1 view .LVU2127 2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6078 .loc 1 2838 24 is_stmt 0 view .LVU2128 6079 0094 4FF0FF33 mov r3, #-1 6080 0098 2365 str r3, [r4, #80] 6081 009a E3E7 b .L387 6082 .LVL416: 6083 .L388: 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6084 .loc 1 2869 12 view .LVU2129 6085 009c 0220 movs r0, #2 6086 .LVL417: 6087 .L383: 2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6088 .loc 1 2871 1 view .LVU2130 6089 009e 02B0 add sp, sp, #8 6090 .LCFI68: 6091 .cfi_remember_state 6092 .cfi_def_cfa_offset 16 6093 @ sp needed 6094 00a0 70BD pop {r4, r5, r6, pc} 6095 .LVL418: 6096 .L389: 6097 .LCFI69: 6098 .cfi_restore_state 2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6099 .loc 1 2813 14 view .LVU2131 6100 00a2 0220 movs r0, #2 6101 00a4 FBE7 b .L383 6102 .L390: 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6103 .loc 1 2817 5 discriminator 1 view .LVU2132 6104 00a6 0220 movs r0, #2 6105 00a8 F9E7 b .L383 6106 .L394: 6107 00aa 00BF .align 2 6108 .L393: 6109 00ac 0000FFFF .word -65536 6110 00b0 00000000 .word I2C_Mem_ISR_IT 6111 00b4 00200080 .word -2147475456 6112 .cfi_endproc 6113 .LFE347: 6115 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 6116 .align 1 6117 .global HAL_I2C_Mem_Read_IT 6118 .syntax unified 6119 .thumb 6120 .thumb_func ARM GAS /tmp/ccDmmuIk.s page 274 6122 HAL_I2C_Mem_Read_IT: 6123 .LVL419: 6124 .LFB348: 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 6125 .loc 1 2887 1 is_stmt 1 view -0 6126 .cfi_startproc 6127 @ args = 8, pretend = 0, frame = 0 6128 @ frame_needed = 0, uses_anonymous_args = 0 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 6129 .loc 1 2887 1 is_stmt 0 view .LVU2134 6130 0000 70B5 push {r4, r5, r6, lr} 6131 .LCFI70: 6132 .cfi_def_cfa_offset 16 6133 .cfi_offset 4, -16 6134 .cfi_offset 5, -12 6135 .cfi_offset 6, -8 6136 .cfi_offset 14, -4 6137 0002 82B0 sub sp, sp, #8 6138 .LCFI71: 6139 .cfi_def_cfa_offset 24 6140 0004 0446 mov r4, r0 6141 0006 1D46 mov r5, r3 6142 0008 BDF81C30 ldrh r3, [sp, #28] 6143 .LVL420: 2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6144 .loc 1 2889 3 is_stmt 1 view .LVU2135 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6145 .loc 1 2891 3 view .LVU2136 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6146 .loc 1 2891 11 is_stmt 0 view .LVU2137 6147 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6148 .LVL421: 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6149 .loc 1 2891 6 view .LVU2138 6150 0010 2028 cmp r0, #32 6151 0012 41D1 bne .L401 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6152 .loc 1 2893 5 is_stmt 1 view .LVU2139 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6153 .loc 1 2893 8 is_stmt 0 view .LVU2140 6154 0014 0698 ldr r0, [sp, #24] 6155 0016 0028 cmp r0, #0 6156 0018 33D0 beq .L397 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6157 .loc 1 2893 25 discriminator 1 view .LVU2141 6158 001a 002B cmp r3, #0 6159 001c 31D0 beq .L397 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6160 .loc 1 2899 5 is_stmt 1 view .LVU2142 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6161 .loc 1 2899 9 is_stmt 0 view .LVU2143 6162 001e 2068 ldr r0, [r4] 6163 0020 8669 ldr r6, [r0, #24] 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6164 .loc 1 2899 8 view .LVU2144 6165 0022 16F4004F tst r6, #32768 6166 0026 3AD1 bne .L402 ARM GAS /tmp/ccDmmuIk.s page 275 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6167 .loc 1 2905 5 is_stmt 1 view .LVU2145 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6168 .loc 1 2905 5 view .LVU2146 6169 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6170 002c 012E cmp r6, #1 6171 002e 38D0 beq .L403 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6172 .loc 1 2905 5 discriminator 2 view .LVU2147 6173 0030 0126 movs r6, #1 6174 0032 84F84060 strb r6, [r4, #64] 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6175 .loc 1 2905 5 view .LVU2148 2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6176 .loc 1 2907 5 view .LVU2149 2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6177 .loc 1 2907 23 is_stmt 0 view .LVU2150 6178 0036 2226 movs r6, #34 6179 0038 84F84160 strb r6, [r4, #65] 2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6180 .loc 1 2908 5 is_stmt 1 view .LVU2151 2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6181 .loc 1 2908 23 is_stmt 0 view .LVU2152 6182 003c 4026 movs r6, #64 6183 003e 84F84260 strb r6, [r4, #66] 2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6184 .loc 1 2909 5 is_stmt 1 view .LVU2153 2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6185 .loc 1 2909 23 is_stmt 0 view .LVU2154 6186 0042 0026 movs r6, #0 6187 0044 6664 str r6, [r4, #68] 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6188 .loc 1 2912 5 is_stmt 1 view .LVU2155 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6189 .loc 1 2912 23 is_stmt 0 view .LVU2156 6190 0046 069E ldr r6, [sp, #24] 6191 0048 6662 str r6, [r4, #36] 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6192 .loc 1 2913 5 is_stmt 1 view .LVU2157 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6193 .loc 1 2913 23 is_stmt 0 view .LVU2158 6194 004a 6385 strh r3, [r4, #42] @ movhi 2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6195 .loc 1 2914 5 is_stmt 1 view .LVU2159 2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6196 .loc 1 2914 23 is_stmt 0 view .LVU2160 6197 004c 164B ldr r3, .L406 6198 004e E362 str r3, [r4, #44] 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6199 .loc 1 2915 5 is_stmt 1 view .LVU2161 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6200 .loc 1 2915 23 is_stmt 0 view .LVU2162 6201 0050 164B ldr r3, .L406+4 6202 0052 6363 str r3, [r4, #52] 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6203 .loc 1 2916 5 is_stmt 1 view .LVU2163 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 276 6204 .loc 1 2916 23 is_stmt 0 view .LVU2164 6205 0054 E164 str r1, [r4, #76] 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6206 .loc 1 2919 5 is_stmt 1 view .LVU2165 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6207 .loc 1 2919 8 is_stmt 0 view .LVU2166 6208 0056 012D cmp r5, #1 6209 0058 18D0 beq .L405 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6210 .loc 1 2931 7 is_stmt 1 view .LVU2167 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6211 .loc 1 2931 30 is_stmt 0 view .LVU2168 6212 005a 130A lsrs r3, r2, #8 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6213 .loc 1 2931 28 view .LVU2169 6214 005c 8362 str r3, [r0, #40] 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6215 .loc 1 2934 7 is_stmt 1 view .LVU2170 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6216 .loc 1 2934 26 is_stmt 0 view .LVU2171 6217 005e D2B2 uxtb r2, r2 6218 .LVL422: 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6219 .loc 1 2934 24 view .LVU2172 6220 0060 2265 str r2, [r4, #80] 6221 .L400: 2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6222 .loc 1 2937 5 is_stmt 1 view .LVU2173 6223 0062 134B ldr r3, .L406+8 6224 0064 0093 str r3, [sp] 6225 0066 0023 movs r3, #0 6226 0068 EAB2 uxtb r2, r5 6227 006a 2046 mov r0, r4 6228 006c FFF7FEFF bl I2C_TransferConfig 6229 .LVL423: 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6230 .loc 1 2940 5 view .LVU2174 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6231 .loc 1 2940 5 view .LVU2175 6232 0070 0025 movs r5, #0 6233 .LVL424: 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6234 .loc 1 2940 5 is_stmt 0 view .LVU2176 6235 0072 84F84050 strb r5, [r4, #64] 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6236 .loc 1 2940 5 is_stmt 1 view .LVU2177 2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6237 .loc 1 2950 5 view .LVU2178 6238 0076 0121 movs r1, #1 6239 0078 2046 mov r0, r4 6240 007a FFF7FEFF bl I2C_Enable_IRQ 6241 .LVL425: 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6242 .loc 1 2952 5 view .LVU2179 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6243 .loc 1 2952 12 is_stmt 0 view .LVU2180 6244 007e 2846 mov r0, r5 ARM GAS /tmp/ccDmmuIk.s page 277 6245 0080 0BE0 b .L396 6246 .LVL426: 6247 .L397: 2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6248 .loc 1 2895 7 is_stmt 1 view .LVU2181 2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6249 .loc 1 2895 23 is_stmt 0 view .LVU2182 6250 0082 4FF40073 mov r3, #512 6251 0086 6364 str r3, [r4, #68] 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6252 .loc 1 2896 7 is_stmt 1 view .LVU2183 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6253 .loc 1 2896 15 is_stmt 0 view .LVU2184 6254 0088 0120 movs r0, #1 6255 008a 06E0 b .L396 6256 .L405: 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6257 .loc 1 2922 7 is_stmt 1 view .LVU2185 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6258 .loc 1 2922 30 is_stmt 0 view .LVU2186 6259 008c D2B2 uxtb r2, r2 6260 .LVL427: 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6261 .loc 1 2922 28 view .LVU2187 6262 008e 8262 str r2, [r0, #40] 2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6263 .loc 1 2925 7 is_stmt 1 view .LVU2188 2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6264 .loc 1 2925 24 is_stmt 0 view .LVU2189 6265 0090 4FF0FF33 mov r3, #-1 6266 0094 2365 str r3, [r4, #80] 6267 0096 E4E7 b .L400 6268 .LVL428: 6269 .L401: 2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6270 .loc 1 2956 12 view .LVU2190 6271 0098 0220 movs r0, #2 6272 .LVL429: 6273 .L396: 2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6274 .loc 1 2958 1 view .LVU2191 6275 009a 02B0 add sp, sp, #8 6276 .LCFI72: 6277 .cfi_remember_state 6278 .cfi_def_cfa_offset 16 6279 @ sp needed 6280 009c 70BD pop {r4, r5, r6, pc} 6281 .LVL430: 6282 .L402: 6283 .LCFI73: 6284 .cfi_restore_state 2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6285 .loc 1 2901 14 view .LVU2192 6286 009e 0220 movs r0, #2 6287 00a0 FBE7 b .L396 6288 .L403: 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 278 6289 .loc 1 2905 5 discriminator 1 view .LVU2193 6290 00a2 0220 movs r0, #2 6291 00a4 F9E7 b .L396 6292 .L407: 6293 00a6 00BF .align 2 6294 .L406: 6295 00a8 0000FFFF .word -65536 6296 00ac 00000000 .word I2C_Mem_ISR_IT 6297 00b0 00200080 .word -2147475456 6298 .cfi_endproc 6299 .LFE348: 6301 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6302 .align 1 6303 .global HAL_I2C_Mem_Write_DMA 6304 .syntax unified 6305 .thumb 6306 .thumb_func 6308 HAL_I2C_Mem_Write_DMA: 6309 .LVL431: 6310 .LFB349: 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6311 .loc 1 2974 1 is_stmt 1 view -0 6312 .cfi_startproc 6313 @ args = 8, pretend = 0, frame = 0 6314 @ frame_needed = 0, uses_anonymous_args = 0 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6315 .loc 1 2974 1 is_stmt 0 view .LVU2195 6316 0000 F0B5 push {r4, r5, r6, r7, lr} 6317 .LCFI74: 6318 .cfi_def_cfa_offset 20 6319 .cfi_offset 4, -20 6320 .cfi_offset 5, -16 6321 .cfi_offset 6, -12 6322 .cfi_offset 7, -8 6323 .cfi_offset 14, -4 6324 0002 83B0 sub sp, sp, #12 6325 .LCFI75: 6326 .cfi_def_cfa_offset 32 6327 0004 0446 mov r4, r0 6328 0006 0E46 mov r6, r1 6329 0008 1F46 mov r7, r3 6330 000a 0899 ldr r1, [sp, #32] 6331 .LVL432: 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6332 .loc 1 2974 1 view .LVU2196 6333 000c BDF82430 ldrh r3, [sp, #36] 6334 .LVL433: 2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6335 .loc 1 2975 3 is_stmt 1 view .LVU2197 2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6336 .loc 1 2978 3 view .LVU2198 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6337 .loc 1 2980 3 view .LVU2199 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6338 .loc 1 2980 11 is_stmt 0 view .LVU2200 6339 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6340 .LVL434: ARM GAS /tmp/ccDmmuIk.s page 279 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6341 .loc 1 2980 6 view .LVU2201 6342 0014 2028 cmp r0, #32 6343 0016 7AD1 bne .L419 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6344 .loc 1 2982 5 is_stmt 1 view .LVU2202 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6345 .loc 1 2982 8 is_stmt 0 view .LVU2203 6346 0018 0029 cmp r1, #0 6347 001a 4BD0 beq .L410 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6348 .loc 1 2982 25 discriminator 1 view .LVU2204 6349 001c 002B cmp r3, #0 6350 001e 49D0 beq .L410 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6351 .loc 1 2988 5 is_stmt 1 view .LVU2205 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6352 .loc 1 2988 9 is_stmt 0 view .LVU2206 6353 0020 2068 ldr r0, [r4] 6354 0022 8569 ldr r5, [r0, #24] 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6355 .loc 1 2988 8 view .LVU2207 6356 0024 15F4004F tst r5, #32768 6357 0028 75D1 bne .L420 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6358 .loc 1 2994 5 is_stmt 1 view .LVU2208 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6359 .loc 1 2994 5 view .LVU2209 6360 002a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 6361 002e 012D cmp r5, #1 6362 0030 73D0 beq .L421 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6363 .loc 1 2994 5 discriminator 2 view .LVU2210 6364 0032 0125 movs r5, #1 6365 0034 84F84050 strb r5, [r4, #64] 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6366 .loc 1 2994 5 view .LVU2211 2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6367 .loc 1 2996 5 view .LVU2212 2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6368 .loc 1 2996 23 is_stmt 0 view .LVU2213 6369 0038 2125 movs r5, #33 6370 003a 84F84150 strb r5, [r4, #65] 2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6371 .loc 1 2997 5 is_stmt 1 view .LVU2214 2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6372 .loc 1 2997 23 is_stmt 0 view .LVU2215 6373 003e 4025 movs r5, #64 6374 0040 84F84250 strb r5, [r4, #66] 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6375 .loc 1 2998 5 is_stmt 1 view .LVU2216 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6376 .loc 1 2998 23 is_stmt 0 view .LVU2217 6377 0044 0025 movs r5, #0 6378 0046 6564 str r5, [r4, #68] 3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6379 .loc 1 3001 5 is_stmt 1 view .LVU2218 ARM GAS /tmp/ccDmmuIk.s page 280 3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6380 .loc 1 3001 23 is_stmt 0 view .LVU2219 6381 0048 6162 str r1, [r4, #36] 3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6382 .loc 1 3002 5 is_stmt 1 view .LVU2220 3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6383 .loc 1 3002 23 is_stmt 0 view .LVU2221 6384 004a 6385 strh r3, [r4, #42] @ movhi 3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6385 .loc 1 3003 5 is_stmt 1 view .LVU2222 3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6386 .loc 1 3003 23 is_stmt 0 view .LVU2223 6387 004c 344B ldr r3, .L426 6388 004e E362 str r3, [r4, #44] 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6389 .loc 1 3004 5 is_stmt 1 view .LVU2224 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6390 .loc 1 3004 23 is_stmt 0 view .LVU2225 6391 0050 344B ldr r3, .L426+4 6392 0052 6363 str r3, [r4, #52] 3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6393 .loc 1 3005 5 is_stmt 1 view .LVU2226 3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6394 .loc 1 3005 23 is_stmt 0 view .LVU2227 6395 0054 E664 str r6, [r4, #76] 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6396 .loc 1 3007 5 is_stmt 1 view .LVU2228 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6397 .loc 1 3007 13 is_stmt 0 view .LVU2229 6398 0056 638D ldrh r3, [r4, #42] 6399 0058 9BB2 uxth r3, r3 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6400 .loc 1 3007 8 view .LVU2230 6401 005a FF2B cmp r3, #255 6402 005c 2FD9 bls .L412 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6403 .loc 1 3009 7 is_stmt 1 view .LVU2231 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6404 .loc 1 3009 22 is_stmt 0 view .LVU2232 6405 005e FF23 movs r3, #255 6406 0060 2385 strh r3, [r4, #40] @ movhi 6407 .L413: 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6408 .loc 1 3017 5 is_stmt 1 view .LVU2233 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6409 .loc 1 3017 8 is_stmt 0 view .LVU2234 6410 0062 012F cmp r7, #1 6411 0064 2ED0 beq .L424 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6412 .loc 1 3029 7 is_stmt 1 view .LVU2235 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6413 .loc 1 3029 30 is_stmt 0 view .LVU2236 6414 0066 130A lsrs r3, r2, #8 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6415 .loc 1 3029 28 view .LVU2237 6416 0068 8362 str r3, [r0, #40] 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 281 6417 .loc 1 3032 7 is_stmt 1 view .LVU2238 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6418 .loc 1 3032 26 is_stmt 0 view .LVU2239 6419 006a D2B2 uxtb r2, r2 6420 .LVL435: 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6421 .loc 1 3032 24 view .LVU2240 6422 006c 2265 str r2, [r4, #80] 6423 .L415: 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6424 .loc 1 3035 5 is_stmt 1 view .LVU2241 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6425 .loc 1 3035 13 is_stmt 0 view .LVU2242 6426 006e A36B ldr r3, [r4, #56] 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6427 .loc 1 3035 8 view .LVU2243 6428 0070 002B cmp r3, #0 6429 0072 2DD0 beq .L416 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6430 .loc 1 3038 7 is_stmt 1 view .LVU2244 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6431 .loc 1 3038 38 is_stmt 0 view .LVU2245 6432 0074 2C4A ldr r2, .L426+8 6433 0076 DA62 str r2, [r3, #44] 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6434 .loc 1 3041 7 is_stmt 1 view .LVU2246 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6435 .loc 1 3041 11 is_stmt 0 view .LVU2247 6436 0078 A36B ldr r3, [r4, #56] 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6437 .loc 1 3041 39 view .LVU2248 6438 007a 2C4A ldr r2, .L426+12 6439 007c 5A63 str r2, [r3, #52] 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6440 .loc 1 3044 7 is_stmt 1 view .LVU2249 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6441 .loc 1 3044 11 is_stmt 0 view .LVU2250 6442 007e A26B ldr r2, [r4, #56] 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6443 .loc 1 3044 42 view .LVU2251 6444 0080 0023 movs r3, #0 6445 0082 1363 str r3, [r2, #48] 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6446 .loc 1 3045 7 is_stmt 1 view .LVU2252 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6447 .loc 1 3045 11 is_stmt 0 view .LVU2253 6448 0084 A26B ldr r2, [r4, #56] 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6449 .loc 1 3045 39 view .LVU2254 6450 0086 9363 str r3, [r2, #56] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6451 .loc 1 3048 7 is_stmt 1 view .LVU2255 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6452 .loc 1 3048 86 is_stmt 0 view .LVU2256 6453 0088 2268 ldr r2, [r4] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6454 .loc 1 3048 23 view .LVU2257 ARM GAS /tmp/ccDmmuIk.s page 282 6455 008a 238D ldrh r3, [r4, #40] 6456 008c 2832 adds r2, r2, #40 6457 008e A06B ldr r0, [r4, #56] 6458 0090 FFF7FEFF bl HAL_DMA_Start_IT 6459 .LVL436: 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6460 .loc 1 3066 5 is_stmt 1 view .LVU2258 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6461 .loc 1 3066 8 is_stmt 0 view .LVU2259 6462 0094 0546 mov r5, r0 6463 0096 48B3 cbz r0, .L425 3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6464 .loc 1 3086 7 is_stmt 1 view .LVU2260 3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6465 .loc 1 3086 23 is_stmt 0 view .LVU2261 6466 0098 2023 movs r3, #32 6467 009a 84F84130 strb r3, [r4, #65] 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6468 .loc 1 3087 7 is_stmt 1 view .LVU2262 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6469 .loc 1 3087 23 is_stmt 0 view .LVU2263 6470 009e 0022 movs r2, #0 6471 00a0 84F84220 strb r2, [r4, #66] 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6472 .loc 1 3090 7 is_stmt 1 view .LVU2264 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6473 .loc 1 3090 11 is_stmt 0 view .LVU2265 6474 00a4 636C ldr r3, [r4, #68] 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6475 .loc 1 3090 23 view .LVU2266 6476 00a6 43F01003 orr r3, r3, #16 6477 00aa 6364 str r3, [r4, #68] 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6478 .loc 1 3093 7 is_stmt 1 view .LVU2267 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6479 .loc 1 3093 7 view .LVU2268 6480 00ac 84F84020 strb r2, [r4, #64] 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6481 .loc 1 3093 7 view .LVU2269 3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6482 .loc 1 3095 7 view .LVU2270 3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6483 .loc 1 3095 14 is_stmt 0 view .LVU2271 6484 00b0 0125 movs r5, #1 6485 00b2 2DE0 b .L409 6486 .LVL437: 6487 .L410: 2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6488 .loc 1 2984 7 is_stmt 1 view .LVU2272 2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6489 .loc 1 2984 23 is_stmt 0 view .LVU2273 6490 00b4 4FF40073 mov r3, #512 6491 00b8 6364 str r3, [r4, #68] 2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6492 .loc 1 2985 7 is_stmt 1 view .LVU2274 2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6493 .loc 1 2985 15 is_stmt 0 view .LVU2275 ARM GAS /tmp/ccDmmuIk.s page 283 6494 00ba 0125 movs r5, #1 6495 00bc 28E0 b .L409 6496 .L412: 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6497 .loc 1 3013 7 is_stmt 1 view .LVU2276 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6498 .loc 1 3013 28 is_stmt 0 view .LVU2277 6499 00be 638D ldrh r3, [r4, #42] 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6500 .loc 1 3013 22 view .LVU2278 6501 00c0 2385 strh r3, [r4, #40] @ movhi 6502 00c2 CEE7 b .L413 6503 .L424: 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6504 .loc 1 3020 7 is_stmt 1 view .LVU2279 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6505 .loc 1 3020 30 is_stmt 0 view .LVU2280 6506 00c4 D2B2 uxtb r2, r2 6507 .LVL438: 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6508 .loc 1 3020 28 view .LVU2281 6509 00c6 8262 str r2, [r0, #40] 3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6510 .loc 1 3023 7 is_stmt 1 view .LVU2282 3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6511 .loc 1 3023 24 is_stmt 0 view .LVU2283 6512 00c8 4FF0FF33 mov r3, #-1 6513 00cc 2365 str r3, [r4, #80] 6514 00ce CEE7 b .L415 6515 .L416: 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6516 .loc 1 3054 7 is_stmt 1 view .LVU2284 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6517 .loc 1 3054 23 is_stmt 0 view .LVU2285 6518 00d0 2023 movs r3, #32 6519 00d2 84F84130 strb r3, [r4, #65] 3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6520 .loc 1 3055 7 is_stmt 1 view .LVU2286 3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6521 .loc 1 3055 23 is_stmt 0 view .LVU2287 6522 00d6 0022 movs r2, #0 6523 00d8 84F84220 strb r2, [r4, #66] 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6524 .loc 1 3058 7 is_stmt 1 view .LVU2288 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6525 .loc 1 3058 11 is_stmt 0 view .LVU2289 6526 00dc 636C ldr r3, [r4, #68] 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6527 .loc 1 3058 23 view .LVU2290 6528 00de 43F08003 orr r3, r3, #128 6529 00e2 6364 str r3, [r4, #68] 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6530 .loc 1 3061 7 is_stmt 1 view .LVU2291 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6531 .loc 1 3061 7 view .LVU2292 6532 00e4 84F84020 strb r2, [r4, #64] 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 284 6533 .loc 1 3061 7 view .LVU2293 3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6534 .loc 1 3063 7 view .LVU2294 3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6535 .loc 1 3063 14 is_stmt 0 view .LVU2295 6536 00e8 0125 movs r5, #1 6537 00ea 11E0 b .L409 6538 .LVL439: 6539 .L425: 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6540 .loc 1 3069 7 is_stmt 1 view .LVU2296 6541 00ec 104B ldr r3, .L426+16 6542 00ee 0093 str r3, [sp] 6543 00f0 4FF08073 mov r3, #16777216 6544 00f4 FAB2 uxtb r2, r7 6545 00f6 3146 mov r1, r6 6546 00f8 2046 mov r0, r4 6547 .LVL440: 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6548 .loc 1 3069 7 is_stmt 0 view .LVU2297 6549 00fa FFF7FEFF bl I2C_TransferConfig 6550 .LVL441: 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6551 .loc 1 3072 7 is_stmt 1 view .LVU2298 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6552 .loc 1 3072 7 view .LVU2299 6553 00fe 0023 movs r3, #0 6554 0100 84F84030 strb r3, [r4, #64] 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6555 .loc 1 3072 7 view .LVU2300 3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6556 .loc 1 3081 7 view .LVU2301 6557 0104 0121 movs r1, #1 6558 0106 2046 mov r0, r4 6559 0108 FFF7FEFF bl I2C_Enable_IRQ 6560 .LVL442: 3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6561 .loc 1 3098 5 view .LVU2302 3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6562 .loc 1 3098 12 is_stmt 0 view .LVU2303 6563 010c 00E0 b .L409 6564 .LVL443: 6565 .L419: 3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6566 .loc 1 3102 12 view .LVU2304 6567 010e 0225 movs r5, #2 6568 .LVL444: 6569 .L409: 3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6570 .loc 1 3104 1 view .LVU2305 6571 0110 2846 mov r0, r5 6572 0112 03B0 add sp, sp, #12 6573 .LCFI76: 6574 .cfi_remember_state 6575 .cfi_def_cfa_offset 20 6576 @ sp needed 6577 0114 F0BD pop {r4, r5, r6, r7, pc} ARM GAS /tmp/ccDmmuIk.s page 285 6578 .LVL445: 6579 .L420: 6580 .LCFI77: 6581 .cfi_restore_state 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6582 .loc 1 2990 14 view .LVU2306 6583 0116 0225 movs r5, #2 6584 0118 FAE7 b .L409 6585 .L421: 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6586 .loc 1 2994 5 discriminator 1 view .LVU2307 6587 011a 0225 movs r5, #2 6588 011c F8E7 b .L409 6589 .L427: 6590 011e 00BF .align 2 6591 .L426: 6592 0120 0000FFFF .word -65536 6593 0124 00000000 .word I2C_Mem_ISR_DMA 6594 0128 00000000 .word I2C_DMAMasterTransmitCplt 6595 012c 00000000 .word I2C_DMAError 6596 0130 00200080 .word -2147475456 6597 .cfi_endproc 6598 .LFE349: 6600 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6601 .align 1 6602 .global HAL_I2C_Mem_Read_DMA 6603 .syntax unified 6604 .thumb 6605 .thumb_func 6607 HAL_I2C_Mem_Read_DMA: 6608 .LVL446: 6609 .LFB350: 3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6610 .loc 1 3120 1 is_stmt 1 view -0 6611 .cfi_startproc 6612 @ args = 8, pretend = 0, frame = 0 6613 @ frame_needed = 0, uses_anonymous_args = 0 3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6614 .loc 1 3120 1 is_stmt 0 view .LVU2309 6615 0000 F0B5 push {r4, r5, r6, r7, lr} 6616 .LCFI78: 6617 .cfi_def_cfa_offset 20 6618 .cfi_offset 4, -20 6619 .cfi_offset 5, -16 6620 .cfi_offset 6, -12 6621 .cfi_offset 7, -8 6622 .cfi_offset 14, -4 6623 0002 83B0 sub sp, sp, #12 6624 .LCFI79: 6625 .cfi_def_cfa_offset 32 6626 0004 0446 mov r4, r0 6627 0006 1F46 mov r7, r3 6628 0008 089D ldr r5, [sp, #32] 6629 000a BDF82430 ldrh r3, [sp, #36] 6630 .LVL447: 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6631 .loc 1 3121 3 is_stmt 1 view .LVU2310 ARM GAS /tmp/ccDmmuIk.s page 286 3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6632 .loc 1 3124 3 view .LVU2311 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6633 .loc 1 3126 3 view .LVU2312 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6634 .loc 1 3126 11 is_stmt 0 view .LVU2313 6635 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6636 .LVL448: 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6637 .loc 1 3126 6 view .LVU2314 6638 0012 2028 cmp r0, #32 6639 0014 7BD1 bne .L439 6640 0016 0E46 mov r6, r1 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6641 .loc 1 3128 5 is_stmt 1 view .LVU2315 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6642 .loc 1 3128 8 is_stmt 0 view .LVU2316 6643 0018 002D cmp r5, #0 6644 001a 4CD0 beq .L430 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6645 .loc 1 3128 25 discriminator 1 view .LVU2317 6646 001c 002B cmp r3, #0 6647 001e 4AD0 beq .L430 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6648 .loc 1 3134 5 is_stmt 1 view .LVU2318 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6649 .loc 1 3134 9 is_stmt 0 view .LVU2319 6650 0020 2168 ldr r1, [r4] 6651 .LVL449: 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6652 .loc 1 3134 9 view .LVU2320 6653 0022 8869 ldr r0, [r1, #24] 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6654 .loc 1 3134 8 view .LVU2321 6655 0024 10F4004F tst r0, #32768 6656 0028 75D1 bne .L440 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6657 .loc 1 3140 5 is_stmt 1 view .LVU2322 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6658 .loc 1 3140 5 view .LVU2323 6659 002a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 6660 002e 0128 cmp r0, #1 6661 0030 73D0 beq .L441 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6662 .loc 1 3140 5 discriminator 2 view .LVU2324 6663 0032 0120 movs r0, #1 6664 0034 84F84000 strb r0, [r4, #64] 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6665 .loc 1 3140 5 view .LVU2325 3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6666 .loc 1 3142 5 view .LVU2326 3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6667 .loc 1 3142 23 is_stmt 0 view .LVU2327 6668 0038 2220 movs r0, #34 6669 003a 84F84100 strb r0, [r4, #65] 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6670 .loc 1 3143 5 is_stmt 1 view .LVU2328 ARM GAS /tmp/ccDmmuIk.s page 287 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6671 .loc 1 3143 23 is_stmt 0 view .LVU2329 6672 003e 4020 movs r0, #64 6673 0040 84F84200 strb r0, [r4, #66] 3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6674 .loc 1 3144 5 is_stmt 1 view .LVU2330 3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6675 .loc 1 3144 23 is_stmt 0 view .LVU2331 6676 0044 0020 movs r0, #0 6677 0046 6064 str r0, [r4, #68] 3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6678 .loc 1 3147 5 is_stmt 1 view .LVU2332 3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6679 .loc 1 3147 23 is_stmt 0 view .LVU2333 6680 0048 6562 str r5, [r4, #36] 3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6681 .loc 1 3148 5 is_stmt 1 view .LVU2334 3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6682 .loc 1 3148 23 is_stmt 0 view .LVU2335 6683 004a 6385 strh r3, [r4, #42] @ movhi 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6684 .loc 1 3149 5 is_stmt 1 view .LVU2336 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6685 .loc 1 3149 23 is_stmt 0 view .LVU2337 6686 004c 344B ldr r3, .L446 6687 004e E362 str r3, [r4, #44] 3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6688 .loc 1 3150 5 is_stmt 1 view .LVU2338 3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6689 .loc 1 3150 23 is_stmt 0 view .LVU2339 6690 0050 344B ldr r3, .L446+4 6691 0052 6363 str r3, [r4, #52] 3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6692 .loc 1 3151 5 is_stmt 1 view .LVU2340 3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6693 .loc 1 3151 23 is_stmt 0 view .LVU2341 6694 0054 E664 str r6, [r4, #76] 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6695 .loc 1 3153 5 is_stmt 1 view .LVU2342 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6696 .loc 1 3153 13 is_stmt 0 view .LVU2343 6697 0056 638D ldrh r3, [r4, #42] 6698 0058 9BB2 uxth r3, r3 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6699 .loc 1 3153 8 view .LVU2344 6700 005a FF2B cmp r3, #255 6701 005c 30D9 bls .L432 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6702 .loc 1 3155 7 is_stmt 1 view .LVU2345 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6703 .loc 1 3155 22 is_stmt 0 view .LVU2346 6704 005e FF23 movs r3, #255 6705 0060 2385 strh r3, [r4, #40] @ movhi 6706 .L433: 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6707 .loc 1 3163 5 is_stmt 1 view .LVU2347 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 288 6708 .loc 1 3163 8 is_stmt 0 view .LVU2348 6709 0062 012F cmp r7, #1 6710 0064 2FD0 beq .L444 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6711 .loc 1 3175 7 is_stmt 1 view .LVU2349 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6712 .loc 1 3175 30 is_stmt 0 view .LVU2350 6713 0066 130A lsrs r3, r2, #8 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6714 .loc 1 3175 28 view .LVU2351 6715 0068 8B62 str r3, [r1, #40] 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6716 .loc 1 3178 7 is_stmt 1 view .LVU2352 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6717 .loc 1 3178 26 is_stmt 0 view .LVU2353 6718 006a D2B2 uxtb r2, r2 6719 .LVL450: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6720 .loc 1 3178 24 view .LVU2354 6721 006c 2265 str r2, [r4, #80] 6722 .L435: 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6723 .loc 1 3181 5 is_stmt 1 view .LVU2355 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6724 .loc 1 3181 13 is_stmt 0 view .LVU2356 6725 006e E36B ldr r3, [r4, #60] 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6726 .loc 1 3181 8 view .LVU2357 6727 0070 002B cmp r3, #0 6728 0072 2ED0 beq .L436 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6729 .loc 1 3184 7 is_stmt 1 view .LVU2358 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6730 .loc 1 3184 38 is_stmt 0 view .LVU2359 6731 0074 2C4A ldr r2, .L446+8 6732 0076 DA62 str r2, [r3, #44] 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6733 .loc 1 3187 7 is_stmt 1 view .LVU2360 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6734 .loc 1 3187 11 is_stmt 0 view .LVU2361 6735 0078 E36B ldr r3, [r4, #60] 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6736 .loc 1 3187 39 view .LVU2362 6737 007a 2C4A ldr r2, .L446+12 6738 007c 5A63 str r2, [r3, #52] 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6739 .loc 1 3190 7 is_stmt 1 view .LVU2363 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6740 .loc 1 3190 11 is_stmt 0 view .LVU2364 6741 007e E26B ldr r2, [r4, #60] 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6742 .loc 1 3190 42 view .LVU2365 6743 0080 0023 movs r3, #0 6744 0082 1363 str r3, [r2, #48] 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6745 .loc 1 3191 7 is_stmt 1 view .LVU2366 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 289 6746 .loc 1 3191 11 is_stmt 0 view .LVU2367 6747 0084 E26B ldr r2, [r4, #60] 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6748 .loc 1 3191 39 view .LVU2368 6749 0086 9363 str r3, [r2, #56] 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6750 .loc 1 3194 7 is_stmt 1 view .LVU2369 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6751 .loc 1 3194 69 is_stmt 0 view .LVU2370 6752 0088 2168 ldr r1, [r4] 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6753 .loc 1 3194 23 view .LVU2371 6754 008a 238D ldrh r3, [r4, #40] 6755 008c 2A46 mov r2, r5 6756 008e 2431 adds r1, r1, #36 6757 0090 E06B ldr r0, [r4, #60] 6758 0092 FFF7FEFF bl HAL_DMA_Start_IT 6759 .LVL451: 3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6760 .loc 1 3212 5 is_stmt 1 view .LVU2372 3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6761 .loc 1 3212 8 is_stmt 0 view .LVU2373 6762 0096 0546 mov r5, r0 6763 0098 48B3 cbz r0, .L445 3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6764 .loc 1 3232 7 is_stmt 1 view .LVU2374 3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6765 .loc 1 3232 23 is_stmt 0 view .LVU2375 6766 009a 2023 movs r3, #32 6767 009c 84F84130 strb r3, [r4, #65] 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6768 .loc 1 3233 7 is_stmt 1 view .LVU2376 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6769 .loc 1 3233 23 is_stmt 0 view .LVU2377 6770 00a0 0022 movs r2, #0 6771 00a2 84F84220 strb r2, [r4, #66] 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6772 .loc 1 3236 7 is_stmt 1 view .LVU2378 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6773 .loc 1 3236 11 is_stmt 0 view .LVU2379 6774 00a6 636C ldr r3, [r4, #68] 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6775 .loc 1 3236 23 view .LVU2380 6776 00a8 43F01003 orr r3, r3, #16 6777 00ac 6364 str r3, [r4, #68] 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6778 .loc 1 3239 7 is_stmt 1 view .LVU2381 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6779 .loc 1 3239 7 view .LVU2382 6780 00ae 84F84020 strb r2, [r4, #64] 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6781 .loc 1 3239 7 view .LVU2383 3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6782 .loc 1 3241 7 view .LVU2384 3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6783 .loc 1 3241 14 is_stmt 0 view .LVU2385 6784 00b2 0125 movs r5, #1 ARM GAS /tmp/ccDmmuIk.s page 290 6785 00b4 2CE0 b .L429 6786 .LVL452: 6787 .L430: 3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6788 .loc 1 3130 7 is_stmt 1 view .LVU2386 3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6789 .loc 1 3130 23 is_stmt 0 view .LVU2387 6790 00b6 4FF40073 mov r3, #512 6791 00ba 6364 str r3, [r4, #68] 3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6792 .loc 1 3131 7 is_stmt 1 view .LVU2388 3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6793 .loc 1 3131 15 is_stmt 0 view .LVU2389 6794 00bc 0125 movs r5, #1 6795 00be 27E0 b .L429 6796 .LVL453: 6797 .L432: 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6798 .loc 1 3159 7 is_stmt 1 view .LVU2390 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6799 .loc 1 3159 28 is_stmt 0 view .LVU2391 6800 00c0 638D ldrh r3, [r4, #42] 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6801 .loc 1 3159 22 view .LVU2392 6802 00c2 2385 strh r3, [r4, #40] @ movhi 6803 00c4 CDE7 b .L433 6804 .L444: 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6805 .loc 1 3166 7 is_stmt 1 view .LVU2393 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6806 .loc 1 3166 30 is_stmt 0 view .LVU2394 6807 00c6 D2B2 uxtb r2, r2 6808 .LVL454: 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6809 .loc 1 3166 28 view .LVU2395 6810 00c8 8A62 str r2, [r1, #40] 3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6811 .loc 1 3169 7 is_stmt 1 view .LVU2396 3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6812 .loc 1 3169 24 is_stmt 0 view .LVU2397 6813 00ca 4FF0FF33 mov r3, #-1 6814 00ce 2365 str r3, [r4, #80] 6815 00d0 CDE7 b .L435 6816 .L436: 3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6817 .loc 1 3200 7 is_stmt 1 view .LVU2398 3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6818 .loc 1 3200 23 is_stmt 0 view .LVU2399 6819 00d2 2023 movs r3, #32 6820 00d4 84F84130 strb r3, [r4, #65] 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6821 .loc 1 3201 7 is_stmt 1 view .LVU2400 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6822 .loc 1 3201 23 is_stmt 0 view .LVU2401 6823 00d8 0022 movs r2, #0 6824 00da 84F84220 strb r2, [r4, #66] 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 291 6825 .loc 1 3204 7 is_stmt 1 view .LVU2402 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6826 .loc 1 3204 11 is_stmt 0 view .LVU2403 6827 00de 636C ldr r3, [r4, #68] 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6828 .loc 1 3204 23 view .LVU2404 6829 00e0 43F08003 orr r3, r3, #128 6830 00e4 6364 str r3, [r4, #68] 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6831 .loc 1 3207 7 is_stmt 1 view .LVU2405 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6832 .loc 1 3207 7 view .LVU2406 6833 00e6 84F84020 strb r2, [r4, #64] 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6834 .loc 1 3207 7 view .LVU2407 3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6835 .loc 1 3209 7 view .LVU2408 3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6836 .loc 1 3209 14 is_stmt 0 view .LVU2409 6837 00ea 0125 movs r5, #1 6838 00ec 10E0 b .L429 6839 .LVL455: 6840 .L445: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6841 .loc 1 3215 7 is_stmt 1 view .LVU2410 6842 00ee 104B ldr r3, .L446+16 6843 00f0 0093 str r3, [sp] 6844 00f2 0023 movs r3, #0 6845 00f4 FAB2 uxtb r2, r7 6846 00f6 3146 mov r1, r6 6847 00f8 2046 mov r0, r4 6848 .LVL456: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6849 .loc 1 3215 7 is_stmt 0 view .LVU2411 6850 00fa FFF7FEFF bl I2C_TransferConfig 6851 .LVL457: 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6852 .loc 1 3218 7 is_stmt 1 view .LVU2412 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6853 .loc 1 3218 7 view .LVU2413 6854 00fe 0023 movs r3, #0 6855 0100 84F84030 strb r3, [r4, #64] 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6856 .loc 1 3218 7 view .LVU2414 3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6857 .loc 1 3227 7 view .LVU2415 6858 0104 0121 movs r1, #1 6859 0106 2046 mov r0, r4 6860 0108 FFF7FEFF bl I2C_Enable_IRQ 6861 .LVL458: 3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6862 .loc 1 3244 5 view .LVU2416 3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6863 .loc 1 3244 12 is_stmt 0 view .LVU2417 6864 010c 00E0 b .L429 6865 .LVL459: 6866 .L439: ARM GAS /tmp/ccDmmuIk.s page 292 3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6867 .loc 1 3248 12 view .LVU2418 6868 010e 0225 movs r5, #2 6869 .LVL460: 6870 .L429: 3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6871 .loc 1 3250 1 view .LVU2419 6872 0110 2846 mov r0, r5 6873 0112 03B0 add sp, sp, #12 6874 .LCFI80: 6875 .cfi_remember_state 6876 .cfi_def_cfa_offset 20 6877 @ sp needed 6878 0114 F0BD pop {r4, r5, r6, r7, pc} 6879 .LVL461: 6880 .L440: 6881 .LCFI81: 6882 .cfi_restore_state 3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6883 .loc 1 3136 14 view .LVU2420 6884 0116 0225 movs r5, #2 6885 0118 FAE7 b .L429 6886 .L441: 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6887 .loc 1 3140 5 discriminator 1 view .LVU2421 6888 011a 0225 movs r5, #2 6889 011c F8E7 b .L429 6890 .L447: 6891 011e 00BF .align 2 6892 .L446: 6893 0120 0000FFFF .word -65536 6894 0124 00000000 .word I2C_Mem_ISR_DMA 6895 0128 00000000 .word I2C_DMAMasterReceiveCplt 6896 012c 00000000 .word I2C_DMAError 6897 0130 00200080 .word -2147475456 6898 .cfi_endproc 6899 .LFE350: 6901 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6902 .align 1 6903 .global HAL_I2C_IsDeviceReady 6904 .syntax unified 6905 .thumb 6906 .thumb_func 6908 HAL_I2C_IsDeviceReady: 6909 .LVL462: 6910 .LFB351: 3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 6911 .loc 1 3265 1 is_stmt 1 view -0 6912 .cfi_startproc 6913 @ args = 0, pretend = 0, frame = 8 6914 @ frame_needed = 0, uses_anonymous_args = 0 3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 6915 .loc 1 3265 1 is_stmt 0 view .LVU2423 6916 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6917 .LCFI82: 6918 .cfi_def_cfa_offset 28 6919 .cfi_offset 4, -28 ARM GAS /tmp/ccDmmuIk.s page 293 6920 .cfi_offset 5, -24 6921 .cfi_offset 6, -20 6922 .cfi_offset 7, -16 6923 .cfi_offset 8, -12 6924 .cfi_offset 9, -8 6925 .cfi_offset 14, -4 6926 0004 85B0 sub sp, sp, #20 6927 .LCFI83: 6928 .cfi_def_cfa_offset 48 6929 0006 1D46 mov r5, r3 3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6930 .loc 1 3266 3 is_stmt 1 view .LVU2424 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6931 .loc 1 3268 3 view .LVU2425 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6932 .loc 1 3268 17 is_stmt 0 view .LVU2426 6933 0008 0023 movs r3, #0 6934 .LVL463: 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6935 .loc 1 3268 17 view .LVU2427 6936 000a 0393 str r3, [sp, #12] 3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp2; 6937 .loc 1 3270 3 is_stmt 1 view .LVU2428 3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6938 .loc 1 3271 3 view .LVU2429 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6939 .loc 1 3273 3 view .LVU2430 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6940 .loc 1 3273 11 is_stmt 0 view .LVU2431 6941 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6942 .loc 1 3273 6 view .LVU2432 6943 0010 202B cmp r3, #32 6944 0012 40F08980 bne .L459 6945 0016 0646 mov r6, r0 6946 0018 8846 mov r8, r1 6947 001a 9146 mov r9, r2 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6948 .loc 1 3275 5 is_stmt 1 view .LVU2433 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6949 .loc 1 3275 9 is_stmt 0 view .LVU2434 6950 001c 0368 ldr r3, [r0] 6951 001e 9B69 ldr r3, [r3, #24] 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6952 .loc 1 3275 8 view .LVU2435 6953 0020 13F4004F tst r3, #32768 6954 0024 40F08280 bne .L460 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6955 .loc 1 3281 5 is_stmt 1 view .LVU2436 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6956 .loc 1 3281 5 view .LVU2437 6957 0028 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6958 002c 012B cmp r3, #1 6959 002e 7FD0 beq .L461 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6960 .loc 1 3281 5 discriminator 2 view .LVU2438 6961 0030 0123 movs r3, #1 ARM GAS /tmp/ccDmmuIk.s page 294 6962 0032 80F84030 strb r3, [r0, #64] 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6963 .loc 1 3281 5 view .LVU2439 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6964 .loc 1 3283 5 view .LVU2440 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6965 .loc 1 3283 17 is_stmt 0 view .LVU2441 6966 0036 2423 movs r3, #36 6967 0038 80F84130 strb r3, [r0, #65] 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6968 .loc 1 3284 5 is_stmt 1 view .LVU2442 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6969 .loc 1 3284 21 is_stmt 0 view .LVU2443 6970 003c 0023 movs r3, #0 6971 003e 4364 str r3, [r0, #68] 6972 0040 41E0 b .L458 6973 .LVL464: 6974 .L467: 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6975 .loc 1 3289 29 discriminator 1 view .LVU2444 6976 0042 C8F30903 ubfx r3, r8, #0, #10 6977 0046 43F00073 orr r3, r3, #33554432 6978 004a 43F40053 orr r3, r3, #8192 6979 004e 43E0 b .L451 6980 .LVL465: 6981 .L453: 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6982 .loc 1 3317 9 is_stmt 1 view .LVU2445 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6983 .loc 1 3317 16 is_stmt 0 view .LVU2446 6984 0050 3368 ldr r3, [r6] 6985 0052 9C69 ldr r4, [r3, #24] 6986 .LVL466: 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6987 .loc 1 3317 16 view .LVU2447 6988 0054 C4F34014 ubfx r4, r4, #5, #1 6989 .LVL467: 3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6990 .loc 1 3318 9 is_stmt 1 view .LVU2448 3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6991 .loc 1 3318 16 is_stmt 0 view .LVU2449 6992 0058 9B69 ldr r3, [r3, #24] 6993 005a C3F30013 ubfx r3, r3, #4, #1 6994 .LVL468: 6995 .L452: 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6996 .loc 1 3298 30 is_stmt 1 view .LVU2450 6997 005e C4B9 cbnz r4, .L455 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6998 .loc 1 3298 30 is_stmt 0 discriminator 1 view .LVU2451 6999 0060 BBB9 cbnz r3, .L455 3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7000 .loc 1 3300 9 is_stmt 1 view .LVU2452 3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7001 .loc 1 3300 12 is_stmt 0 view .LVU2453 7002 0062 B5F1FF3F cmp r5, #-1 7003 0066 F3D0 beq .L453 ARM GAS /tmp/ccDmmuIk.s page 295 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7004 .loc 1 3302 11 is_stmt 1 view .LVU2454 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7005 .loc 1 3302 17 is_stmt 0 view .LVU2455 7006 0068 FFF7FEFF bl HAL_GetTick 7007 .LVL469: 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7008 .loc 1 3302 31 discriminator 1 view .LVU2456 7009 006c C01B subs r0, r0, r7 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7010 .loc 1 3302 14 discriminator 1 view .LVU2457 7011 006e A842 cmp r0, r5 7012 0070 01D8 bhi .L454 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7013 .loc 1 3302 55 discriminator 1 view .LVU2458 7014 0072 002D cmp r5, #0 7015 0074 ECD1 bne .L453 7016 .L454: 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7017 .loc 1 3305 13 is_stmt 1 view .LVU2459 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7018 .loc 1 3305 25 is_stmt 0 view .LVU2460 7019 0076 2023 movs r3, #32 7020 0078 86F84130 strb r3, [r6, #65] 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7021 .loc 1 3308 13 is_stmt 1 view .LVU2461 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7022 .loc 1 3308 17 is_stmt 0 view .LVU2462 7023 007c 736C ldr r3, [r6, #68] 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7024 .loc 1 3308 29 view .LVU2463 7025 007e 43F02003 orr r3, r3, #32 7026 0082 7364 str r3, [r6, #68] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7027 .loc 1 3311 13 is_stmt 1 view .LVU2464 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7028 .loc 1 3311 13 view .LVU2465 7029 0084 0023 movs r3, #0 7030 0086 86F84030 strb r3, [r6, #64] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7031 .loc 1 3311 13 view .LVU2466 3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7032 .loc 1 3313 13 view .LVU2467 3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7033 .loc 1 3313 20 is_stmt 0 view .LVU2468 7034 008a 0120 movs r0, #1 7035 .LVL470: 7036 .L449: 3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7037 .loc 1 3375 1 view .LVU2469 7038 008c 05B0 add sp, sp, #20 7039 .LCFI84: 7040 .cfi_remember_state 7041 .cfi_def_cfa_offset 28 7042 @ sp needed 7043 008e BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7044 .LVL471: ARM GAS /tmp/ccDmmuIk.s page 296 7045 .L455: 7046 .LCFI85: 7047 .cfi_restore_state 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7048 .loc 1 3322 7 is_stmt 1 view .LVU2470 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7049 .loc 1 3322 11 is_stmt 0 view .LVU2471 7050 0092 3368 ldr r3, [r6] 7051 .LVL472: 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7052 .loc 1 3322 11 view .LVU2472 7053 0094 9B69 ldr r3, [r3, #24] 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7054 .loc 1 3322 10 view .LVU2473 7055 0096 13F0100F tst r3, #16 7056 009a 2AD0 beq .L465 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7057 .loc 1 3344 9 is_stmt 1 view .LVU2474 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7058 .loc 1 3344 13 is_stmt 0 view .LVU2475 7059 009c 0097 str r7, [sp] 7060 009e 2B46 mov r3, r5 7061 00a0 0022 movs r2, #0 7062 00a2 2021 movs r1, #32 7063 00a4 3046 mov r0, r6 7064 00a6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7065 .LVL473: 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7066 .loc 1 3344 12 discriminator 1 view .LVU2476 7067 00aa 0028 cmp r0, #0 7068 00ac 44D1 bne .L463 3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7069 .loc 1 3350 9 is_stmt 1 view .LVU2477 7070 00ae 3368 ldr r3, [r6] 7071 00b0 1022 movs r2, #16 7072 00b2 DA61 str r2, [r3, #28] 3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7073 .loc 1 3353 9 view .LVU2478 7074 00b4 3368 ldr r3, [r6] 7075 00b6 2022 movs r2, #32 7076 00b8 DA61 str r2, [r3, #28] 3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7077 .loc 1 3357 7 view .LVU2479 3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7078 .loc 1 3357 17 is_stmt 0 view .LVU2480 7079 00ba 039B ldr r3, [sp, #12] 7080 00bc 0133 adds r3, r3, #1 7081 00be 0393 str r3, [sp, #12] 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7082 .loc 1 3358 25 is_stmt 1 view .LVU2481 7083 00c0 039B ldr r3, [sp, #12] 7084 00c2 4B45 cmp r3, r9 7085 00c4 26D2 bcs .L466 7086 .LVL474: 7087 .L458: 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7088 .loc 1 3286 5 view .LVU2482 ARM GAS /tmp/ccDmmuIk.s page 297 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7089 .loc 1 3289 7 view .LVU2483 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7090 .loc 1 3289 29 is_stmt 0 view .LVU2484 7091 00c6 F368 ldr r3, [r6, #12] 7092 00c8 012B cmp r3, #1 7093 00ca BAD0 beq .L467 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7094 .loc 1 3289 29 discriminator 2 view .LVU2485 7095 00cc C8F30903 ubfx r3, r8, #0, #10 7096 00d0 43F00073 orr r3, r3, #33554432 7097 00d4 43F42053 orr r3, r3, #10240 7098 .L451: 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7099 .loc 1 3289 11 discriminator 4 view .LVU2486 7100 00d8 3268 ldr r2, [r6] 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7101 .loc 1 3289 27 discriminator 4 view .LVU2487 7102 00da 5360 str r3, [r2, #4] 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7103 .loc 1 3293 7 is_stmt 1 view .LVU2488 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7104 .loc 1 3293 19 is_stmt 0 view .LVU2489 7105 00dc FFF7FEFF bl HAL_GetTick 7106 .LVL475: 7107 00e0 0746 mov r7, r0 7108 .LVL476: 3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7109 .loc 1 3295 7 is_stmt 1 view .LVU2490 3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7110 .loc 1 3295 14 is_stmt 0 view .LVU2491 7111 00e2 3368 ldr r3, [r6] 7112 00e4 9C69 ldr r4, [r3, #24] 7113 00e6 C4F34014 ubfx r4, r4, #5, #1 7114 .LVL477: 3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7115 .loc 1 3296 7 is_stmt 1 view .LVU2492 3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7116 .loc 1 3296 14 is_stmt 0 view .LVU2493 7117 00ea 9B69 ldr r3, [r3, #24] 7118 00ec C3F30013 ubfx r3, r3, #4, #1 7119 .LVL478: 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7120 .loc 1 3298 7 is_stmt 1 view .LVU2494 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7121 .loc 1 3298 13 is_stmt 0 view .LVU2495 7122 00f0 B5E7 b .L452 7123 .LVL479: 7124 .L465: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7125 .loc 1 3325 9 is_stmt 1 view .LVU2496 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7126 .loc 1 3325 13 is_stmt 0 view .LVU2497 7127 00f2 0097 str r7, [sp] 7128 00f4 2B46 mov r3, r5 7129 00f6 0022 movs r2, #0 7130 00f8 2021 movs r1, #32 ARM GAS /tmp/ccDmmuIk.s page 298 7131 00fa 3046 mov r0, r6 7132 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7133 .LVL480: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7134 .loc 1 3325 12 discriminator 1 view .LVU2498 7135 0100 C0B9 cbnz r0, .L462 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7136 .loc 1 3331 9 is_stmt 1 view .LVU2499 7137 0102 3268 ldr r2, [r6] 7138 0104 2023 movs r3, #32 7139 0106 D361 str r3, [r2, #28] 3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7140 .loc 1 3334 9 view .LVU2500 3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7141 .loc 1 3334 21 is_stmt 0 view .LVU2501 7142 0108 86F84130 strb r3, [r6, #65] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7143 .loc 1 3337 9 is_stmt 1 view .LVU2502 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7144 .loc 1 3337 9 view .LVU2503 7145 010c 0023 movs r3, #0 7146 010e 86F84030 strb r3, [r6, #64] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7147 .loc 1 3337 9 view .LVU2504 3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7148 .loc 1 3339 9 view .LVU2505 3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7149 .loc 1 3339 16 is_stmt 0 view .LVU2506 7150 0112 BBE7 b .L449 7151 .L466: 3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7152 .loc 1 3361 5 is_stmt 1 view .LVU2507 3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7153 .loc 1 3361 17 is_stmt 0 view .LVU2508 7154 0114 86F84120 strb r2, [r6, #65] 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7155 .loc 1 3364 5 is_stmt 1 view .LVU2509 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7156 .loc 1 3364 9 is_stmt 0 view .LVU2510 7157 0118 736C ldr r3, [r6, #68] 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7158 .loc 1 3364 21 view .LVU2511 7159 011a 1343 orrs r3, r3, r2 7160 011c 7364 str r3, [r6, #68] 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7161 .loc 1 3367 5 is_stmt 1 view .LVU2512 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7162 .loc 1 3367 5 view .LVU2513 7163 011e 0023 movs r3, #0 7164 0120 86F84030 strb r3, [r6, #64] 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7165 .loc 1 3367 5 view .LVU2514 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7166 .loc 1 3369 5 view .LVU2515 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7167 .loc 1 3369 12 is_stmt 0 view .LVU2516 7168 0124 0120 movs r0, #1 ARM GAS /tmp/ccDmmuIk.s page 299 7169 0126 B1E7 b .L449 7170 .LVL481: 7171 .L459: 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7172 .loc 1 3373 12 view .LVU2517 7173 0128 0220 movs r0, #2 7174 .LVL482: 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7175 .loc 1 3373 12 view .LVU2518 7176 012a AFE7 b .L449 7177 .LVL483: 7178 .L460: 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7179 .loc 1 3277 14 view .LVU2519 7180 012c 0220 movs r0, #2 7181 .LVL484: 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7182 .loc 1 3277 14 view .LVU2520 7183 012e ADE7 b .L449 7184 .LVL485: 7185 .L461: 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7186 .loc 1 3281 5 discriminator 1 view .LVU2521 7187 0130 0220 movs r0, #2 7188 .LVL486: 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7189 .loc 1 3281 5 discriminator 1 view .LVU2522 7190 0132 ABE7 b .L449 7191 .LVL487: 7192 .L462: 3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7193 .loc 1 3327 18 view .LVU2523 7194 0134 0120 movs r0, #1 7195 0136 A9E7 b .L449 7196 .L463: 3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7197 .loc 1 3346 18 view .LVU2524 7198 0138 0120 movs r0, #1 7199 013a A7E7 b .L449 7200 .cfi_endproc 7201 .LFE351: 7203 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 7204 .align 1 7205 .global HAL_I2C_Master_Seq_Transmit_IT 7206 .syntax unified 7207 .thumb 7208 .thumb_func 7210 HAL_I2C_Master_Seq_Transmit_IT: 7211 .LVL488: 7212 .LFB352: 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7213 .loc 1 3391 1 is_stmt 1 view -0 7214 .cfi_startproc 7215 @ args = 4, pretend = 0, frame = 0 7216 @ frame_needed = 0, uses_anonymous_args = 0 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7217 .loc 1 3391 1 is_stmt 0 view .LVU2526 ARM GAS /tmp/ccDmmuIk.s page 300 7218 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7219 .LCFI86: 7220 .cfi_def_cfa_offset 24 7221 .cfi_offset 4, -24 7222 .cfi_offset 5, -20 7223 .cfi_offset 6, -16 7224 .cfi_offset 7, -12 7225 .cfi_offset 8, -8 7226 .cfi_offset 14, -4 7227 0004 82B0 sub sp, sp, #8 7228 .LCFI87: 7229 .cfi_def_cfa_offset 32 7230 0006 0446 mov r4, r0 7231 0008 089E ldr r6, [sp, #32] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7232 .loc 1 3392 3 is_stmt 1 view .LVU2527 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7233 .loc 1 3393 3 view .LVU2528 7234 .LVL489: 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7235 .loc 1 3394 3 view .LVU2529 3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7236 .loc 1 3397 3 view .LVU2530 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7237 .loc 1 3399 3 view .LVU2531 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7238 .loc 1 3399 11 is_stmt 0 view .LVU2532 7239 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7240 .LVL490: 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7241 .loc 1 3399 6 view .LVU2533 7242 000e 2028 cmp r0, #32 7243 0010 71D1 bne .L479 7244 0012 0D46 mov r5, r1 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7245 .loc 1 3402 5 is_stmt 1 view .LVU2534 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7246 .loc 1 3402 5 view .LVU2535 7247 0014 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7248 .LVL491: 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7249 .loc 1 3402 5 is_stmt 0 view .LVU2536 7250 0018 0129 cmp r1, #1 7251 001a 6ED0 beq .L480 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7252 .loc 1 3402 5 is_stmt 1 discriminator 2 view .LVU2537 7253 001c 0121 movs r1, #1 7254 001e 84F84010 strb r1, [r4, #64] 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7255 .loc 1 3402 5 view .LVU2538 3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7256 .loc 1 3404 5 view .LVU2539 3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7257 .loc 1 3404 21 is_stmt 0 view .LVU2540 7258 0022 2121 movs r1, #33 7259 0024 84F84110 strb r1, [r4, #65] 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccDmmuIk.s page 301 7260 .loc 1 3405 5 is_stmt 1 view .LVU2541 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7261 .loc 1 3405 21 is_stmt 0 view .LVU2542 7262 0028 1021 movs r1, #16 7263 002a 84F84210 strb r1, [r4, #66] 3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7264 .loc 1 3406 5 is_stmt 1 view .LVU2543 3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7265 .loc 1 3406 21 is_stmt 0 view .LVU2544 7266 002e 0021 movs r1, #0 7267 0030 6164 str r1, [r4, #68] 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7268 .loc 1 3409 5 is_stmt 1 view .LVU2545 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7269 .loc 1 3409 23 is_stmt 0 view .LVU2546 7270 0032 6262 str r2, [r4, #36] 3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7271 .loc 1 3410 5 is_stmt 1 view .LVU2547 3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7272 .loc 1 3410 23 is_stmt 0 view .LVU2548 7273 0034 6385 strh r3, [r4, #42] @ movhi 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7274 .loc 1 3411 5 is_stmt 1 view .LVU2549 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7275 .loc 1 3411 23 is_stmt 0 view .LVU2550 7276 0036 E662 str r6, [r4, #44] 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7277 .loc 1 3412 5 is_stmt 1 view .LVU2551 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7278 .loc 1 3412 23 is_stmt 0 view .LVU2552 7279 0038 314B ldr r3, .L486 7280 .LVL492: 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7281 .loc 1 3412 23 view .LVU2553 7282 003a 6363 str r3, [r4, #52] 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7283 .loc 1 3415 5 is_stmt 1 view .LVU2554 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7284 .loc 1 3415 13 is_stmt 0 view .LVU2555 7285 003c 638D ldrh r3, [r4, #42] 7286 003e 9BB2 uxth r3, r3 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7287 .loc 1 3415 8 view .LVU2556 7288 0040 FF2B cmp r3, #255 7289 0042 0CD9 bls .L470 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7290 .loc 1 3417 7 is_stmt 1 view .LVU2557 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7291 .loc 1 3417 22 is_stmt 0 view .LVU2558 7292 0044 FF23 movs r3, #255 7293 0046 2385 strh r3, [r4, #40] @ movhi 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7294 .loc 1 3418 7 is_stmt 1 view .LVU2559 7295 .LVL493: 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7296 .loc 1 3418 16 is_stmt 0 view .LVU2560 7297 0048 4FF08077 mov r7, #16777216 ARM GAS /tmp/ccDmmuIk.s page 302 7298 .LVL494: 7299 .L471: 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7300 .loc 1 3426 5 is_stmt 1 view .LVU2561 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7301 .loc 1 3426 14 is_stmt 0 view .LVU2562 7302 004c 238D ldrh r3, [r4, #40] 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7303 .loc 1 3426 8 view .LVU2563 7304 004e DBB1 cbz r3, .L481 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7305 .loc 1 3426 31 discriminator 1 view .LVU2564 7306 0050 4EB1 cbz r6, .L473 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7307 .loc 1 3426 68 discriminator 2 view .LVU2565 7308 0052 B6F1007F cmp r6, #33554432 7309 0056 06D0 beq .L473 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7310 .loc 1 3394 12 view .LVU2566 7311 0058 4FF00008 mov r8, #0 7312 005c 16E0 b .L472 7313 .LVL495: 7314 .L470: 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7315 .loc 1 3422 7 is_stmt 1 view .LVU2567 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7316 .loc 1 3422 28 is_stmt 0 view .LVU2568 7317 005e 638D ldrh r3, [r4, #42] 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7318 .loc 1 3422 22 view .LVU2569 7319 0060 2385 strh r3, [r4, #40] @ movhi 3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7320 .loc 1 3423 7 is_stmt 1 view .LVU2570 3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7321 .loc 1 3423 16 is_stmt 0 view .LVU2571 7322 0062 E76A ldr r7, [r4, #44] 7323 0064 F2E7 b .L471 7324 .LVL496: 7325 .L473: 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7326 .loc 1 3431 7 is_stmt 1 view .LVU2572 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7327 .loc 1 3431 11 is_stmt 0 view .LVU2573 7328 0066 2368 ldr r3, [r4] 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7329 .loc 1 3431 30 view .LVU2574 7330 0068 1278 ldrb r2, [r2] @ zero_extendqisi2 7331 .LVL497: 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7332 .loc 1 3431 28 view .LVU2575 7333 006a 9A62 str r2, [r3, #40] 7334 .LVL498: 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7335 .loc 1 3434 7 is_stmt 1 view .LVU2576 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7336 .loc 1 3434 11 is_stmt 0 view .LVU2577 7337 006c 636A ldr r3, [r4, #36] ARM GAS /tmp/ccDmmuIk.s page 303 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7338 .loc 1 3434 21 view .LVU2578 7339 006e 0133 adds r3, r3, #1 7340 0070 6362 str r3, [r4, #36] 3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 7341 .loc 1 3436 7 is_stmt 1 view .LVU2579 3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 7342 .loc 1 3436 24 is_stmt 0 view .LVU2580 7343 0072 B4F82880 ldrh r8, [r4, #40] 7344 .LVL499: 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7345 .loc 1 3437 7 is_stmt 1 view .LVU2581 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7346 .loc 1 3437 11 is_stmt 0 view .LVU2582 7347 0076 638D ldrh r3, [r4, #42] 7348 0078 9BB2 uxth r3, r3 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7349 .loc 1 3437 22 view .LVU2583 7350 007a 013B subs r3, r3, #1 7351 007c 9BB2 uxth r3, r3 7352 007e 6385 strh r3, [r4, #42] @ movhi 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7353 .loc 1 3438 7 is_stmt 1 view .LVU2584 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7354 .loc 1 3438 21 is_stmt 0 view .LVU2585 7355 0080 08F1FF33 add r3, r8, #-1 7356 0084 2385 strh r3, [r4, #40] @ movhi 7357 0086 01E0 b .L472 7358 .LVL500: 7359 .L481: 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7360 .loc 1 3394 12 view .LVU2586 7361 0088 4FF00008 mov r8, #0 7362 .LVL501: 7363 .L472: 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7364 .loc 1 3444 5 is_stmt 1 view .LVU2587 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7365 .loc 1 3444 14 is_stmt 0 view .LVU2588 7366 008c 236B ldr r3, [r4, #48] 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7367 .loc 1 3444 8 view .LVU2589 7368 008e 112B cmp r3, #17 7369 0090 06D1 bne .L474 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7370 .loc 1 3445 10 view .LVU2590 7371 0092 AA2E cmp r6, #170 7372 0094 04D0 beq .L474 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7373 .loc 1 3445 10 discriminator 2 view .LVU2591 7374 0096 B6F52A4F cmp r6, #43520 7375 009a 01D0 beq .L474 3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7376 .loc 1 3447 19 view .LVU2592 7377 009c 0023 movs r3, #0 7378 009e 08E0 b .L475 7379 .L474: ARM GAS /tmp/ccDmmuIk.s page 304 3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7380 .loc 1 3452 7 is_stmt 1 view .LVU2593 7381 00a0 2046 mov r0, r4 7382 00a2 FFF7FEFF bl I2C_ConvertOtherXferOptions 7383 .LVL502: 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7384 .loc 1 3455 7 view .LVU2594 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7385 .loc 1 3455 15 is_stmt 0 view .LVU2595 7386 00a6 638D ldrh r3, [r4, #42] 7387 00a8 9BB2 uxth r3, r3 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7388 .loc 1 3455 10 view .LVU2596 7389 00aa FF2B cmp r3, #255 7390 00ac 18D8 bhi .L484 3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7391 .loc 1 3457 9 is_stmt 1 view .LVU2597 3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7392 .loc 1 3457 18 is_stmt 0 view .LVU2598 7393 00ae E76A ldr r7, [r4, #44] 7394 .LVL503: 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7395 .loc 1 3393 12 view .LVU2599 7396 00b0 144B ldr r3, .L486+4 7397 .L475: 7398 .LVL504: 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7399 .loc 1 3462 5 is_stmt 1 view .LVU2600 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7400 .loc 1 3462 8 is_stmt 0 view .LVU2601 7401 00b2 16B1 cbz r6, .L476 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7402 .loc 1 3462 42 discriminator 1 view .LVU2602 7403 00b4 B6F1007F cmp r6, #33554432 7404 00b8 14D1 bne .L477 7405 .L476: 3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7406 .loc 1 3464 7 is_stmt 1 view .LVU2603 7407 00ba 0093 str r3, [sp] 7408 00bc 3B46 mov r3, r7 7409 .LVL505: 3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7410 .loc 1 3464 7 is_stmt 0 view .LVU2604 7411 00be 5FFA88F2 uxtb r2, r8 7412 00c2 2946 mov r1, r5 7413 00c4 2046 mov r0, r4 7414 00c6 FFF7FEFF bl I2C_TransferConfig 7415 .LVL506: 7416 .L478: 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7417 .loc 1 3472 5 is_stmt 1 view .LVU2605 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7418 .loc 1 3472 5 view .LVU2606 7419 00ca 0025 movs r5, #0 7420 .LVL507: 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7421 .loc 1 3472 5 is_stmt 0 view .LVU2607 ARM GAS /tmp/ccDmmuIk.s page 305 7422 00cc 84F84050 strb r5, [r4, #64] 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7423 .loc 1 3472 5 is_stmt 1 view .LVU2608 3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7424 .loc 1 3481 5 view .LVU2609 7425 00d0 0121 movs r1, #1 7426 00d2 2046 mov r0, r4 7427 00d4 FFF7FEFF bl I2C_Enable_IRQ 7428 .LVL508: 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7429 .loc 1 3483 5 view .LVU2610 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7430 .loc 1 3483 12 is_stmt 0 view .LVU2611 7431 00d8 2846 mov r0, r5 7432 .LVL509: 7433 .L469: 3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7434 .loc 1 3489 1 view .LVU2612 7435 00da 02B0 add sp, sp, #8 7436 .LCFI88: 7437 .cfi_remember_state 7438 .cfi_def_cfa_offset 24 7439 @ sp needed 7440 00dc BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7441 .LVL510: 7442 .L484: 7443 .LCFI89: 7444 .cfi_restore_state 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7445 .loc 1 3393 12 view .LVU2613 7446 00e0 084B ldr r3, .L486+4 7447 00e2 E6E7 b .L475 7448 .LVL511: 7449 .L477: 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7450 .loc 1 3468 7 is_stmt 1 view .LVU2614 7451 00e4 0093 str r3, [sp] 7452 00e6 3B46 mov r3, r7 7453 .LVL512: 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7454 .loc 1 3468 7 is_stmt 0 view .LVU2615 7455 00e8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7456 00ec 2946 mov r1, r5 7457 00ee 2046 mov r0, r4 7458 00f0 FFF7FEFF bl I2C_TransferConfig 7459 .LVL513: 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7460 .loc 1 3468 7 view .LVU2616 7461 00f4 E9E7 b .L478 7462 .LVL514: 7463 .L479: 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7464 .loc 1 3487 12 view .LVU2617 7465 00f6 0220 movs r0, #2 7466 00f8 EFE7 b .L469 7467 .LVL515: 7468 .L480: ARM GAS /tmp/ccDmmuIk.s page 306 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7469 .loc 1 3402 5 discriminator 1 view .LVU2618 7470 00fa 0220 movs r0, #2 7471 00fc EDE7 b .L469 7472 .L487: 7473 00fe 00BF .align 2 7474 .L486: 7475 0100 00000000 .word I2C_Master_ISR_IT 7476 0104 00200080 .word -2147475456 7477 .cfi_endproc 7478 .LFE352: 7480 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7481 .align 1 7482 .global HAL_I2C_Master_Seq_Transmit_DMA 7483 .syntax unified 7484 .thumb 7485 .thumb_func 7487 HAL_I2C_Master_Seq_Transmit_DMA: 7488 .LVL516: 7489 .LFB353: 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7490 .loc 1 3505 1 is_stmt 1 view -0 7491 .cfi_startproc 7492 @ args = 4, pretend = 0, frame = 0 7493 @ frame_needed = 0, uses_anonymous_args = 0 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7494 .loc 1 3505 1 is_stmt 0 view .LVU2620 7495 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 7496 .LCFI90: 7497 .cfi_def_cfa_offset 28 7498 .cfi_offset 4, -28 7499 .cfi_offset 5, -24 7500 .cfi_offset 6, -20 7501 .cfi_offset 7, -16 7502 .cfi_offset 8, -12 7503 .cfi_offset 9, -8 7504 .cfi_offset 14, -4 7505 0004 83B0 sub sp, sp, #12 7506 .LCFI91: 7507 .cfi_def_cfa_offset 40 7508 0006 0446 mov r4, r0 7509 0008 0A9E ldr r6, [sp, #40] 3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7510 .loc 1 3506 3 is_stmt 1 view .LVU2621 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7511 .loc 1 3507 3 view .LVU2622 7512 .LVL517: 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7513 .loc 1 3508 3 view .LVU2623 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7514 .loc 1 3509 3 view .LVU2624 3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7515 .loc 1 3512 3 view .LVU2625 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7516 .loc 1 3514 3 view .LVU2626 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7517 .loc 1 3514 11 is_stmt 0 view .LVU2627 ARM GAS /tmp/ccDmmuIk.s page 307 7518 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7519 .LVL518: 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7520 .loc 1 3514 6 view .LVU2628 7521 000e 2028 cmp r0, #32 7522 0010 40F0D480 bne .L507 7523 0014 0D46 mov r5, r1 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7524 .loc 1 3517 5 is_stmt 1 view .LVU2629 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7525 .loc 1 3517 5 view .LVU2630 7526 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7527 .LVL519: 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7528 .loc 1 3517 5 is_stmt 0 view .LVU2631 7529 001a 0129 cmp r1, #1 7530 001c 00F0D280 beq .L508 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7531 .loc 1 3517 5 is_stmt 1 discriminator 2 view .LVU2632 7532 0020 0121 movs r1, #1 7533 0022 84F84010 strb r1, [r4, #64] 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7534 .loc 1 3517 5 view .LVU2633 3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7535 .loc 1 3519 5 view .LVU2634 3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7536 .loc 1 3519 21 is_stmt 0 view .LVU2635 7537 0026 2121 movs r1, #33 7538 0028 84F84110 strb r1, [r4, #65] 3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7539 .loc 1 3520 5 is_stmt 1 view .LVU2636 3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7540 .loc 1 3520 21 is_stmt 0 view .LVU2637 7541 002c 1021 movs r1, #16 7542 002e 84F84210 strb r1, [r4, #66] 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7543 .loc 1 3521 5 is_stmt 1 view .LVU2638 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7544 .loc 1 3521 21 is_stmt 0 view .LVU2639 7545 0032 0021 movs r1, #0 7546 0034 6164 str r1, [r4, #68] 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7547 .loc 1 3524 5 is_stmt 1 view .LVU2640 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7548 .loc 1 3524 23 is_stmt 0 view .LVU2641 7549 0036 6262 str r2, [r4, #36] 3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7550 .loc 1 3525 5 is_stmt 1 view .LVU2642 3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7551 .loc 1 3525 23 is_stmt 0 view .LVU2643 7552 0038 6385 strh r3, [r4, #42] @ movhi 3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7553 .loc 1 3526 5 is_stmt 1 view .LVU2644 3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7554 .loc 1 3526 23 is_stmt 0 view .LVU2645 7555 003a E662 str r6, [r4, #44] 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 308 7556 .loc 1 3527 5 is_stmt 1 view .LVU2646 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7557 .loc 1 3527 23 is_stmt 0 view .LVU2647 7558 003c 624B ldr r3, .L515 7559 .LVL520: 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7560 .loc 1 3527 23 view .LVU2648 7561 003e 6363 str r3, [r4, #52] 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7562 .loc 1 3530 5 is_stmt 1 view .LVU2649 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7563 .loc 1 3530 13 is_stmt 0 view .LVU2650 7564 0040 638D ldrh r3, [r4, #42] 7565 0042 9BB2 uxth r3, r3 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7566 .loc 1 3530 8 view .LVU2651 7567 0044 FF2B cmp r3, #255 7568 0046 0CD9 bls .L490 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7569 .loc 1 3532 7 is_stmt 1 view .LVU2652 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7570 .loc 1 3532 22 is_stmt 0 view .LVU2653 7571 0048 FF23 movs r3, #255 7572 004a 2385 strh r3, [r4, #40] @ movhi 3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7573 .loc 1 3533 7 is_stmt 1 view .LVU2654 7574 .LVL521: 3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7575 .loc 1 3533 16 is_stmt 0 view .LVU2655 7576 004c 4FF08077 mov r7, #16777216 7577 .LVL522: 7578 .L491: 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7579 .loc 1 3541 5 is_stmt 1 view .LVU2656 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7580 .loc 1 3541 14 is_stmt 0 view .LVU2657 7581 0050 238D ldrh r3, [r4, #40] 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7582 .loc 1 3541 8 view .LVU2658 7583 0052 DBB1 cbz r3, .L509 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7584 .loc 1 3541 31 discriminator 1 view .LVU2659 7585 0054 4EB1 cbz r6, .L493 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7586 .loc 1 3541 68 discriminator 2 view .LVU2660 7587 0056 B6F1007F cmp r6, #33554432 7588 005a 06D0 beq .L493 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7589 .loc 1 3509 12 view .LVU2661 7590 005c 4FF00008 mov r8, #0 7591 0060 16E0 b .L492 7592 .LVL523: 7593 .L490: 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7594 .loc 1 3537 7 is_stmt 1 view .LVU2662 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7595 .loc 1 3537 28 is_stmt 0 view .LVU2663 ARM GAS /tmp/ccDmmuIk.s page 309 7596 0062 638D ldrh r3, [r4, #42] 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7597 .loc 1 3537 22 view .LVU2664 7598 0064 2385 strh r3, [r4, #40] @ movhi 3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7599 .loc 1 3538 7 is_stmt 1 view .LVU2665 3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7600 .loc 1 3538 16 is_stmt 0 view .LVU2666 7601 0066 E76A ldr r7, [r4, #44] 7602 0068 F2E7 b .L491 7603 .LVL524: 7604 .L493: 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7605 .loc 1 3546 7 is_stmt 1 view .LVU2667 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7606 .loc 1 3546 11 is_stmt 0 view .LVU2668 7607 006a 2368 ldr r3, [r4] 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7608 .loc 1 3546 30 view .LVU2669 7609 006c 1278 ldrb r2, [r2] @ zero_extendqisi2 7610 .LVL525: 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7611 .loc 1 3546 28 view .LVU2670 7612 006e 9A62 str r2, [r3, #40] 7613 .LVL526: 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7614 .loc 1 3549 7 is_stmt 1 view .LVU2671 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7615 .loc 1 3549 11 is_stmt 0 view .LVU2672 7616 0070 636A ldr r3, [r4, #36] 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7617 .loc 1 3549 21 view .LVU2673 7618 0072 0133 adds r3, r3, #1 7619 0074 6362 str r3, [r4, #36] 3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 7620 .loc 1 3551 7 is_stmt 1 view .LVU2674 3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 7621 .loc 1 3551 24 is_stmt 0 view .LVU2675 7622 0076 B4F82880 ldrh r8, [r4, #40] 7623 .LVL527: 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7624 .loc 1 3552 7 is_stmt 1 view .LVU2676 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7625 .loc 1 3552 11 is_stmt 0 view .LVU2677 7626 007a 638D ldrh r3, [r4, #42] 7627 007c 9BB2 uxth r3, r3 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7628 .loc 1 3552 22 view .LVU2678 7629 007e 013B subs r3, r3, #1 7630 0080 9BB2 uxth r3, r3 7631 0082 6385 strh r3, [r4, #42] @ movhi 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7632 .loc 1 3553 7 is_stmt 1 view .LVU2679 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7633 .loc 1 3553 21 is_stmt 0 view .LVU2680 7634 0084 08F1FF33 add r3, r8, #-1 7635 0088 2385 strh r3, [r4, #40] @ movhi ARM GAS /tmp/ccDmmuIk.s page 310 7636 008a 01E0 b .L492 7637 .LVL528: 7638 .L509: 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7639 .loc 1 3509 12 view .LVU2681 7640 008c 4FF00008 mov r8, #0 7641 .LVL529: 7642 .L492: 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7643 .loc 1 3559 5 is_stmt 1 view .LVU2682 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7644 .loc 1 3559 14 is_stmt 0 view .LVU2683 7645 0090 236B ldr r3, [r4, #48] 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7646 .loc 1 3559 8 view .LVU2684 7647 0092 112B cmp r3, #17 7648 0094 07D1 bne .L494 3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7649 .loc 1 3560 10 view .LVU2685 7650 0096 AA2E cmp r6, #170 7651 0098 05D0 beq .L494 3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7652 .loc 1 3560 10 discriminator 2 view .LVU2686 7653 009a B6F52A4F cmp r6, #43520 7654 009e 02D0 beq .L494 3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7655 .loc 1 3562 19 view .LVU2687 7656 00a0 4FF00009 mov r9, #0 7657 00a4 09E0 b .L495 7658 .L494: 3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7659 .loc 1 3567 7 is_stmt 1 view .LVU2688 7660 00a6 2046 mov r0, r4 7661 00a8 FFF7FEFF bl I2C_ConvertOtherXferOptions 7662 .LVL530: 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7663 .loc 1 3570 7 view .LVU2689 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7664 .loc 1 3570 15 is_stmt 0 view .LVU2690 7665 00ac 638D ldrh r3, [r4, #42] 7666 00ae 9BB2 uxth r3, r3 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7667 .loc 1 3570 10 view .LVU2691 7668 00b0 FF2B cmp r3, #255 7669 00b2 27D8 bhi .L512 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7670 .loc 1 3572 9 is_stmt 1 view .LVU2692 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7671 .loc 1 3572 18 is_stmt 0 view .LVU2693 7672 00b4 E76A ldr r7, [r4, #44] 7673 .LVL531: 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7674 .loc 1 3507 12 view .LVU2694 7675 00b6 DFF82091 ldr r9, .L515+16 7676 .L495: 7677 .LVL532: 3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 311 7678 .loc 1 3576 5 is_stmt 1 view .LVU2695 3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7679 .loc 1 3576 13 is_stmt 0 view .LVU2696 7680 00ba 228D ldrh r2, [r4, #40] 3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7681 .loc 1 3576 8 view .LVU2697 7682 00bc 002A cmp r2, #0 7683 00be 5CD0 beq .L496 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7684 .loc 1 3578 7 is_stmt 1 view .LVU2698 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7685 .loc 1 3578 15 is_stmt 0 view .LVU2699 7686 00c0 A36B ldr r3, [r4, #56] 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7687 .loc 1 3578 10 view .LVU2700 7688 00c2 13B3 cbz r3, .L497 3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7689 .loc 1 3581 9 is_stmt 1 view .LVU2701 3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7690 .loc 1 3581 40 is_stmt 0 view .LVU2702 7691 00c4 414A ldr r2, .L515+4 7692 00c6 DA62 str r2, [r3, #44] 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7693 .loc 1 3584 9 is_stmt 1 view .LVU2703 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7694 .loc 1 3584 13 is_stmt 0 view .LVU2704 7695 00c8 A36B ldr r3, [r4, #56] 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7696 .loc 1 3584 41 view .LVU2705 7697 00ca 414A ldr r2, .L515+8 7698 00cc 5A63 str r2, [r3, #52] 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7699 .loc 1 3587 9 is_stmt 1 view .LVU2706 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7700 .loc 1 3587 13 is_stmt 0 view .LVU2707 7701 00ce A26B ldr r2, [r4, #56] 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7702 .loc 1 3587 44 view .LVU2708 7703 00d0 0023 movs r3, #0 7704 00d2 1363 str r3, [r2, #48] 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7705 .loc 1 3588 9 is_stmt 1 view .LVU2709 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7706 .loc 1 3588 13 is_stmt 0 view .LVU2710 7707 00d4 A26B ldr r2, [r4, #56] 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7708 .loc 1 3588 41 view .LVU2711 7709 00d6 9363 str r3, [r2, #56] 3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7710 .loc 1 3591 9 is_stmt 1 view .LVU2712 3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7711 .loc 1 3592 57 is_stmt 0 view .LVU2713 7712 00d8 2268 ldr r2, [r4] 3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7713 .loc 1 3591 25 view .LVU2714 7714 00da 238D ldrh r3, [r4, #40] 7715 00dc 2832 adds r2, r2, #40 ARM GAS /tmp/ccDmmuIk.s page 312 7716 00de 616A ldr r1, [r4, #36] 7717 00e0 A06B ldr r0, [r4, #56] 7718 00e2 FFF7FEFF bl HAL_DMA_Start_IT 7719 .LVL533: 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7720 .loc 1 3609 7 is_stmt 1 view .LVU2715 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7721 .loc 1 3609 10 is_stmt 0 view .LVU2716 7722 00e6 F0B1 cbz r0, .L498 3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7723 .loc 1 3639 9 is_stmt 1 view .LVU2717 3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7724 .loc 1 3639 25 is_stmt 0 view .LVU2718 7725 00e8 2023 movs r3, #32 7726 00ea 84F84130 strb r3, [r4, #65] 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7727 .loc 1 3640 9 is_stmt 1 view .LVU2719 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7728 .loc 1 3640 25 is_stmt 0 view .LVU2720 7729 00ee 0022 movs r2, #0 7730 00f0 84F84220 strb r2, [r4, #66] 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7731 .loc 1 3643 9 is_stmt 1 view .LVU2721 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7732 .loc 1 3643 13 is_stmt 0 view .LVU2722 7733 00f4 636C ldr r3, [r4, #68] 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7734 .loc 1 3643 25 view .LVU2723 7735 00f6 43F01003 orr r3, r3, #16 7736 00fa 6364 str r3, [r4, #68] 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7737 .loc 1 3646 9 is_stmt 1 view .LVU2724 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7738 .loc 1 3646 9 view .LVU2725 7739 00fc 84F84020 strb r2, [r4, #64] 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7740 .loc 1 3646 9 view .LVU2726 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7741 .loc 1 3648 9 view .LVU2727 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7742 .loc 1 3648 16 is_stmt 0 view .LVU2728 7743 0100 0120 movs r0, #1 7744 .LVL534: 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7745 .loc 1 3648 16 view .LVU2729 7746 0102 5CE0 b .L489 7747 .LVL535: 7748 .L512: 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7749 .loc 1 3507 12 view .LVU2730 7750 0104 DFF8D090 ldr r9, .L515+16 7751 0108 D7E7 b .L495 7752 .LVL536: 7753 .L497: 3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7754 .loc 1 3597 9 is_stmt 1 view .LVU2731 3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccDmmuIk.s page 313 7755 .loc 1 3597 25 is_stmt 0 view .LVU2732 7756 010a 2023 movs r3, #32 7757 010c 84F84130 strb r3, [r4, #65] 3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7758 .loc 1 3598 9 is_stmt 1 view .LVU2733 3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7759 .loc 1 3598 25 is_stmt 0 view .LVU2734 7760 0110 0022 movs r2, #0 7761 0112 84F84220 strb r2, [r4, #66] 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7762 .loc 1 3601 9 is_stmt 1 view .LVU2735 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7763 .loc 1 3601 13 is_stmt 0 view .LVU2736 7764 0116 636C ldr r3, [r4, #68] 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7765 .loc 1 3601 25 view .LVU2737 7766 0118 43F08003 orr r3, r3, #128 7767 011c 6364 str r3, [r4, #68] 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7768 .loc 1 3604 9 is_stmt 1 view .LVU2738 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7769 .loc 1 3604 9 view .LVU2739 7770 011e 84F84020 strb r2, [r4, #64] 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7771 .loc 1 3604 9 view .LVU2740 3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7772 .loc 1 3606 9 view .LVU2741 3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7773 .loc 1 3606 16 is_stmt 0 view .LVU2742 7774 0122 0120 movs r0, #1 7775 0124 4BE0 b .L489 7776 .LVL537: 7777 .L498: 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7778 .loc 1 3612 9 is_stmt 1 view .LVU2743 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7779 .loc 1 3612 12 is_stmt 0 view .LVU2744 7780 0126 16B1 cbz r6, .L500 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7781 .loc 1 3612 46 discriminator 1 view .LVU2745 7782 0128 B6F1007F cmp r6, #33554432 7783 012c 1BD1 bne .L501 7784 .L500: 3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7785 .loc 1 3614 11 is_stmt 1 view .LVU2746 7786 012e CDF80090 str r9, [sp] 7787 0132 3B46 mov r3, r7 7788 0134 5FFA88F2 uxtb r2, r8 7789 0138 2946 mov r1, r5 7790 013a 2046 mov r0, r4 7791 .LVL538: 3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7792 .loc 1 3614 11 is_stmt 0 view .LVU2747 7793 013c FFF7FEFF bl I2C_TransferConfig 7794 .LVL539: 7795 .L502: 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 314 7796 .loc 1 3622 9 is_stmt 1 view .LVU2748 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7797 .loc 1 3622 13 is_stmt 0 view .LVU2749 7798 0140 638D ldrh r3, [r4, #42] 7799 0142 9BB2 uxth r3, r3 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7800 .loc 1 3622 32 view .LVU2750 7801 0144 228D ldrh r2, [r4, #40] 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7802 .loc 1 3622 25 view .LVU2751 7803 0146 9B1A subs r3, r3, r2 7804 0148 9BB2 uxth r3, r3 7805 014a 6385 strh r3, [r4, #42] @ movhi 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7806 .loc 1 3625 9 is_stmt 1 view .LVU2752 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7807 .loc 1 3625 9 view .LVU2753 7808 014c 0023 movs r3, #0 7809 014e 84F84030 strb r3, [r4, #64] 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7810 .loc 1 3625 9 view .LVU2754 3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7811 .loc 1 3631 9 view .LVU2755 7812 0152 1021 movs r1, #16 7813 0154 2046 mov r0, r4 7814 0156 FFF7FEFF bl I2C_Enable_IRQ 7815 .LVL540: 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7816 .loc 1 3634 9 view .LVU2756 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7817 .loc 1 3634 13 is_stmt 0 view .LVU2757 7818 015a 2268 ldr r2, [r4] 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7819 .loc 1 3634 23 view .LVU2758 7820 015c 1368 ldr r3, [r2] 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7821 .loc 1 3634 29 view .LVU2759 7822 015e 43F48043 orr r3, r3, #16384 7823 0162 1360 str r3, [r2] 7824 0164 1FE0 b .L503 7825 .LVL541: 7826 .L501: 3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7827 .loc 1 3618 11 is_stmt 1 view .LVU2760 7828 0166 CDF80090 str r9, [sp] 7829 016a 3B46 mov r3, r7 7830 016c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7831 0170 2946 mov r1, r5 7832 0172 2046 mov r0, r4 7833 .LVL542: 3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7834 .loc 1 3618 11 is_stmt 0 view .LVU2761 7835 0174 FFF7FEFF bl I2C_TransferConfig 7836 .LVL543: 7837 0178 E2E7 b .L502 7838 .LVL544: 7839 .L496: ARM GAS /tmp/ccDmmuIk.s page 315 3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7840 .loc 1 3654 7 is_stmt 1 view .LVU2762 3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7841 .loc 1 3654 21 is_stmt 0 view .LVU2763 7842 017a 164B ldr r3, .L515+12 7843 017c 6363 str r3, [r4, #52] 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7844 .loc 1 3658 7 is_stmt 1 view .LVU2764 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7845 .loc 1 3658 10 is_stmt 0 view .LVU2765 7846 017e 16B1 cbz r6, .L504 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7847 .loc 1 3658 44 discriminator 1 view .LVU2766 7848 0180 B6F1007F cmp r6, #33554432 7849 0184 11D1 bne .L505 7850 .L504: 3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7851 .loc 1 3660 9 is_stmt 1 view .LVU2767 7852 0186 CDF80090 str r9, [sp] 7853 018a 3B46 mov r3, r7 7854 018c 5FFA88F2 uxtb r2, r8 7855 0190 2946 mov r1, r5 7856 0192 2046 mov r0, r4 7857 0194 FFF7FEFF bl I2C_TransferConfig 7858 .LVL545: 7859 .L506: 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7860 .loc 1 3668 7 view .LVU2768 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7861 .loc 1 3668 7 view .LVU2769 7862 0198 0023 movs r3, #0 7863 019a 84F84030 strb r3, [r4, #64] 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7864 .loc 1 3668 7 view .LVU2770 3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7865 .loc 1 3677 7 view .LVU2771 7866 019e 0121 movs r1, #1 7867 01a0 2046 mov r0, r4 7868 01a2 FFF7FEFF bl I2C_Enable_IRQ 7869 .LVL546: 7870 .L503: 3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7871 .loc 1 3680 5 view .LVU2772 3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7872 .loc 1 3680 12 is_stmt 0 view .LVU2773 7873 01a6 0020 movs r0, #0 7874 01a8 09E0 b .L489 7875 .L505: 3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7876 .loc 1 3664 9 is_stmt 1 view .LVU2774 7877 01aa CDF80090 str r9, [sp] 7878 01ae 3B46 mov r3, r7 7879 01b0 D2B2 uxtb r2, r2 7880 01b2 2946 mov r1, r5 7881 01b4 2046 mov r0, r4 7882 01b6 FFF7FEFF bl I2C_TransferConfig 7883 .LVL547: ARM GAS /tmp/ccDmmuIk.s page 316 7884 01ba EDE7 b .L506 7885 .LVL548: 7886 .L507: 3684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7887 .loc 1 3684 12 is_stmt 0 view .LVU2775 7888 01bc 0220 movs r0, #2 7889 .LVL549: 7890 .L489: 3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7891 .loc 1 3686 1 view .LVU2776 7892 01be 03B0 add sp, sp, #12 7893 .LCFI92: 7894 .cfi_remember_state 7895 .cfi_def_cfa_offset 28 7896 @ sp needed 7897 01c0 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7898 .LVL550: 7899 .L508: 7900 .LCFI93: 7901 .cfi_restore_state 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7902 .loc 1 3517 5 discriminator 1 view .LVU2777 7903 01c4 0220 movs r0, #2 7904 01c6 FAE7 b .L489 7905 .L516: 7906 .align 2 7907 .L515: 7908 01c8 00000000 .word I2C_Master_ISR_DMA 7909 01cc 00000000 .word I2C_DMAMasterTransmitCplt 7910 01d0 00000000 .word I2C_DMAError 7911 01d4 00000000 .word I2C_Master_ISR_IT 7912 01d8 00200080 .word -2147475456 7913 .cfi_endproc 7914 .LFE353: 7916 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7917 .align 1 7918 .global HAL_I2C_Master_Seq_Receive_IT 7919 .syntax unified 7920 .thumb 7921 .thumb_func 7923 HAL_I2C_Master_Seq_Receive_IT: 7924 .LVL551: 7925 .LFB354: 3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7926 .loc 1 3702 1 is_stmt 1 view -0 7927 .cfi_startproc 7928 @ args = 4, pretend = 0, frame = 0 7929 @ frame_needed = 0, uses_anonymous_args = 0 3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7930 .loc 1 3702 1 is_stmt 0 view .LVU2779 7931 0000 70B5 push {r4, r5, r6, lr} 7932 .LCFI94: 7933 .cfi_def_cfa_offset 16 7934 .cfi_offset 4, -16 7935 .cfi_offset 5, -12 7936 .cfi_offset 6, -8 7937 .cfi_offset 14, -4 ARM GAS /tmp/ccDmmuIk.s page 317 7938 0002 82B0 sub sp, sp, #8 7939 .LCFI95: 7940 .cfi_def_cfa_offset 24 7941 0004 0D46 mov r5, r1 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7942 .loc 1 3703 3 is_stmt 1 view .LVU2780 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7943 .loc 1 3704 3 view .LVU2781 7944 .LVL552: 3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7945 .loc 1 3707 3 view .LVU2782 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7946 .loc 1 3709 3 view .LVU2783 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7947 .loc 1 3709 11 is_stmt 0 view .LVU2784 7948 0006 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 7949 .LVL553: 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7950 .loc 1 3709 6 view .LVU2785 7951 000a 2029 cmp r1, #32 7952 000c 49D1 bne .L523 7953 000e 0446 mov r4, r0 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7954 .loc 1 3712 5 is_stmt 1 view .LVU2786 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7955 .loc 1 3712 5 view .LVU2787 7956 0010 90F84010 ldrb r1, [r0, #64] @ zero_extendqisi2 7957 0014 0129 cmp r1, #1 7958 0016 46D0 beq .L524 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7959 .loc 1 3712 5 discriminator 2 view .LVU2788 7960 0018 0121 movs r1, #1 7961 001a 80F84010 strb r1, [r0, #64] 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7962 .loc 1 3712 5 view .LVU2789 3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7963 .loc 1 3714 5 view .LVU2790 3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7964 .loc 1 3714 21 is_stmt 0 view .LVU2791 7965 001e 2221 movs r1, #34 7966 0020 80F84110 strb r1, [r0, #65] 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7967 .loc 1 3715 5 is_stmt 1 view .LVU2792 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7968 .loc 1 3715 21 is_stmt 0 view .LVU2793 7969 0024 1021 movs r1, #16 7970 0026 80F84210 strb r1, [r0, #66] 3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7971 .loc 1 3716 5 is_stmt 1 view .LVU2794 3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7972 .loc 1 3716 21 is_stmt 0 view .LVU2795 7973 002a 0021 movs r1, #0 7974 002c 4164 str r1, [r0, #68] 3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7975 .loc 1 3719 5 is_stmt 1 view .LVU2796 3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7976 .loc 1 3719 23 is_stmt 0 view .LVU2797 ARM GAS /tmp/ccDmmuIk.s page 318 7977 002e 4262 str r2, [r0, #36] 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7978 .loc 1 3720 5 is_stmt 1 view .LVU2798 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7979 .loc 1 3720 23 is_stmt 0 view .LVU2799 7980 0030 4385 strh r3, [r0, #42] @ movhi 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7981 .loc 1 3721 5 is_stmt 1 view .LVU2800 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7982 .loc 1 3721 23 is_stmt 0 view .LVU2801 7983 0032 069B ldr r3, [sp, #24] 7984 .LVL554: 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7985 .loc 1 3721 23 view .LVU2802 7986 0034 C362 str r3, [r0, #44] 7987 .LVL555: 3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7988 .loc 1 3722 5 is_stmt 1 view .LVU2803 3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7989 .loc 1 3722 23 is_stmt 0 view .LVU2804 7990 0036 1D4B ldr r3, .L528 7991 0038 4363 str r3, [r0, #52] 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7992 .loc 1 3725 5 is_stmt 1 view .LVU2805 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7993 .loc 1 3725 13 is_stmt 0 view .LVU2806 7994 003a 438D ldrh r3, [r0, #42] 7995 003c 9BB2 uxth r3, r3 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7996 .loc 1 3725 8 view .LVU2807 7997 003e FF2B cmp r3, #255 7998 0040 0ED9 bls .L519 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7999 .loc 1 3727 7 is_stmt 1 view .LVU2808 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8000 .loc 1 3727 22 is_stmt 0 view .LVU2809 8001 0042 FF23 movs r3, #255 8002 0044 0385 strh r3, [r0, #40] @ movhi 3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8003 .loc 1 3728 7 is_stmt 1 view .LVU2810 8004 .LVL556: 3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8005 .loc 1 3728 16 is_stmt 0 view .LVU2811 8006 0046 4FF08076 mov r6, #16777216 8007 .LVL557: 8008 .L520: 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8009 .loc 1 3739 5 is_stmt 1 view .LVU2812 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8010 .loc 1 3739 14 is_stmt 0 view .LVU2813 8011 004a 236B ldr r3, [r4, #48] 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8012 .loc 1 3739 8 view .LVU2814 8013 004c 122B cmp r3, #18 8014 004e 0BD1 bne .L521 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8015 .loc 1 3740 10 view .LVU2815 ARM GAS /tmp/ccDmmuIk.s page 319 8016 0050 069B ldr r3, [sp, #24] 8017 0052 AA2B cmp r3, #170 8018 0054 08D0 beq .L521 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8019 .loc 1 3740 10 discriminator 2 view .LVU2816 8020 0056 B3F52A4F cmp r3, #43520 8021 005a 05D0 beq .L521 3742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8022 .loc 1 3742 19 view .LVU2817 8023 005c 0023 movs r3, #0 8024 005e 0CE0 b .L522 8025 .LVL558: 8026 .L519: 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8027 .loc 1 3732 7 is_stmt 1 view .LVU2818 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8028 .loc 1 3732 28 is_stmt 0 view .LVU2819 8029 0060 438D ldrh r3, [r0, #42] 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8030 .loc 1 3732 22 view .LVU2820 8031 0062 0385 strh r3, [r0, #40] @ movhi 3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8032 .loc 1 3733 7 is_stmt 1 view .LVU2821 3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8033 .loc 1 3733 16 is_stmt 0 view .LVU2822 8034 0064 C66A ldr r6, [r0, #44] 8035 0066 F0E7 b .L520 8036 .LVL559: 8037 .L521: 3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8038 .loc 1 3747 7 is_stmt 1 view .LVU2823 8039 0068 2046 mov r0, r4 8040 .LVL560: 3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8041 .loc 1 3747 7 is_stmt 0 view .LVU2824 8042 006a FFF7FEFF bl I2C_ConvertOtherXferOptions 8043 .LVL561: 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8044 .loc 1 3750 7 is_stmt 1 view .LVU2825 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8045 .loc 1 3750 15 is_stmt 0 view .LVU2826 8046 006e 638D ldrh r3, [r4, #42] 8047 0070 9BB2 uxth r3, r3 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8048 .loc 1 3750 10 view .LVU2827 8049 0072 FF2B cmp r3, #255 8050 0074 13D8 bhi .L526 3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8051 .loc 1 3752 9 is_stmt 1 view .LVU2828 3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8052 .loc 1 3752 18 is_stmt 0 view .LVU2829 8053 0076 E66A ldr r6, [r4, #44] 8054 .LVL562: 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8055 .loc 1 3704 12 view .LVU2830 8056 0078 0D4B ldr r3, .L528+4 8057 .L522: ARM GAS /tmp/ccDmmuIk.s page 320 8058 .LVL563: 3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8059 .loc 1 3757 5 is_stmt 1 view .LVU2831 8060 007a 0093 str r3, [sp] 8061 007c 3346 mov r3, r6 8062 .LVL564: 3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8063 .loc 1 3757 5 is_stmt 0 view .LVU2832 8064 007e 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8065 0082 2946 mov r1, r5 8066 0084 2046 mov r0, r4 8067 0086 FFF7FEFF bl I2C_TransferConfig 8068 .LVL565: 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8069 .loc 1 3760 5 is_stmt 1 view .LVU2833 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8070 .loc 1 3760 5 view .LVU2834 8071 008a 0025 movs r5, #0 8072 .LVL566: 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8073 .loc 1 3760 5 is_stmt 0 view .LVU2835 8074 008c 84F84050 strb r5, [r4, #64] 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8075 .loc 1 3760 5 is_stmt 1 view .LVU2836 3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8076 .loc 1 3765 5 view .LVU2837 8077 0090 0221 movs r1, #2 8078 0092 2046 mov r0, r4 8079 0094 FFF7FEFF bl I2C_Enable_IRQ 8080 .LVL567: 3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8081 .loc 1 3767 5 view .LVU2838 3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8082 .loc 1 3767 12 is_stmt 0 view .LVU2839 8083 0098 2846 mov r0, r5 8084 .LVL568: 8085 .L518: 3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8086 .loc 1 3773 1 view .LVU2840 8087 009a 02B0 add sp, sp, #8 8088 .LCFI96: 8089 .cfi_remember_state 8090 .cfi_def_cfa_offset 16 8091 @ sp needed 8092 009c 70BD pop {r4, r5, r6, pc} 8093 .LVL569: 8094 .L526: 8095 .LCFI97: 8096 .cfi_restore_state 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8097 .loc 1 3704 12 view .LVU2841 8098 009e 044B ldr r3, .L528+4 8099 00a0 EBE7 b .L522 8100 .LVL570: 8101 .L523: 3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8102 .loc 1 3771 12 view .LVU2842 ARM GAS /tmp/ccDmmuIk.s page 321 8103 00a2 0220 movs r0, #2 8104 .LVL571: 3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8105 .loc 1 3771 12 view .LVU2843 8106 00a4 F9E7 b .L518 8107 .LVL572: 8108 .L524: 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8109 .loc 1 3712 5 discriminator 1 view .LVU2844 8110 00a6 0220 movs r0, #2 8111 .LVL573: 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8112 .loc 1 3712 5 discriminator 1 view .LVU2845 8113 00a8 F7E7 b .L518 8114 .L529: 8115 00aa 00BF .align 2 8116 .L528: 8117 00ac 00000000 .word I2C_Master_ISR_IT 8118 00b0 00240080 .word -2147474432 8119 .cfi_endproc 8120 .LFE354: 8122 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8123 .align 1 8124 .global HAL_I2C_Master_Seq_Receive_DMA 8125 .syntax unified 8126 .thumb 8127 .thumb_func 8129 HAL_I2C_Master_Seq_Receive_DMA: 8130 .LVL574: 8131 .LFB355: 3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 8132 .loc 1 3789 1 is_stmt 1 view -0 8133 .cfi_startproc 8134 @ args = 4, pretend = 0, frame = 0 8135 @ frame_needed = 0, uses_anonymous_args = 0 3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 8136 .loc 1 3789 1 is_stmt 0 view .LVU2847 8137 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 8138 .LCFI98: 8139 .cfi_def_cfa_offset 24 8140 .cfi_offset 4, -24 8141 .cfi_offset 5, -20 8142 .cfi_offset 6, -16 8143 .cfi_offset 7, -12 8144 .cfi_offset 8, -8 8145 .cfi_offset 14, -4 8146 0004 82B0 sub sp, sp, #8 8147 .LCFI99: 8148 .cfi_def_cfa_offset 32 8149 0006 0E46 mov r6, r1 8150 0008 1546 mov r5, r2 8151 000a 089A ldr r2, [sp, #32] 8152 .LVL575: 3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8153 .loc 1 3790 3 is_stmt 1 view .LVU2848 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8154 .loc 1 3791 3 view .LVU2849 ARM GAS /tmp/ccDmmuIk.s page 322 3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8155 .loc 1 3792 3 view .LVU2850 3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8156 .loc 1 3795 3 view .LVU2851 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8157 .loc 1 3797 3 view .LVU2852 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8158 .loc 1 3797 11 is_stmt 0 view .LVU2853 8159 000c 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 8160 .LVL576: 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8161 .loc 1 3797 6 view .LVU2854 8162 0010 2029 cmp r1, #32 8163 0012 40F09D80 bne .L541 8164 0016 0446 mov r4, r0 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8165 .loc 1 3800 5 is_stmt 1 view .LVU2855 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8166 .loc 1 3800 5 view .LVU2856 8167 0018 90F84010 ldrb r1, [r0, #64] @ zero_extendqisi2 8168 001c 0129 cmp r1, #1 8169 001e 00F09B80 beq .L542 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8170 .loc 1 3800 5 discriminator 2 view .LVU2857 8171 0022 0121 movs r1, #1 8172 0024 80F84010 strb r1, [r0, #64] 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8173 .loc 1 3800 5 view .LVU2858 3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8174 .loc 1 3802 5 view .LVU2859 3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8175 .loc 1 3802 21 is_stmt 0 view .LVU2860 8176 0028 2221 movs r1, #34 8177 002a 80F84110 strb r1, [r0, #65] 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8178 .loc 1 3803 5 is_stmt 1 view .LVU2861 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8179 .loc 1 3803 21 is_stmt 0 view .LVU2862 8180 002e 1021 movs r1, #16 8181 0030 80F84210 strb r1, [r0, #66] 3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8182 .loc 1 3804 5 is_stmt 1 view .LVU2863 3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8183 .loc 1 3804 21 is_stmt 0 view .LVU2864 8184 0034 0021 movs r1, #0 8185 0036 4164 str r1, [r0, #68] 3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8186 .loc 1 3807 5 is_stmt 1 view .LVU2865 3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8187 .loc 1 3807 23 is_stmt 0 view .LVU2866 8188 0038 4562 str r5, [r0, #36] 3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8189 .loc 1 3808 5 is_stmt 1 view .LVU2867 3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8190 .loc 1 3808 23 is_stmt 0 view .LVU2868 8191 003a 4385 strh r3, [r0, #42] @ movhi 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; ARM GAS /tmp/ccDmmuIk.s page 323 8192 .loc 1 3809 5 is_stmt 1 view .LVU2869 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8193 .loc 1 3809 23 is_stmt 0 view .LVU2870 8194 003c C262 str r2, [r0, #44] 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8195 .loc 1 3810 5 is_stmt 1 view .LVU2871 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8196 .loc 1 3810 23 is_stmt 0 view .LVU2872 8197 003e 474B ldr r3, .L548 8198 .LVL577: 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8199 .loc 1 3810 23 view .LVU2873 8200 0040 4363 str r3, [r0, #52] 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8201 .loc 1 3813 5 is_stmt 1 view .LVU2874 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8202 .loc 1 3813 13 is_stmt 0 view .LVU2875 8203 0042 438D ldrh r3, [r0, #42] 8204 0044 9BB2 uxth r3, r3 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8205 .loc 1 3813 8 view .LVU2876 8206 0046 FF2B cmp r3, #255 8207 0048 0ED9 bls .L532 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8208 .loc 1 3815 7 is_stmt 1 view .LVU2877 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8209 .loc 1 3815 22 is_stmt 0 view .LVU2878 8210 004a FF23 movs r3, #255 8211 004c 0385 strh r3, [r0, #40] @ movhi 3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8212 .loc 1 3816 7 is_stmt 1 view .LVU2879 8213 .LVL578: 3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8214 .loc 1 3816 16 is_stmt 0 view .LVU2880 8215 004e 4FF08077 mov r7, #16777216 8216 .LVL579: 8217 .L533: 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8218 .loc 1 3827 5 is_stmt 1 view .LVU2881 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8219 .loc 1 3827 14 is_stmt 0 view .LVU2882 8220 0052 236B ldr r3, [r4, #48] 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8221 .loc 1 3827 8 view .LVU2883 8222 0054 122B cmp r3, #18 8223 0056 0BD1 bne .L534 3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8224 .loc 1 3828 10 view .LVU2884 8225 0058 AA2A cmp r2, #170 8226 005a 09D0 beq .L534 3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8227 .loc 1 3828 10 discriminator 2 view .LVU2885 8228 005c B2F52A4F cmp r2, #43520 8229 0060 06D0 beq .L534 3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8230 .loc 1 3830 19 view .LVU2886 8231 0062 4FF00008 mov r8, #0 ARM GAS /tmp/ccDmmuIk.s page 324 8232 0066 0DE0 b .L535 8233 .LVL580: 8234 .L532: 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8235 .loc 1 3820 7 is_stmt 1 view .LVU2887 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8236 .loc 1 3820 28 is_stmt 0 view .LVU2888 8237 0068 438D ldrh r3, [r0, #42] 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8238 .loc 1 3820 22 view .LVU2889 8239 006a 0385 strh r3, [r0, #40] @ movhi 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8240 .loc 1 3821 7 is_stmt 1 view .LVU2890 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8241 .loc 1 3821 16 is_stmt 0 view .LVU2891 8242 006c C76A ldr r7, [r0, #44] 8243 006e F0E7 b .L533 8244 .LVL581: 8245 .L534: 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8246 .loc 1 3835 7 is_stmt 1 view .LVU2892 8247 0070 2046 mov r0, r4 8248 .LVL582: 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8249 .loc 1 3835 7 is_stmt 0 view .LVU2893 8250 0072 FFF7FEFF bl I2C_ConvertOtherXferOptions 8251 .LVL583: 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8252 .loc 1 3838 7 is_stmt 1 view .LVU2894 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8253 .loc 1 3838 15 is_stmt 0 view .LVU2895 8254 0076 638D ldrh r3, [r4, #42] 8255 0078 9BB2 uxth r3, r3 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8256 .loc 1 3838 10 view .LVU2896 8257 007a FF2B cmp r3, #255 8258 007c 27D8 bhi .L544 3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8259 .loc 1 3840 9 is_stmt 1 view .LVU2897 3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8260 .loc 1 3840 18 is_stmt 0 view .LVU2898 8261 007e E76A ldr r7, [r4, #44] 8262 .LVL584: 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8263 .loc 1 3791 12 view .LVU2899 8264 0080 DFF8E880 ldr r8, .L548+16 8265 .L535: 8266 .LVL585: 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8267 .loc 1 3844 5 is_stmt 1 view .LVU2900 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8268 .loc 1 3844 13 is_stmt 0 view .LVU2901 8269 0084 228D ldrh r2, [r4, #40] 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8270 .loc 1 3844 8 view .LVU2902 8271 0086 002A cmp r2, #0 8272 0088 4ED0 beq .L536 ARM GAS /tmp/ccDmmuIk.s page 325 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8273 .loc 1 3846 7 is_stmt 1 view .LVU2903 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8274 .loc 1 3846 15 is_stmt 0 view .LVU2904 8275 008a E36B ldr r3, [r4, #60] 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8276 .loc 1 3846 10 view .LVU2905 8277 008c 13B3 cbz r3, .L537 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8278 .loc 1 3849 9 is_stmt 1 view .LVU2906 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8279 .loc 1 3849 40 is_stmt 0 view .LVU2907 8280 008e 344A ldr r2, .L548+4 8281 0090 DA62 str r2, [r3, #44] 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8282 .loc 1 3852 9 is_stmt 1 view .LVU2908 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8283 .loc 1 3852 13 is_stmt 0 view .LVU2909 8284 0092 E36B ldr r3, [r4, #60] 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8285 .loc 1 3852 41 view .LVU2910 8286 0094 334A ldr r2, .L548+8 8287 0096 5A63 str r2, [r3, #52] 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8288 .loc 1 3855 9 is_stmt 1 view .LVU2911 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8289 .loc 1 3855 13 is_stmt 0 view .LVU2912 8290 0098 E26B ldr r2, [r4, #60] 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8291 .loc 1 3855 44 view .LVU2913 8292 009a 0023 movs r3, #0 8293 009c 1363 str r3, [r2, #48] 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8294 .loc 1 3856 9 is_stmt 1 view .LVU2914 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8295 .loc 1 3856 13 is_stmt 0 view .LVU2915 8296 009e E26B ldr r2, [r4, #60] 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8297 .loc 1 3856 41 view .LVU2916 8298 00a0 9363 str r3, [r2, #56] 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8299 .loc 1 3859 9 is_stmt 1 view .LVU2917 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8300 .loc 1 3859 71 is_stmt 0 view .LVU2918 8301 00a2 2168 ldr r1, [r4] 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8302 .loc 1 3859 25 view .LVU2919 8303 00a4 238D ldrh r3, [r4, #40] 8304 00a6 2A46 mov r2, r5 8305 00a8 2431 adds r1, r1, #36 8306 00aa E06B ldr r0, [r4, #60] 8307 00ac FFF7FEFF bl HAL_DMA_Start_IT 8308 .LVL586: 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8309 .loc 1 3877 7 is_stmt 1 view .LVU2920 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8310 .loc 1 3877 10 is_stmt 0 view .LVU2921 ARM GAS /tmp/ccDmmuIk.s page 326 8311 00b0 F0B1 cbz r0, .L547 3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8312 .loc 1 3900 9 is_stmt 1 view .LVU2922 3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8313 .loc 1 3900 25 is_stmt 0 view .LVU2923 8314 00b2 2023 movs r3, #32 8315 00b4 84F84130 strb r3, [r4, #65] 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8316 .loc 1 3901 9 is_stmt 1 view .LVU2924 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8317 .loc 1 3901 25 is_stmt 0 view .LVU2925 8318 00b8 0022 movs r2, #0 8319 00ba 84F84220 strb r2, [r4, #66] 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8320 .loc 1 3904 9 is_stmt 1 view .LVU2926 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8321 .loc 1 3904 13 is_stmt 0 view .LVU2927 8322 00be 636C ldr r3, [r4, #68] 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8323 .loc 1 3904 25 view .LVU2928 8324 00c0 43F01003 orr r3, r3, #16 8325 00c4 6364 str r3, [r4, #68] 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8326 .loc 1 3907 9 is_stmt 1 view .LVU2929 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8327 .loc 1 3907 9 view .LVU2930 8328 00c6 84F84020 strb r2, [r4, #64] 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8329 .loc 1 3907 9 view .LVU2931 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8330 .loc 1 3909 9 view .LVU2932 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8331 .loc 1 3909 16 is_stmt 0 view .LVU2933 8332 00ca 0120 movs r0, #1 8333 .LVL587: 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8334 .loc 1 3909 16 view .LVU2934 8335 00cc 41E0 b .L531 8336 .LVL588: 8337 .L544: 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8338 .loc 1 3791 12 view .LVU2935 8339 00ce DFF89C80 ldr r8, .L548+16 8340 00d2 D7E7 b .L535 8341 .LVL589: 8342 .L537: 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8343 .loc 1 3865 9 is_stmt 1 view .LVU2936 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8344 .loc 1 3865 25 is_stmt 0 view .LVU2937 8345 00d4 2023 movs r3, #32 8346 00d6 84F84130 strb r3, [r4, #65] 3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8347 .loc 1 3866 9 is_stmt 1 view .LVU2938 3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8348 .loc 1 3866 25 is_stmt 0 view .LVU2939 8349 00da 0022 movs r2, #0 ARM GAS /tmp/ccDmmuIk.s page 327 8350 00dc 84F84220 strb r2, [r4, #66] 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8351 .loc 1 3869 9 is_stmt 1 view .LVU2940 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8352 .loc 1 3869 13 is_stmt 0 view .LVU2941 8353 00e0 636C ldr r3, [r4, #68] 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8354 .loc 1 3869 25 view .LVU2942 8355 00e2 43F08003 orr r3, r3, #128 8356 00e6 6364 str r3, [r4, #68] 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8357 .loc 1 3872 9 is_stmt 1 view .LVU2943 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8358 .loc 1 3872 9 view .LVU2944 8359 00e8 84F84020 strb r2, [r4, #64] 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8360 .loc 1 3872 9 view .LVU2945 3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8361 .loc 1 3874 9 view .LVU2946 3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8362 .loc 1 3874 16 is_stmt 0 view .LVU2947 8363 00ec 0120 movs r0, #1 8364 00ee 30E0 b .L531 8365 .LVL590: 8366 .L547: 3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8367 .loc 1 3880 9 is_stmt 1 view .LVU2948 8368 00f0 CDF80080 str r8, [sp] 8369 00f4 3B46 mov r3, r7 8370 00f6 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8371 00fa 3146 mov r1, r6 8372 00fc 2046 mov r0, r4 8373 .LVL591: 3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8374 .loc 1 3880 9 is_stmt 0 view .LVU2949 8375 00fe FFF7FEFF bl I2C_TransferConfig 8376 .LVL592: 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8377 .loc 1 3883 9 is_stmt 1 view .LVU2950 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8378 .loc 1 3883 13 is_stmt 0 view .LVU2951 8379 0102 638D ldrh r3, [r4, #42] 8380 0104 9BB2 uxth r3, r3 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8381 .loc 1 3883 32 view .LVU2952 8382 0106 228D ldrh r2, [r4, #40] 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8383 .loc 1 3883 25 view .LVU2953 8384 0108 9B1A subs r3, r3, r2 8385 010a 9BB2 uxth r3, r3 8386 010c 6385 strh r3, [r4, #42] @ movhi 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8387 .loc 1 3886 9 is_stmt 1 view .LVU2954 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8388 .loc 1 3886 9 view .LVU2955 8389 010e 0023 movs r3, #0 8390 0110 84F84030 strb r3, [r4, #64] ARM GAS /tmp/ccDmmuIk.s page 328 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8391 .loc 1 3886 9 view .LVU2956 3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8392 .loc 1 3892 9 view .LVU2957 8393 0114 1021 movs r1, #16 8394 0116 2046 mov r0, r4 8395 0118 FFF7FEFF bl I2C_Enable_IRQ 8396 .LVL593: 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8397 .loc 1 3895 9 view .LVU2958 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8398 .loc 1 3895 13 is_stmt 0 view .LVU2959 8399 011c 2268 ldr r2, [r4] 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8400 .loc 1 3895 23 view .LVU2960 8401 011e 1368 ldr r3, [r2] 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8402 .loc 1 3895 29 view .LVU2961 8403 0120 43F40043 orr r3, r3, #32768 8404 0124 1360 str r3, [r2] 8405 0126 11E0 b .L540 8406 .LVL594: 8407 .L536: 3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8408 .loc 1 3915 7 is_stmt 1 view .LVU2962 3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8409 .loc 1 3915 21 is_stmt 0 view .LVU2963 8410 0128 0F4B ldr r3, .L548+12 8411 012a 6363 str r3, [r4, #52] 3919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8412 .loc 1 3919 7 is_stmt 1 view .LVU2964 8413 012c 0F4B ldr r3, .L548+16 8414 012e 0093 str r3, [sp] 8415 0130 4FF00073 mov r3, #33554432 8416 0134 D2B2 uxtb r2, r2 8417 0136 3146 mov r1, r6 8418 0138 2046 mov r0, r4 8419 013a FFF7FEFF bl I2C_TransferConfig 8420 .LVL595: 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8421 .loc 1 3923 7 view .LVU2965 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8422 .loc 1 3923 7 view .LVU2966 8423 013e 0023 movs r3, #0 8424 0140 84F84030 strb r3, [r4, #64] 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8425 .loc 1 3923 7 view .LVU2967 3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8426 .loc 1 3932 7 view .LVU2968 8427 0144 0221 movs r1, #2 8428 0146 2046 mov r0, r4 8429 0148 FFF7FEFF bl I2C_Enable_IRQ 8430 .LVL596: 8431 .L540: 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8432 .loc 1 3935 5 view .LVU2969 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 329 8433 .loc 1 3935 12 is_stmt 0 view .LVU2970 8434 014c 0020 movs r0, #0 8435 014e 00E0 b .L531 8436 .LVL597: 8437 .L541: 3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8438 .loc 1 3939 12 view .LVU2971 8439 0150 0220 movs r0, #2 8440 .LVL598: 8441 .L531: 3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8442 .loc 1 3941 1 view .LVU2972 8443 0152 02B0 add sp, sp, #8 8444 .LCFI100: 8445 .cfi_remember_state 8446 .cfi_def_cfa_offset 24 8447 @ sp needed 8448 0154 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8449 .LVL599: 8450 .L542: 8451 .LCFI101: 8452 .cfi_restore_state 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8453 .loc 1 3800 5 discriminator 1 view .LVU2973 8454 0158 0220 movs r0, #2 8455 .LVL600: 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8456 .loc 1 3800 5 discriminator 1 view .LVU2974 8457 015a FAE7 b .L531 8458 .L549: 8459 .align 2 8460 .L548: 8461 015c 00000000 .word I2C_Master_ISR_DMA 8462 0160 00000000 .word I2C_DMAMasterReceiveCplt 8463 0164 00000000 .word I2C_DMAError 8464 0168 00000000 .word I2C_Master_ISR_IT 8465 016c 00240080 .word -2147474432 8466 .cfi_endproc 8467 .LFE355: 8469 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8470 .align 1 8471 .global HAL_I2C_Slave_Seq_Transmit_IT 8472 .syntax unified 8473 .thumb 8474 .thumb_func 8476 HAL_I2C_Slave_Seq_Transmit_IT: 8477 .LVL601: 8478 .LFB356: 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8479 .loc 1 3955 1 is_stmt 1 view -0 8480 .cfi_startproc 8481 @ args = 0, pretend = 0, frame = 0 8482 @ frame_needed = 0, uses_anonymous_args = 0 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8483 .loc 1 3955 1 is_stmt 0 view .LVU2976 8484 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8485 .LCFI102: ARM GAS /tmp/ccDmmuIk.s page 330 8486 .cfi_def_cfa_offset 24 8487 .cfi_offset 3, -24 8488 .cfi_offset 4, -20 8489 .cfi_offset 5, -16 8490 .cfi_offset 6, -12 8491 .cfi_offset 7, -8 8492 .cfi_offset 14, -4 8493 0002 0446 mov r4, r0 3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8494 .loc 1 3957 3 is_stmt 1 view .LVU2977 3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8495 .loc 1 3960 3 view .LVU2978 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8496 .loc 1 3962 3 view .LVU2979 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8497 .loc 1 3962 22 is_stmt 0 view .LVU2980 8498 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8499 .LVL602: 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8500 .loc 1 3962 6 view .LVU2981 8501 0008 00F02800 and r0, r0, #40 8502 000c 2828 cmp r0, #40 8503 000e 5DD1 bne .L556 8504 0010 0F46 mov r7, r1 8505 0012 1646 mov r6, r2 8506 0014 1D46 mov r5, r3 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8507 .loc 1 3964 5 is_stmt 1 view .LVU2982 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8508 .loc 1 3964 8 is_stmt 0 view .LVU2983 8509 0016 01B1 cbz r1, .L552 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8510 .loc 1 3964 25 discriminator 1 view .LVU2984 8511 0018 22B9 cbnz r2, .L553 8512 .L552: 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8513 .loc 1 3966 7 is_stmt 1 view .LVU2985 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8514 .loc 1 3966 23 is_stmt 0 view .LVU2986 8515 001a 4FF40073 mov r3, #512 8516 .LVL603: 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8517 .loc 1 3966 23 view .LVU2987 8518 001e 6364 str r3, [r4, #68] 3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8519 .loc 1 3967 7 is_stmt 1 view .LVU2988 3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8520 .loc 1 3967 15 is_stmt 0 view .LVU2989 8521 0020 0120 movs r0, #1 8522 0022 54E0 b .L551 8523 .LVL604: 8524 .L553: 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8525 .loc 1 3971 5 is_stmt 1 view .LVU2990 8526 0024 48F20101 movw r1, #32769 8527 .LVL605: 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 331 8528 .loc 1 3971 5 is_stmt 0 view .LVU2991 8529 0028 2046 mov r0, r4 8530 002a FFF7FEFF bl I2C_Disable_IRQ 8531 .LVL606: 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8532 .loc 1 3974 5 is_stmt 1 view .LVU2992 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8533 .loc 1 3974 5 view .LVU2993 8534 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8535 0032 012B cmp r3, #1 8536 0034 4CD0 beq .L557 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8537 .loc 1 3974 5 discriminator 2 view .LVU2994 8538 0036 0123 movs r3, #1 8539 0038 84F84030 strb r3, [r4, #64] 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8540 .loc 1 3974 5 view .LVU2995 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8541 .loc 1 3978 5 view .LVU2996 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8542 .loc 1 3978 13 is_stmt 0 view .LVU2997 8543 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8544 .loc 1 3978 8 view .LVU2998 8545 0040 2A2B cmp r3, #42 8546 0042 28D0 beq .L559 8547 .L554: 4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8548 .loc 1 4004 5 is_stmt 1 view .LVU2999 4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8549 .loc 1 4004 21 is_stmt 0 view .LVU3000 8550 0044 2923 movs r3, #41 8551 0046 84F84130 strb r3, [r4, #65] 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8552 .loc 1 4005 5 is_stmt 1 view .LVU3001 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8553 .loc 1 4005 21 is_stmt 0 view .LVU3002 8554 004a 2023 movs r3, #32 8555 004c 84F84230 strb r3, [r4, #66] 4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8556 .loc 1 4006 5 is_stmt 1 view .LVU3003 4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8557 .loc 1 4006 21 is_stmt 0 view .LVU3004 8558 0050 0023 movs r3, #0 8559 0052 6364 str r3, [r4, #68] 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8560 .loc 1 4009 5 is_stmt 1 view .LVU3005 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8561 .loc 1 4009 9 is_stmt 0 view .LVU3006 8562 0054 2268 ldr r2, [r4] 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8563 .loc 1 4009 19 view .LVU3007 8564 0056 5368 ldr r3, [r2, #4] 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8565 .loc 1 4009 25 view .LVU3008 8566 0058 23F40043 bic r3, r3, #32768 8567 005c 5360 str r3, [r2, #4] ARM GAS /tmp/ccDmmuIk.s page 332 4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8568 .loc 1 4012 5 is_stmt 1 view .LVU3009 4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8569 .loc 1 4012 23 is_stmt 0 view .LVU3010 8570 005e 6762 str r7, [r4, #36] 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8571 .loc 1 4013 5 is_stmt 1 view .LVU3011 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8572 .loc 1 4013 23 is_stmt 0 view .LVU3012 8573 0060 6685 strh r6, [r4, #42] @ movhi 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8574 .loc 1 4014 5 is_stmt 1 view .LVU3013 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8575 .loc 1 4014 29 is_stmt 0 view .LVU3014 8576 0062 638D ldrh r3, [r4, #42] 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8577 .loc 1 4014 23 view .LVU3015 8578 0064 2385 strh r3, [r4, #40] @ movhi 4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8579 .loc 1 4015 5 is_stmt 1 view .LVU3016 4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8580 .loc 1 4015 23 is_stmt 0 view .LVU3017 8581 0066 E562 str r5, [r4, #44] 4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8582 .loc 1 4016 5 is_stmt 1 view .LVU3018 4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8583 .loc 1 4016 23 is_stmt 0 view .LVU3019 8584 0068 1A4B ldr r3, .L560 8585 006a 6363 str r3, [r4, #52] 4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8586 .loc 1 4018 5 is_stmt 1 view .LVU3020 4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8587 .loc 1 4018 11 is_stmt 0 view .LVU3021 8588 006c 2268 ldr r2, [r4] 8589 006e 9369 ldr r3, [r2, #24] 8590 0070 03F00803 and r3, r3, #8 8591 .LVL607: 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8592 .loc 1 4019 5 is_stmt 1 view .LVU3022 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8593 .loc 1 4019 10 is_stmt 0 view .LVU3023 8594 0074 9169 ldr r1, [r2, #24] 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8595 .loc 1 4019 8 view .LVU3024 8596 0076 11F4803F tst r1, #65536 8597 007a 02D0 beq .L555 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8598 .loc 1 4019 54 discriminator 1 view .LVU3025 8599 007c 0BB1 cbz r3, .L555 4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8600 .loc 1 4023 7 is_stmt 1 view .LVU3026 8601 007e 0823 movs r3, #8 8602 .LVL608: 4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8603 .loc 1 4023 7 is_stmt 0 view .LVU3027 8604 0080 D361 str r3, [r2, #28] 8605 .L555: ARM GAS /tmp/ccDmmuIk.s page 333 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8606 .loc 1 4027 5 is_stmt 1 view .LVU3028 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8607 .loc 1 4027 5 view .LVU3029 8608 0082 0025 movs r5, #0 8609 .LVL609: 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8610 .loc 1 4027 5 is_stmt 0 view .LVU3030 8611 0084 84F84050 strb r5, [r4, #64] 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8612 .loc 1 4027 5 is_stmt 1 view .LVU3031 4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8613 .loc 1 4033 5 view .LVU3032 8614 0088 48F20101 movw r1, #32769 8615 008c 2046 mov r0, r4 8616 008e FFF7FEFF bl I2C_Enable_IRQ 8617 .LVL610: 4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8618 .loc 1 4035 5 view .LVU3033 4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8619 .loc 1 4035 12 is_stmt 0 view .LVU3034 8620 0092 2846 mov r0, r5 8621 0094 1BE0 b .L551 8622 .LVL611: 8623 .L559: 3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8624 .loc 1 3981 7 is_stmt 1 view .LVU3035 8625 0096 0221 movs r1, #2 8626 0098 2046 mov r0, r4 8627 009a FFF7FEFF bl I2C_Disable_IRQ 8628 .LVL612: 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8629 .loc 1 3984 7 view .LVU3036 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8630 .loc 1 3984 16 is_stmt 0 view .LVU3037 8631 009e 2368 ldr r3, [r4] 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8632 .loc 1 3984 26 view .LVU3038 8633 00a0 1A68 ldr r2, [r3] 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8634 .loc 1 3984 10 view .LVU3039 8635 00a2 12F4004F tst r2, #32768 8636 00a6 CDD0 beq .L554 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8637 .loc 1 3986 9 is_stmt 1 view .LVU3040 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8638 .loc 1 3986 23 is_stmt 0 view .LVU3041 8639 00a8 1A68 ldr r2, [r3] 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8640 .loc 1 3986 29 view .LVU3042 8641 00aa 22F40042 bic r2, r2, #32768 8642 00ae 1A60 str r2, [r3] 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8643 .loc 1 3988 9 is_stmt 1 view .LVU3043 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8644 .loc 1 3988 17 is_stmt 0 view .LVU3044 8645 00b0 E36B ldr r3, [r4, #60] ARM GAS /tmp/ccDmmuIk.s page 334 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8646 .loc 1 3988 12 view .LVU3045 8647 00b2 002B cmp r3, #0 8648 00b4 C6D0 beq .L554 3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8649 .loc 1 3992 11 is_stmt 1 view .LVU3046 3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8650 .loc 1 3992 43 is_stmt 0 view .LVU3047 8651 00b6 084A ldr r2, .L560+4 8652 00b8 9A63 str r2, [r3, #56] 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8653 .loc 1 3995 11 is_stmt 1 view .LVU3048 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8654 .loc 1 3995 15 is_stmt 0 view .LVU3049 8655 00ba E06B ldr r0, [r4, #60] 8656 00bc FFF7FEFF bl HAL_DMA_Abort_IT 8657 .LVL613: 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8658 .loc 1 3995 14 discriminator 1 view .LVU3050 8659 00c0 0028 cmp r0, #0 8660 00c2 BFD0 beq .L554 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8661 .loc 1 3998 13 is_stmt 1 view .LVU3051 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8662 .loc 1 3998 17 is_stmt 0 view .LVU3052 8663 00c4 E06B ldr r0, [r4, #60] 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8664 .loc 1 3998 25 view .LVU3053 8665 00c6 836B ldr r3, [r0, #56] 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8666 .loc 1 3998 13 view .LVU3054 8667 00c8 9847 blx r3 8668 .LVL614: 8669 00ca BBE7 b .L554 8670 .LVL615: 8671 .L556: 4039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8672 .loc 1 4039 12 view .LVU3055 8673 00cc 0120 movs r0, #1 8674 .LVL616: 8675 .L551: 4041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8676 .loc 1 4041 1 view .LVU3056 8677 00ce F8BD pop {r3, r4, r5, r6, r7, pc} 8678 .LVL617: 8679 .L557: 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8680 .loc 1 3974 5 discriminator 1 view .LVU3057 8681 00d0 0220 movs r0, #2 8682 00d2 FCE7 b .L551 8683 .L561: 8684 .align 2 8685 .L560: 8686 00d4 00000000 .word I2C_Slave_ISR_IT 8687 00d8 00000000 .word I2C_DMAAbort 8688 .cfi_endproc 8689 .LFE356: ARM GAS /tmp/ccDmmuIk.s page 335 8691 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8692 .align 1 8693 .global HAL_I2C_Slave_Seq_Transmit_DMA 8694 .syntax unified 8695 .thumb 8696 .thumb_func 8698 HAL_I2C_Slave_Seq_Transmit_DMA: 8699 .LVL618: 8700 .LFB357: 4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8701 .loc 1 4055 1 is_stmt 1 view -0 8702 .cfi_startproc 8703 @ args = 0, pretend = 0, frame = 0 8704 @ frame_needed = 0, uses_anonymous_args = 0 4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8705 .loc 1 4055 1 is_stmt 0 view .LVU3059 8706 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8707 .LCFI103: 8708 .cfi_def_cfa_offset 24 8709 .cfi_offset 3, -24 8710 .cfi_offset 4, -20 8711 .cfi_offset 5, -16 8712 .cfi_offset 6, -12 8713 .cfi_offset 7, -8 8714 .cfi_offset 14, -4 8715 0002 0446 mov r4, r0 4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8716 .loc 1 4057 3 is_stmt 1 view .LVU3060 4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8717 .loc 1 4058 3 view .LVU3061 4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8718 .loc 1 4061 3 view .LVU3062 4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8719 .loc 1 4063 3 view .LVU3063 4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8720 .loc 1 4063 22 is_stmt 0 view .LVU3064 8721 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8722 .LVL619: 4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8723 .loc 1 4063 6 view .LVU3065 8724 0008 00F02800 and r0, r0, #40 8725 000c 2828 cmp r0, #40 8726 000e 40F0BE80 bne .L573 8727 0012 0F46 mov r7, r1 8728 0014 1646 mov r6, r2 8729 0016 1D46 mov r5, r3 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8730 .loc 1 4065 5 is_stmt 1 view .LVU3066 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8731 .loc 1 4065 8 is_stmt 0 view .LVU3067 8732 0018 0029 cmp r1, #0 8733 001a 4FD0 beq .L564 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8734 .loc 1 4065 25 discriminator 1 view .LVU3068 8735 001c 002A cmp r2, #0 8736 001e 4DD0 beq .L564 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 336 8737 .loc 1 4072 5 is_stmt 1 view .LVU3069 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8738 .loc 1 4072 5 view .LVU3070 8739 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8740 .LVL620: 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8741 .loc 1 4072 5 is_stmt 0 view .LVU3071 8742 0024 012B cmp r3, #1 8743 0026 00F0B580 beq .L574 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8744 .loc 1 4072 5 is_stmt 1 discriminator 2 view .LVU3072 8745 002a 0123 movs r3, #1 8746 002c 84F84030 strb r3, [r4, #64] 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8747 .loc 1 4072 5 view .LVU3073 4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8748 .loc 1 4075 5 view .LVU3074 8749 0030 48F20101 movw r1, #32769 8750 .LVL621: 4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8751 .loc 1 4075 5 is_stmt 0 view .LVU3075 8752 0034 2046 mov r0, r4 8753 0036 FFF7FEFF bl I2C_Disable_IRQ 8754 .LVL622: 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8755 .loc 1 4079 5 is_stmt 1 view .LVU3076 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8756 .loc 1 4079 13 is_stmt 0 view .LVU3077 8757 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8758 .loc 1 4079 8 view .LVU3078 8759 003e 2A2B cmp r3, #42 8760 0040 41D0 beq .L577 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8761 .loc 1 4104 10 is_stmt 1 view .LVU3079 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8762 .loc 1 4104 18 is_stmt 0 view .LVU3080 8763 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8764 .loc 1 4104 13 view .LVU3081 8765 0046 292B cmp r3, #41 8766 0048 59D0 beq .L578 8767 .L567: 4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8768 .loc 1 4129 5 is_stmt 1 view .LVU3082 4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8769 .loc 1 4131 5 view .LVU3083 4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8770 .loc 1 4131 21 is_stmt 0 view .LVU3084 8771 004a 2923 movs r3, #41 8772 004c 84F84130 strb r3, [r4, #65] 4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8773 .loc 1 4132 5 is_stmt 1 view .LVU3085 4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8774 .loc 1 4132 21 is_stmt 0 view .LVU3086 8775 0050 2023 movs r3, #32 8776 0052 84F84230 strb r3, [r4, #66] ARM GAS /tmp/ccDmmuIk.s page 337 4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8777 .loc 1 4133 5 is_stmt 1 view .LVU3087 4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8778 .loc 1 4133 21 is_stmt 0 view .LVU3088 8779 0056 0023 movs r3, #0 8780 0058 6364 str r3, [r4, #68] 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8781 .loc 1 4136 5 is_stmt 1 view .LVU3089 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8782 .loc 1 4136 9 is_stmt 0 view .LVU3090 8783 005a 2268 ldr r2, [r4] 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8784 .loc 1 4136 19 view .LVU3091 8785 005c 5368 ldr r3, [r2, #4] 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8786 .loc 1 4136 25 view .LVU3092 8787 005e 23F40043 bic r3, r3, #32768 8788 0062 5360 str r3, [r2, #4] 4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8789 .loc 1 4139 5 is_stmt 1 view .LVU3093 4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8790 .loc 1 4139 23 is_stmt 0 view .LVU3094 8791 0064 6762 str r7, [r4, #36] 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8792 .loc 1 4140 5 is_stmt 1 view .LVU3095 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8793 .loc 1 4140 23 is_stmt 0 view .LVU3096 8794 0066 6685 strh r6, [r4, #42] @ movhi 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8795 .loc 1 4141 5 is_stmt 1 view .LVU3097 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8796 .loc 1 4141 29 is_stmt 0 view .LVU3098 8797 0068 638D ldrh r3, [r4, #42] 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8798 .loc 1 4141 23 view .LVU3099 8799 006a 2385 strh r3, [r4, #40] @ movhi 4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8800 .loc 1 4142 5 is_stmt 1 view .LVU3100 4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8801 .loc 1 4142 23 is_stmt 0 view .LVU3101 8802 006c E562 str r5, [r4, #44] 4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8803 .loc 1 4143 5 is_stmt 1 view .LVU3102 4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8804 .loc 1 4143 23 is_stmt 0 view .LVU3103 8805 006e 4A4B ldr r3, .L579 8806 0070 6363 str r3, [r4, #52] 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8807 .loc 1 4145 5 is_stmt 1 view .LVU3104 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8808 .loc 1 4145 13 is_stmt 0 view .LVU3105 8809 0072 A36B ldr r3, [r4, #56] 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8810 .loc 1 4145 8 view .LVU3106 8811 0074 002B cmp r3, #0 8812 0076 59D0 beq .L568 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 338 8813 .loc 1 4148 7 is_stmt 1 view .LVU3107 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8814 .loc 1 4148 38 is_stmt 0 view .LVU3108 8815 0078 484A ldr r2, .L579+4 8816 007a DA62 str r2, [r3, #44] 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8817 .loc 1 4151 7 is_stmt 1 view .LVU3109 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8818 .loc 1 4151 11 is_stmt 0 view .LVU3110 8819 007c A36B ldr r3, [r4, #56] 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8820 .loc 1 4151 39 view .LVU3111 8821 007e 484A ldr r2, .L579+8 8822 0080 5A63 str r2, [r3, #52] 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8823 .loc 1 4154 7 is_stmt 1 view .LVU3112 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8824 .loc 1 4154 11 is_stmt 0 view .LVU3113 8825 0082 A26B ldr r2, [r4, #56] 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8826 .loc 1 4154 42 view .LVU3114 8827 0084 0023 movs r3, #0 8828 0086 1363 str r3, [r2, #48] 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8829 .loc 1 4155 7 is_stmt 1 view .LVU3115 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8830 .loc 1 4155 11 is_stmt 0 view .LVU3116 8831 0088 A26B ldr r2, [r4, #56] 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8832 .loc 1 4155 39 view .LVU3117 8833 008a 9363 str r3, [r2, #56] 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8834 .loc 1 4158 7 is_stmt 1 view .LVU3118 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8835 .loc 1 4158 86 is_stmt 0 view .LVU3119 8836 008c 2268 ldr r2, [r4] 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8837 .loc 1 4158 23 view .LVU3120 8838 008e 238D ldrh r3, [r4, #40] 8839 0090 2832 adds r2, r2, #40 8840 0092 3946 mov r1, r7 8841 0094 A06B ldr r0, [r4, #56] 8842 0096 FFF7FEFF bl HAL_DMA_Start_IT 8843 .LVL623: 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8844 .loc 1 4176 5 is_stmt 1 view .LVU3121 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8845 .loc 1 4176 8 is_stmt 0 view .LVU3122 8846 009a 0546 mov r5, r0 8847 .LVL624: 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8848 .loc 1 4176 8 view .LVU3123 8849 009c 0028 cmp r0, #0 8850 009e 53D0 beq .L569 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8851 .loc 1 4187 7 is_stmt 1 view .LVU3124 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccDmmuIk.s page 339 8852 .loc 1 4187 23 is_stmt 0 view .LVU3125 8853 00a0 2823 movs r3, #40 8854 00a2 84F84130 strb r3, [r4, #65] 4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8855 .loc 1 4188 7 is_stmt 1 view .LVU3126 4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8856 .loc 1 4188 23 is_stmt 0 view .LVU3127 8857 00a6 0022 movs r2, #0 8858 00a8 84F84220 strb r2, [r4, #66] 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8859 .loc 1 4191 7 is_stmt 1 view .LVU3128 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8860 .loc 1 4191 11 is_stmt 0 view .LVU3129 8861 00ac 636C ldr r3, [r4, #68] 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8862 .loc 1 4191 23 view .LVU3130 8863 00ae 43F01003 orr r3, r3, #16 8864 00b2 6364 str r3, [r4, #68] 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8865 .loc 1 4194 7 is_stmt 1 view .LVU3131 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8866 .loc 1 4194 7 view .LVU3132 8867 00b4 84F84020 strb r2, [r4, #64] 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8868 .loc 1 4194 7 view .LVU3133 4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8869 .loc 1 4196 7 view .LVU3134 4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8870 .loc 1 4196 14 is_stmt 0 view .LVU3135 8871 00b8 0125 movs r5, #1 8872 00ba 69E0 b .L563 8873 .LVL625: 8874 .L564: 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8875 .loc 1 4067 7 is_stmt 1 view .LVU3136 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8876 .loc 1 4067 23 is_stmt 0 view .LVU3137 8877 00bc 4FF40073 mov r3, #512 8878 .LVL626: 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8879 .loc 1 4067 23 view .LVU3138 8880 00c0 6364 str r3, [r4, #68] 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8881 .loc 1 4068 7 is_stmt 1 view .LVU3139 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8882 .loc 1 4068 15 is_stmt 0 view .LVU3140 8883 00c2 0125 movs r5, #1 8884 .LVL627: 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8885 .loc 1 4068 15 view .LVU3141 8886 00c4 64E0 b .L563 8887 .LVL628: 8888 .L577: 4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8889 .loc 1 4082 7 is_stmt 1 view .LVU3142 8890 00c6 0221 movs r1, #2 8891 00c8 2046 mov r0, r4 ARM GAS /tmp/ccDmmuIk.s page 340 8892 00ca FFF7FEFF bl I2C_Disable_IRQ 8893 .LVL629: 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8894 .loc 1 4084 7 view .LVU3143 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8895 .loc 1 4084 16 is_stmt 0 view .LVU3144 8896 00ce 2368 ldr r3, [r4] 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8897 .loc 1 4084 26 view .LVU3145 8898 00d0 1A68 ldr r2, [r3] 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8899 .loc 1 4084 10 view .LVU3146 8900 00d2 12F4004F tst r2, #32768 8901 00d6 B8D0 beq .L567 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8902 .loc 1 4087 9 is_stmt 1 view .LVU3147 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8903 .loc 1 4087 17 is_stmt 0 view .LVU3148 8904 00d8 E26B ldr r2, [r4, #60] 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8905 .loc 1 4087 12 view .LVU3149 8906 00da 002A cmp r2, #0 8907 00dc B5D0 beq .L567 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8908 .loc 1 4089 11 is_stmt 1 view .LVU3150 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8909 .loc 1 4089 25 is_stmt 0 view .LVU3151 8910 00de 1A68 ldr r2, [r3] 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8911 .loc 1 4089 31 view .LVU3152 8912 00e0 22F40042 bic r2, r2, #32768 8913 00e4 1A60 str r2, [r3] 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8914 .loc 1 4093 11 is_stmt 1 view .LVU3153 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8915 .loc 1 4093 15 is_stmt 0 view .LVU3154 8916 00e6 E36B ldr r3, [r4, #60] 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8917 .loc 1 4093 43 view .LVU3155 8918 00e8 2E4A ldr r2, .L579+12 8919 00ea 9A63 str r2, [r3, #56] 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8920 .loc 1 4096 11 is_stmt 1 view .LVU3156 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8921 .loc 1 4096 15 is_stmt 0 view .LVU3157 8922 00ec E06B ldr r0, [r4, #60] 8923 00ee FFF7FEFF bl HAL_DMA_Abort_IT 8924 .LVL630: 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8925 .loc 1 4096 14 discriminator 1 view .LVU3158 8926 00f2 0028 cmp r0, #0 8927 00f4 A9D0 beq .L567 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8928 .loc 1 4099 13 is_stmt 1 view .LVU3159 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8929 .loc 1 4099 17 is_stmt 0 view .LVU3160 8930 00f6 E06B ldr r0, [r4, #60] ARM GAS /tmp/ccDmmuIk.s page 341 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8931 .loc 1 4099 25 view .LVU3161 8932 00f8 836B ldr r3, [r0, #56] 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8933 .loc 1 4099 13 view .LVU3162 8934 00fa 9847 blx r3 8935 .LVL631: 8936 00fc A5E7 b .L567 8937 .L578: 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8938 .loc 1 4106 7 is_stmt 1 view .LVU3163 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8939 .loc 1 4106 16 is_stmt 0 view .LVU3164 8940 00fe 2368 ldr r3, [r4] 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8941 .loc 1 4106 26 view .LVU3165 8942 0100 1A68 ldr r2, [r3] 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8943 .loc 1 4106 10 view .LVU3166 8944 0102 12F4804F tst r2, #16384 8945 0106 A0D0 beq .L567 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8946 .loc 1 4108 9 is_stmt 1 view .LVU3167 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8947 .loc 1 4108 23 is_stmt 0 view .LVU3168 8948 0108 1A68 ldr r2, [r3] 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8949 .loc 1 4108 29 view .LVU3169 8950 010a 22F48042 bic r2, r2, #16384 8951 010e 1A60 str r2, [r3] 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8952 .loc 1 4111 9 is_stmt 1 view .LVU3170 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8953 .loc 1 4111 17 is_stmt 0 view .LVU3171 8954 0110 A36B ldr r3, [r4, #56] 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8955 .loc 1 4111 12 view .LVU3172 8956 0112 002B cmp r3, #0 8957 0114 99D0 beq .L567 4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8958 .loc 1 4115 11 is_stmt 1 view .LVU3173 4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8959 .loc 1 4115 43 is_stmt 0 view .LVU3174 8960 0116 234A ldr r2, .L579+12 8961 0118 9A63 str r2, [r3, #56] 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8962 .loc 1 4118 11 is_stmt 1 view .LVU3175 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8963 .loc 1 4118 15 is_stmt 0 view .LVU3176 8964 011a A06B ldr r0, [r4, #56] 8965 011c FFF7FEFF bl HAL_DMA_Abort_IT 8966 .LVL632: 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8967 .loc 1 4118 14 discriminator 1 view .LVU3177 8968 0120 0028 cmp r0, #0 8969 0122 92D0 beq .L567 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 342 8970 .loc 1 4121 13 is_stmt 1 view .LVU3178 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8971 .loc 1 4121 17 is_stmt 0 view .LVU3179 8972 0124 A06B ldr r0, [r4, #56] 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8973 .loc 1 4121 25 view .LVU3180 8974 0126 836B ldr r3, [r0, #56] 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8975 .loc 1 4121 13 view .LVU3181 8976 0128 9847 blx r3 8977 .LVL633: 8978 012a 8EE7 b .L567 8979 .L568: 4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8980 .loc 1 4164 7 is_stmt 1 view .LVU3182 4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8981 .loc 1 4164 23 is_stmt 0 view .LVU3183 8982 012c 2823 movs r3, #40 8983 012e 84F84130 strb r3, [r4, #65] 4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8984 .loc 1 4165 7 is_stmt 1 view .LVU3184 4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8985 .loc 1 4165 23 is_stmt 0 view .LVU3185 8986 0132 0022 movs r2, #0 8987 0134 84F84220 strb r2, [r4, #66] 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8988 .loc 1 4168 7 is_stmt 1 view .LVU3186 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8989 .loc 1 4168 11 is_stmt 0 view .LVU3187 8990 0138 636C ldr r3, [r4, #68] 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8991 .loc 1 4168 23 view .LVU3188 8992 013a 43F08003 orr r3, r3, #128 8993 013e 6364 str r3, [r4, #68] 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8994 .loc 1 4171 7 is_stmt 1 view .LVU3189 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8995 .loc 1 4171 7 view .LVU3190 8996 0140 84F84020 strb r2, [r4, #64] 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8997 .loc 1 4171 7 view .LVU3191 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8998 .loc 1 4173 7 view .LVU3192 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8999 .loc 1 4173 14 is_stmt 0 view .LVU3193 9000 0144 0125 movs r5, #1 9001 .LVL634: 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9002 .loc 1 4173 14 view .LVU3194 9003 0146 23E0 b .L563 9004 .LVL635: 9005 .L569: 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9006 .loc 1 4179 7 is_stmt 1 view .LVU3195 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9007 .loc 1 4179 11 is_stmt 0 view .LVU3196 9008 0148 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccDmmuIk.s page 343 9009 014a 9BB2 uxth r3, r3 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9010 .loc 1 4179 30 view .LVU3197 9011 014c 228D ldrh r2, [r4, #40] 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9012 .loc 1 4179 23 view .LVU3198 9013 014e 9B1A subs r3, r3, r2 9014 0150 9BB2 uxth r3, r3 9015 0152 6385 strh r3, [r4, #42] @ movhi 4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9016 .loc 1 4182 7 is_stmt 1 view .LVU3199 4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9017 .loc 1 4182 22 is_stmt 0 view .LVU3200 9018 0154 0023 movs r3, #0 9019 0156 2385 strh r3, [r4, #40] @ movhi 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9020 .loc 1 4199 5 is_stmt 1 view .LVU3201 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9021 .loc 1 4199 11 is_stmt 0 view .LVU3202 9022 0158 2268 ldr r2, [r4] 9023 015a 9369 ldr r3, [r2, #24] 9024 015c 03F00803 and r3, r3, #8 9025 .LVL636: 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9026 .loc 1 4200 5 is_stmt 1 view .LVU3203 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9027 .loc 1 4200 10 is_stmt 0 view .LVU3204 9028 0160 9169 ldr r1, [r2, #24] 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9029 .loc 1 4200 8 view .LVU3205 9030 0162 11F4803F tst r1, #65536 9031 0166 0DD1 bne .L571 9032 .LVL637: 9033 .L572: 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9034 .loc 1 4208 5 is_stmt 1 view .LVU3206 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9035 .loc 1 4208 5 view .LVU3207 9036 0168 0023 movs r3, #0 9037 016a 84F84030 strb r3, [r4, #64] 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9038 .loc 1 4208 5 view .LVU3208 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9039 .loc 1 4211 5 view .LVU3209 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9040 .loc 1 4211 9 is_stmt 0 view .LVU3210 9041 016e 2268 ldr r2, [r4] 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9042 .loc 1 4211 19 view .LVU3211 9043 0170 1368 ldr r3, [r2] 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9044 .loc 1 4211 25 view .LVU3212 9045 0172 43F48043 orr r3, r3, #16384 9046 0176 1360 str r3, [r2] 4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9047 .loc 1 4217 5 is_stmt 1 view .LVU3213 9048 0178 4FF40041 mov r1, #32768 ARM GAS /tmp/ccDmmuIk.s page 344 9049 017c 2046 mov r0, r4 9050 .LVL638: 4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9051 .loc 1 4217 5 is_stmt 0 view .LVU3214 9052 017e FFF7FEFF bl I2C_Enable_IRQ 9053 .LVL639: 4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9054 .loc 1 4219 5 is_stmt 1 view .LVU3215 4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9055 .loc 1 4219 12 is_stmt 0 view .LVU3216 9056 0182 05E0 b .L563 9057 .LVL640: 9058 .L571: 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9059 .loc 1 4200 54 discriminator 1 view .LVU3217 9060 0184 002B cmp r3, #0 9061 0186 EFD0 beq .L572 4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9062 .loc 1 4204 7 is_stmt 1 view .LVU3218 9063 0188 0823 movs r3, #8 9064 .LVL641: 4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9065 .loc 1 4204 7 is_stmt 0 view .LVU3219 9066 018a D361 str r3, [r2, #28] 9067 018c ECE7 b .L572 9068 .LVL642: 9069 .L573: 4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9070 .loc 1 4223 12 view .LVU3220 9071 018e 0125 movs r5, #1 9072 .LVL643: 9073 .L563: 4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9074 .loc 1 4225 1 view .LVU3221 9075 0190 2846 mov r0, r5 9076 0192 F8BD pop {r3, r4, r5, r6, r7, pc} 9077 .LVL644: 9078 .L574: 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9079 .loc 1 4072 5 discriminator 1 view .LVU3222 9080 0194 0225 movs r5, #2 9081 .LVL645: 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9082 .loc 1 4072 5 discriminator 1 view .LVU3223 9083 0196 FBE7 b .L563 9084 .L580: 9085 .align 2 9086 .L579: 9087 0198 00000000 .word I2C_Slave_ISR_DMA 9088 019c 00000000 .word I2C_DMASlaveTransmitCplt 9089 01a0 00000000 .word I2C_DMAError 9090 01a4 00000000 .word I2C_DMAAbort 9091 .cfi_endproc 9092 .LFE357: 9094 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 9095 .align 1 9096 .global HAL_I2C_Slave_Seq_Receive_IT ARM GAS /tmp/ccDmmuIk.s page 345 9097 .syntax unified 9098 .thumb 9099 .thumb_func 9101 HAL_I2C_Slave_Seq_Receive_IT: 9102 .LVL646: 9103 .LFB358: 4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9104 .loc 1 4239 1 is_stmt 1 view -0 9105 .cfi_startproc 9106 @ args = 0, pretend = 0, frame = 0 9107 @ frame_needed = 0, uses_anonymous_args = 0 4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9108 .loc 1 4239 1 is_stmt 0 view .LVU3225 9109 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9110 .LCFI104: 9111 .cfi_def_cfa_offset 24 9112 .cfi_offset 3, -24 9113 .cfi_offset 4, -20 9114 .cfi_offset 5, -16 9115 .cfi_offset 6, -12 9116 .cfi_offset 7, -8 9117 .cfi_offset 14, -4 9118 0002 0446 mov r4, r0 4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9119 .loc 1 4241 3 is_stmt 1 view .LVU3226 4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9120 .loc 1 4244 3 view .LVU3227 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9121 .loc 1 4246 3 view .LVU3228 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9122 .loc 1 4246 22 is_stmt 0 view .LVU3229 9123 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9124 .LVL647: 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9125 .loc 1 4246 6 view .LVU3230 9126 0008 00F02800 and r0, r0, #40 9127 000c 2828 cmp r0, #40 9128 000e 5DD1 bne .L587 9129 0010 0F46 mov r7, r1 9130 0012 1646 mov r6, r2 9131 0014 1D46 mov r5, r3 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9132 .loc 1 4248 5 is_stmt 1 view .LVU3231 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9133 .loc 1 4248 8 is_stmt 0 view .LVU3232 9134 0016 01B1 cbz r1, .L583 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9135 .loc 1 4248 25 discriminator 1 view .LVU3233 9136 0018 22B9 cbnz r2, .L584 9137 .L583: 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9138 .loc 1 4250 7 is_stmt 1 view .LVU3234 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9139 .loc 1 4250 23 is_stmt 0 view .LVU3235 9140 001a 4FF40073 mov r3, #512 9141 .LVL648: 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccDmmuIk.s page 346 9142 .loc 1 4250 23 view .LVU3236 9143 001e 6364 str r3, [r4, #68] 4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9144 .loc 1 4251 7 is_stmt 1 view .LVU3237 4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9145 .loc 1 4251 15 is_stmt 0 view .LVU3238 9146 0020 0120 movs r0, #1 9147 0022 54E0 b .L582 9148 .LVL649: 9149 .L584: 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9150 .loc 1 4255 5 is_stmt 1 view .LVU3239 9151 0024 48F20201 movw r1, #32770 9152 .LVL650: 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9153 .loc 1 4255 5 is_stmt 0 view .LVU3240 9154 0028 2046 mov r0, r4 9155 002a FFF7FEFF bl I2C_Disable_IRQ 9156 .LVL651: 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9157 .loc 1 4258 5 is_stmt 1 view .LVU3241 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9158 .loc 1 4258 5 view .LVU3242 9159 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9160 0032 012B cmp r3, #1 9161 0034 4CD0 beq .L588 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9162 .loc 1 4258 5 discriminator 2 view .LVU3243 9163 0036 0123 movs r3, #1 9164 0038 84F84030 strb r3, [r4, #64] 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9165 .loc 1 4258 5 view .LVU3244 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9166 .loc 1 4262 5 view .LVU3245 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9167 .loc 1 4262 13 is_stmt 0 view .LVU3246 9168 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9169 .loc 1 4262 8 view .LVU3247 9170 0040 292B cmp r3, #41 9171 0042 28D0 beq .L590 9172 .L585: 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9173 .loc 1 4288 5 is_stmt 1 view .LVU3248 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9174 .loc 1 4288 21 is_stmt 0 view .LVU3249 9175 0044 2A23 movs r3, #42 9176 0046 84F84130 strb r3, [r4, #65] 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9177 .loc 1 4289 5 is_stmt 1 view .LVU3250 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9178 .loc 1 4289 21 is_stmt 0 view .LVU3251 9179 004a 2023 movs r3, #32 9180 004c 84F84230 strb r3, [r4, #66] 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9181 .loc 1 4290 5 is_stmt 1 view .LVU3252 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 347 9182 .loc 1 4290 21 is_stmt 0 view .LVU3253 9183 0050 0023 movs r3, #0 9184 0052 6364 str r3, [r4, #68] 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9185 .loc 1 4293 5 is_stmt 1 view .LVU3254 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9186 .loc 1 4293 9 is_stmt 0 view .LVU3255 9187 0054 2268 ldr r2, [r4] 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9188 .loc 1 4293 19 view .LVU3256 9189 0056 5368 ldr r3, [r2, #4] 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9190 .loc 1 4293 25 view .LVU3257 9191 0058 23F40043 bic r3, r3, #32768 9192 005c 5360 str r3, [r2, #4] 4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9193 .loc 1 4296 5 is_stmt 1 view .LVU3258 4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9194 .loc 1 4296 23 is_stmt 0 view .LVU3259 9195 005e 6762 str r7, [r4, #36] 4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9196 .loc 1 4297 5 is_stmt 1 view .LVU3260 4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9197 .loc 1 4297 23 is_stmt 0 view .LVU3261 9198 0060 6685 strh r6, [r4, #42] @ movhi 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9199 .loc 1 4298 5 is_stmt 1 view .LVU3262 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9200 .loc 1 4298 29 is_stmt 0 view .LVU3263 9201 0062 638D ldrh r3, [r4, #42] 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9202 .loc 1 4298 23 view .LVU3264 9203 0064 2385 strh r3, [r4, #40] @ movhi 4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9204 .loc 1 4299 5 is_stmt 1 view .LVU3265 4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9205 .loc 1 4299 23 is_stmt 0 view .LVU3266 9206 0066 E562 str r5, [r4, #44] 4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9207 .loc 1 4300 5 is_stmt 1 view .LVU3267 4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9208 .loc 1 4300 23 is_stmt 0 view .LVU3268 9209 0068 1A4B ldr r3, .L591 9210 006a 6363 str r3, [r4, #52] 4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9211 .loc 1 4302 5 is_stmt 1 view .LVU3269 4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9212 .loc 1 4302 11 is_stmt 0 view .LVU3270 9213 006c 2268 ldr r2, [r4] 9214 006e 9369 ldr r3, [r2, #24] 9215 0070 03F00803 and r3, r3, #8 9216 .LVL652: 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9217 .loc 1 4303 5 is_stmt 1 view .LVU3271 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9218 .loc 1 4303 10 is_stmt 0 view .LVU3272 9219 0074 9169 ldr r1, [r2, #24] ARM GAS /tmp/ccDmmuIk.s page 348 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9220 .loc 1 4303 8 view .LVU3273 9221 0076 11F4803F tst r1, #65536 9222 007a 02D1 bne .L586 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9223 .loc 1 4303 55 discriminator 1 view .LVU3274 9224 007c 0BB1 cbz r3, .L586 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9225 .loc 1 4307 7 is_stmt 1 view .LVU3275 9226 007e 0823 movs r3, #8 9227 .LVL653: 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9228 .loc 1 4307 7 is_stmt 0 view .LVU3276 9229 0080 D361 str r3, [r2, #28] 9230 .L586: 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9231 .loc 1 4311 5 is_stmt 1 view .LVU3277 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9232 .loc 1 4311 5 view .LVU3278 9233 0082 0025 movs r5, #0 9234 .LVL654: 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9235 .loc 1 4311 5 is_stmt 0 view .LVU3279 9236 0084 84F84050 strb r5, [r4, #64] 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9237 .loc 1 4311 5 is_stmt 1 view .LVU3280 4317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9238 .loc 1 4317 5 view .LVU3281 9239 0088 48F20201 movw r1, #32770 9240 008c 2046 mov r0, r4 9241 008e FFF7FEFF bl I2C_Enable_IRQ 9242 .LVL655: 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9243 .loc 1 4319 5 view .LVU3282 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9244 .loc 1 4319 12 is_stmt 0 view .LVU3283 9245 0092 2846 mov r0, r5 9246 0094 1BE0 b .L582 9247 .LVL656: 9248 .L590: 4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9249 .loc 1 4265 7 is_stmt 1 view .LVU3284 9250 0096 0121 movs r1, #1 9251 0098 2046 mov r0, r4 9252 009a FFF7FEFF bl I2C_Disable_IRQ 9253 .LVL657: 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9254 .loc 1 4267 7 view .LVU3285 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9255 .loc 1 4267 16 is_stmt 0 view .LVU3286 9256 009e 2368 ldr r3, [r4] 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9257 .loc 1 4267 26 view .LVU3287 9258 00a0 1A68 ldr r2, [r3] 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9259 .loc 1 4267 10 view .LVU3288 9260 00a2 12F4804F tst r2, #16384 ARM GAS /tmp/ccDmmuIk.s page 349 9261 00a6 CDD0 beq .L585 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9262 .loc 1 4269 9 is_stmt 1 view .LVU3289 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9263 .loc 1 4269 23 is_stmt 0 view .LVU3290 9264 00a8 1A68 ldr r2, [r3] 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9265 .loc 1 4269 29 view .LVU3291 9266 00aa 22F48042 bic r2, r2, #16384 9267 00ae 1A60 str r2, [r3] 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9268 .loc 1 4272 9 is_stmt 1 view .LVU3292 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9269 .loc 1 4272 17 is_stmt 0 view .LVU3293 9270 00b0 A36B ldr r3, [r4, #56] 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9271 .loc 1 4272 12 view .LVU3294 9272 00b2 002B cmp r3, #0 9273 00b4 C6D0 beq .L585 4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9274 .loc 1 4276 11 is_stmt 1 view .LVU3295 4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9275 .loc 1 4276 43 is_stmt 0 view .LVU3296 9276 00b6 084A ldr r2, .L591+4 9277 00b8 9A63 str r2, [r3, #56] 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9278 .loc 1 4279 11 is_stmt 1 view .LVU3297 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9279 .loc 1 4279 15 is_stmt 0 view .LVU3298 9280 00ba A06B ldr r0, [r4, #56] 9281 00bc FFF7FEFF bl HAL_DMA_Abort_IT 9282 .LVL658: 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9283 .loc 1 4279 14 discriminator 1 view .LVU3299 9284 00c0 0028 cmp r0, #0 9285 00c2 BFD0 beq .L585 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9286 .loc 1 4282 13 is_stmt 1 view .LVU3300 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9287 .loc 1 4282 17 is_stmt 0 view .LVU3301 9288 00c4 A06B ldr r0, [r4, #56] 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9289 .loc 1 4282 25 view .LVU3302 9290 00c6 836B ldr r3, [r0, #56] 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9291 .loc 1 4282 13 view .LVU3303 9292 00c8 9847 blx r3 9293 .LVL659: 9294 00ca BBE7 b .L585 9295 .LVL660: 9296 .L587: 4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9297 .loc 1 4323 12 view .LVU3304 9298 00cc 0120 movs r0, #1 9299 .LVL661: 9300 .L582: 4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 350 9301 .loc 1 4325 1 view .LVU3305 9302 00ce F8BD pop {r3, r4, r5, r6, r7, pc} 9303 .LVL662: 9304 .L588: 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9305 .loc 1 4258 5 discriminator 1 view .LVU3306 9306 00d0 0220 movs r0, #2 9307 00d2 FCE7 b .L582 9308 .L592: 9309 .align 2 9310 .L591: 9311 00d4 00000000 .word I2C_Slave_ISR_IT 9312 00d8 00000000 .word I2C_DMAAbort 9313 .cfi_endproc 9314 .LFE358: 9316 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9317 .align 1 9318 .global HAL_I2C_Slave_Seq_Receive_DMA 9319 .syntax unified 9320 .thumb 9321 .thumb_func 9323 HAL_I2C_Slave_Seq_Receive_DMA: 9324 .LVL663: 9325 .LFB359: 4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9326 .loc 1 4339 1 is_stmt 1 view -0 9327 .cfi_startproc 9328 @ args = 0, pretend = 0, frame = 0 9329 @ frame_needed = 0, uses_anonymous_args = 0 4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9330 .loc 1 4339 1 is_stmt 0 view .LVU3308 9331 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9332 .LCFI105: 9333 .cfi_def_cfa_offset 24 9334 .cfi_offset 3, -24 9335 .cfi_offset 4, -20 9336 .cfi_offset 5, -16 9337 .cfi_offset 6, -12 9338 .cfi_offset 7, -8 9339 .cfi_offset 14, -4 9340 0002 0446 mov r4, r0 4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9341 .loc 1 4341 3 is_stmt 1 view .LVU3309 4342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9342 .loc 1 4342 3 view .LVU3310 4345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9343 .loc 1 4345 3 view .LVU3311 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9344 .loc 1 4347 3 view .LVU3312 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9345 .loc 1 4347 22 is_stmt 0 view .LVU3313 9346 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9347 .LVL664: 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9348 .loc 1 4347 6 view .LVU3314 9349 0008 00F02800 and r0, r0, #40 9350 000c 2828 cmp r0, #40 ARM GAS /tmp/ccDmmuIk.s page 351 9351 000e 40F0BC80 bne .L604 9352 0012 0F46 mov r7, r1 9353 0014 1646 mov r6, r2 9354 0016 1D46 mov r5, r3 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9355 .loc 1 4349 5 is_stmt 1 view .LVU3315 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9356 .loc 1 4349 8 is_stmt 0 view .LVU3316 9357 0018 01B1 cbz r1, .L595 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9358 .loc 1 4349 25 discriminator 1 view .LVU3317 9359 001a 22B9 cbnz r2, .L596 9360 .L595: 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9361 .loc 1 4351 7 is_stmt 1 view .LVU3318 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9362 .loc 1 4351 23 is_stmt 0 view .LVU3319 9363 001c 4FF40073 mov r3, #512 9364 .LVL665: 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9365 .loc 1 4351 23 view .LVU3320 9366 0020 6364 str r3, [r4, #68] 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9367 .loc 1 4352 7 is_stmt 1 view .LVU3321 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9368 .loc 1 4352 15 is_stmt 0 view .LVU3322 9369 0022 0125 movs r5, #1 9370 .LVL666: 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9371 .loc 1 4352 15 view .LVU3323 9372 0024 B2E0 b .L594 9373 .LVL667: 9374 .L596: 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9375 .loc 1 4356 5 is_stmt 1 view .LVU3324 9376 0026 48F20201 movw r1, #32770 9377 .LVL668: 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9378 .loc 1 4356 5 is_stmt 0 view .LVU3325 9379 002a 2046 mov r0, r4 9380 002c FFF7FEFF bl I2C_Disable_IRQ 9381 .LVL669: 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9382 .loc 1 4359 5 is_stmt 1 view .LVU3326 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9383 .loc 1 4359 5 view .LVU3327 9384 0030 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9385 0034 012B cmp r3, #1 9386 0036 00F0AB80 beq .L605 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9387 .loc 1 4359 5 discriminator 2 view .LVU3328 9388 003a 0123 movs r3, #1 9389 003c 84F84030 strb r3, [r4, #64] 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9390 .loc 1 4359 5 view .LVU3329 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9391 .loc 1 4363 5 view .LVU3330 ARM GAS /tmp/ccDmmuIk.s page 352 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9392 .loc 1 4363 13 is_stmt 0 view .LVU3331 9393 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9394 .loc 1 4363 8 view .LVU3332 9395 0044 292B cmp r3, #41 9396 0046 3CD0 beq .L608 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9397 .loc 1 4388 10 is_stmt 1 view .LVU3333 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9398 .loc 1 4388 18 is_stmt 0 view .LVU3334 9399 0048 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9400 .loc 1 4388 13 view .LVU3335 9401 004c 2A2B cmp r3, #42 9402 004e 54D0 beq .L609 9403 .L598: 4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9404 .loc 1 4413 5 is_stmt 1 view .LVU3336 4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9405 .loc 1 4415 5 view .LVU3337 4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9406 .loc 1 4415 21 is_stmt 0 view .LVU3338 9407 0050 2A23 movs r3, #42 9408 0052 84F84130 strb r3, [r4, #65] 4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9409 .loc 1 4416 5 is_stmt 1 view .LVU3339 4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9410 .loc 1 4416 21 is_stmt 0 view .LVU3340 9411 0056 2023 movs r3, #32 9412 0058 84F84230 strb r3, [r4, #66] 4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9413 .loc 1 4417 5 is_stmt 1 view .LVU3341 4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9414 .loc 1 4417 21 is_stmt 0 view .LVU3342 9415 005c 0023 movs r3, #0 9416 005e 6364 str r3, [r4, #68] 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9417 .loc 1 4420 5 is_stmt 1 view .LVU3343 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9418 .loc 1 4420 9 is_stmt 0 view .LVU3344 9419 0060 2268 ldr r2, [r4] 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9420 .loc 1 4420 19 view .LVU3345 9421 0062 5368 ldr r3, [r2, #4] 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9422 .loc 1 4420 25 view .LVU3346 9423 0064 23F40043 bic r3, r3, #32768 9424 0068 5360 str r3, [r2, #4] 4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9425 .loc 1 4423 5 is_stmt 1 view .LVU3347 4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9426 .loc 1 4423 23 is_stmt 0 view .LVU3348 9427 006a 6762 str r7, [r4, #36] 4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9428 .loc 1 4424 5 is_stmt 1 view .LVU3349 4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccDmmuIk.s page 353 9429 .loc 1 4424 23 is_stmt 0 view .LVU3350 9430 006c 6685 strh r6, [r4, #42] @ movhi 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9431 .loc 1 4425 5 is_stmt 1 view .LVU3351 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9432 .loc 1 4425 29 is_stmt 0 view .LVU3352 9433 006e 638D ldrh r3, [r4, #42] 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9434 .loc 1 4425 23 view .LVU3353 9435 0070 2385 strh r3, [r4, #40] @ movhi 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9436 .loc 1 4426 5 is_stmt 1 view .LVU3354 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9437 .loc 1 4426 23 is_stmt 0 view .LVU3355 9438 0072 E562 str r5, [r4, #44] 4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9439 .loc 1 4427 5 is_stmt 1 view .LVU3356 4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9440 .loc 1 4427 23 is_stmt 0 view .LVU3357 9441 0074 474B ldr r3, .L610 9442 0076 6363 str r3, [r4, #52] 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9443 .loc 1 4429 5 is_stmt 1 view .LVU3358 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9444 .loc 1 4429 13 is_stmt 0 view .LVU3359 9445 0078 E36B ldr r3, [r4, #60] 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9446 .loc 1 4429 8 view .LVU3360 9447 007a 002B cmp r3, #0 9448 007c 54D0 beq .L599 4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9449 .loc 1 4432 7 is_stmt 1 view .LVU3361 4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9450 .loc 1 4432 38 is_stmt 0 view .LVU3362 9451 007e 464A ldr r2, .L610+4 9452 0080 DA62 str r2, [r3, #44] 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9453 .loc 1 4435 7 is_stmt 1 view .LVU3363 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9454 .loc 1 4435 11 is_stmt 0 view .LVU3364 9455 0082 E36B ldr r3, [r4, #60] 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9456 .loc 1 4435 39 view .LVU3365 9457 0084 454A ldr r2, .L610+8 9458 0086 5A63 str r2, [r3, #52] 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9459 .loc 1 4438 7 is_stmt 1 view .LVU3366 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9460 .loc 1 4438 11 is_stmt 0 view .LVU3367 9461 0088 E26B ldr r2, [r4, #60] 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9462 .loc 1 4438 42 view .LVU3368 9463 008a 0023 movs r3, #0 9464 008c 1363 str r3, [r2, #48] 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9465 .loc 1 4439 7 is_stmt 1 view .LVU3369 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 354 9466 .loc 1 4439 11 is_stmt 0 view .LVU3370 9467 008e E26B ldr r2, [r4, #60] 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9468 .loc 1 4439 39 view .LVU3371 9469 0090 9363 str r3, [r2, #56] 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9470 .loc 1 4442 7 is_stmt 1 view .LVU3372 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9471 .loc 1 4442 69 is_stmt 0 view .LVU3373 9472 0092 2168 ldr r1, [r4] 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9473 .loc 1 4442 23 view .LVU3374 9474 0094 238D ldrh r3, [r4, #40] 9475 0096 3A46 mov r2, r7 9476 0098 2431 adds r1, r1, #36 9477 009a E06B ldr r0, [r4, #60] 9478 009c FFF7FEFF bl HAL_DMA_Start_IT 9479 .LVL670: 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9480 .loc 1 4460 5 is_stmt 1 view .LVU3375 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9481 .loc 1 4460 8 is_stmt 0 view .LVU3376 9482 00a0 0546 mov r5, r0 9483 .LVL671: 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9484 .loc 1 4460 8 view .LVU3377 9485 00a2 0028 cmp r0, #0 9486 00a4 4ED0 beq .L600 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9487 .loc 1 4471 7 is_stmt 1 view .LVU3378 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9488 .loc 1 4471 23 is_stmt 0 view .LVU3379 9489 00a6 2823 movs r3, #40 9490 00a8 84F84130 strb r3, [r4, #65] 4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9491 .loc 1 4472 7 is_stmt 1 view .LVU3380 4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9492 .loc 1 4472 23 is_stmt 0 view .LVU3381 9493 00ac 0022 movs r2, #0 9494 00ae 84F84220 strb r2, [r4, #66] 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9495 .loc 1 4475 7 is_stmt 1 view .LVU3382 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9496 .loc 1 4475 11 is_stmt 0 view .LVU3383 9497 00b2 636C ldr r3, [r4, #68] 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9498 .loc 1 4475 23 view .LVU3384 9499 00b4 43F01003 orr r3, r3, #16 9500 00b8 6364 str r3, [r4, #68] 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9501 .loc 1 4478 7 is_stmt 1 view .LVU3385 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9502 .loc 1 4478 7 view .LVU3386 9503 00ba 84F84020 strb r2, [r4, #64] 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9504 .loc 1 4478 7 view .LVU3387 4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 355 9505 .loc 1 4480 7 view .LVU3388 4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9506 .loc 1 4480 14 is_stmt 0 view .LVU3389 9507 00be 0125 movs r5, #1 9508 00c0 64E0 b .L594 9509 .LVL672: 9510 .L608: 4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9511 .loc 1 4366 7 is_stmt 1 view .LVU3390 9512 00c2 0121 movs r1, #1 9513 00c4 2046 mov r0, r4 9514 00c6 FFF7FEFF bl I2C_Disable_IRQ 9515 .LVL673: 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9516 .loc 1 4368 7 view .LVU3391 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9517 .loc 1 4368 16 is_stmt 0 view .LVU3392 9518 00ca 2368 ldr r3, [r4] 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9519 .loc 1 4368 26 view .LVU3393 9520 00cc 1A68 ldr r2, [r3] 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9521 .loc 1 4368 10 view .LVU3394 9522 00ce 12F4804F tst r2, #16384 9523 00d2 BDD0 beq .L598 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9524 .loc 1 4371 9 is_stmt 1 view .LVU3395 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9525 .loc 1 4371 17 is_stmt 0 view .LVU3396 9526 00d4 A26B ldr r2, [r4, #56] 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9527 .loc 1 4371 12 view .LVU3397 9528 00d6 002A cmp r2, #0 9529 00d8 BAD0 beq .L598 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9530 .loc 1 4373 11 is_stmt 1 view .LVU3398 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9531 .loc 1 4373 25 is_stmt 0 view .LVU3399 9532 00da 1A68 ldr r2, [r3] 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9533 .loc 1 4373 31 view .LVU3400 9534 00dc 22F48042 bic r2, r2, #16384 9535 00e0 1A60 str r2, [r3] 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9536 .loc 1 4377 11 is_stmt 1 view .LVU3401 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9537 .loc 1 4377 15 is_stmt 0 view .LVU3402 9538 00e2 A36B ldr r3, [r4, #56] 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9539 .loc 1 4377 43 view .LVU3403 9540 00e4 2E4A ldr r2, .L610+12 9541 00e6 9A63 str r2, [r3, #56] 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9542 .loc 1 4380 11 is_stmt 1 view .LVU3404 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9543 .loc 1 4380 15 is_stmt 0 view .LVU3405 9544 00e8 A06B ldr r0, [r4, #56] ARM GAS /tmp/ccDmmuIk.s page 356 9545 00ea FFF7FEFF bl HAL_DMA_Abort_IT 9546 .LVL674: 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9547 .loc 1 4380 14 discriminator 1 view .LVU3406 9548 00ee 0028 cmp r0, #0 9549 00f0 AED0 beq .L598 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9550 .loc 1 4383 13 is_stmt 1 view .LVU3407 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9551 .loc 1 4383 17 is_stmt 0 view .LVU3408 9552 00f2 A06B ldr r0, [r4, #56] 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9553 .loc 1 4383 25 view .LVU3409 9554 00f4 836B ldr r3, [r0, #56] 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9555 .loc 1 4383 13 view .LVU3410 9556 00f6 9847 blx r3 9557 .LVL675: 9558 00f8 AAE7 b .L598 9559 .L609: 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9560 .loc 1 4390 7 is_stmt 1 view .LVU3411 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9561 .loc 1 4390 16 is_stmt 0 view .LVU3412 9562 00fa 2368 ldr r3, [r4] 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9563 .loc 1 4390 26 view .LVU3413 9564 00fc 1A68 ldr r2, [r3] 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9565 .loc 1 4390 10 view .LVU3414 9566 00fe 12F4004F tst r2, #32768 9567 0102 A5D0 beq .L598 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9568 .loc 1 4392 9 is_stmt 1 view .LVU3415 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9569 .loc 1 4392 23 is_stmt 0 view .LVU3416 9570 0104 1A68 ldr r2, [r3] 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9571 .loc 1 4392 29 view .LVU3417 9572 0106 22F40042 bic r2, r2, #32768 9573 010a 1A60 str r2, [r3] 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9574 .loc 1 4395 9 is_stmt 1 view .LVU3418 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9575 .loc 1 4395 17 is_stmt 0 view .LVU3419 9576 010c E36B ldr r3, [r4, #60] 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9577 .loc 1 4395 12 view .LVU3420 9578 010e 002B cmp r3, #0 9579 0110 9ED0 beq .L598 4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9580 .loc 1 4399 11 is_stmt 1 view .LVU3421 4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9581 .loc 1 4399 43 is_stmt 0 view .LVU3422 9582 0112 234A ldr r2, .L610+12 9583 0114 9A63 str r2, [r3, #56] 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 357 9584 .loc 1 4402 11 is_stmt 1 view .LVU3423 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9585 .loc 1 4402 15 is_stmt 0 view .LVU3424 9586 0116 E06B ldr r0, [r4, #60] 9587 0118 FFF7FEFF bl HAL_DMA_Abort_IT 9588 .LVL676: 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9589 .loc 1 4402 14 discriminator 1 view .LVU3425 9590 011c 0028 cmp r0, #0 9591 011e 97D0 beq .L598 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9592 .loc 1 4405 13 is_stmt 1 view .LVU3426 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9593 .loc 1 4405 17 is_stmt 0 view .LVU3427 9594 0120 E06B ldr r0, [r4, #60] 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9595 .loc 1 4405 25 view .LVU3428 9596 0122 836B ldr r3, [r0, #56] 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9597 .loc 1 4405 13 view .LVU3429 9598 0124 9847 blx r3 9599 .LVL677: 9600 0126 93E7 b .L598 9601 .L599: 4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9602 .loc 1 4448 7 is_stmt 1 view .LVU3430 4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9603 .loc 1 4448 23 is_stmt 0 view .LVU3431 9604 0128 2823 movs r3, #40 9605 012a 84F84130 strb r3, [r4, #65] 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9606 .loc 1 4449 7 is_stmt 1 view .LVU3432 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9607 .loc 1 4449 23 is_stmt 0 view .LVU3433 9608 012e 0022 movs r2, #0 9609 0130 84F84220 strb r2, [r4, #66] 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9610 .loc 1 4452 7 is_stmt 1 view .LVU3434 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9611 .loc 1 4452 11 is_stmt 0 view .LVU3435 9612 0134 636C ldr r3, [r4, #68] 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9613 .loc 1 4452 23 view .LVU3436 9614 0136 43F08003 orr r3, r3, #128 9615 013a 6364 str r3, [r4, #68] 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9616 .loc 1 4455 7 is_stmt 1 view .LVU3437 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9617 .loc 1 4455 7 view .LVU3438 9618 013c 84F84020 strb r2, [r4, #64] 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9619 .loc 1 4455 7 view .LVU3439 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9620 .loc 1 4457 7 view .LVU3440 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9621 .loc 1 4457 14 is_stmt 0 view .LVU3441 9622 0140 0125 movs r5, #1 ARM GAS /tmp/ccDmmuIk.s page 358 9623 .LVL678: 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9624 .loc 1 4457 14 view .LVU3442 9625 0142 23E0 b .L594 9626 .LVL679: 9627 .L600: 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9628 .loc 1 4463 7 is_stmt 1 view .LVU3443 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9629 .loc 1 4463 11 is_stmt 0 view .LVU3444 9630 0144 638D ldrh r3, [r4, #42] 9631 0146 9BB2 uxth r3, r3 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9632 .loc 1 4463 30 view .LVU3445 9633 0148 228D ldrh r2, [r4, #40] 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9634 .loc 1 4463 23 view .LVU3446 9635 014a 9B1A subs r3, r3, r2 9636 014c 9BB2 uxth r3, r3 9637 014e 6385 strh r3, [r4, #42] @ movhi 4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9638 .loc 1 4466 7 is_stmt 1 view .LVU3447 4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9639 .loc 1 4466 22 is_stmt 0 view .LVU3448 9640 0150 0023 movs r3, #0 9641 0152 2385 strh r3, [r4, #40] @ movhi 4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9642 .loc 1 4483 5 is_stmt 1 view .LVU3449 4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9643 .loc 1 4483 11 is_stmt 0 view .LVU3450 9644 0154 2268 ldr r2, [r4] 9645 0156 9369 ldr r3, [r2, #24] 9646 0158 03F00803 and r3, r3, #8 9647 .LVL680: 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9648 .loc 1 4484 5 is_stmt 1 view .LVU3451 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9649 .loc 1 4484 10 is_stmt 0 view .LVU3452 9650 015c 9169 ldr r1, [r2, #24] 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9651 .loc 1 4484 8 view .LVU3453 9652 015e 11F4803F tst r1, #65536 9653 0162 0DD0 beq .L602 9654 .LVL681: 9655 .L603: 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9656 .loc 1 4492 5 is_stmt 1 view .LVU3454 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9657 .loc 1 4492 5 view .LVU3455 9658 0164 0023 movs r3, #0 9659 0166 84F84030 strb r3, [r4, #64] 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9660 .loc 1 4492 5 view .LVU3456 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9661 .loc 1 4495 5 view .LVU3457 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9662 .loc 1 4495 9 is_stmt 0 view .LVU3458 ARM GAS /tmp/ccDmmuIk.s page 359 9663 016a 2268 ldr r2, [r4] 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9664 .loc 1 4495 19 view .LVU3459 9665 016c 1368 ldr r3, [r2] 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9666 .loc 1 4495 25 view .LVU3460 9667 016e 43F40043 orr r3, r3, #32768 9668 0172 1360 str r3, [r2] 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9669 .loc 1 4501 5 is_stmt 1 view .LVU3461 9670 0174 48F20201 movw r1, #32770 9671 0178 2046 mov r0, r4 9672 .LVL682: 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9673 .loc 1 4501 5 is_stmt 0 view .LVU3462 9674 017a FFF7FEFF bl I2C_Enable_IRQ 9675 .LVL683: 4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9676 .loc 1 4503 5 is_stmt 1 view .LVU3463 4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9677 .loc 1 4503 12 is_stmt 0 view .LVU3464 9678 017e 05E0 b .L594 9679 .LVL684: 9680 .L602: 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9681 .loc 1 4484 55 discriminator 1 view .LVU3465 9682 0180 002B cmp r3, #0 9683 0182 EFD0 beq .L603 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9684 .loc 1 4488 7 is_stmt 1 view .LVU3466 9685 0184 0823 movs r3, #8 9686 .LVL685: 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9687 .loc 1 4488 7 is_stmt 0 view .LVU3467 9688 0186 D361 str r3, [r2, #28] 9689 0188 ECE7 b .L603 9690 .LVL686: 9691 .L604: 4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9692 .loc 1 4507 12 view .LVU3468 9693 018a 0125 movs r5, #1 9694 .LVL687: 9695 .L594: 4509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9696 .loc 1 4509 1 view .LVU3469 9697 018c 2846 mov r0, r5 9698 018e F8BD pop {r3, r4, r5, r6, r7, pc} 9699 .LVL688: 9700 .L605: 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9701 .loc 1 4359 5 discriminator 1 view .LVU3470 9702 0190 0225 movs r5, #2 9703 .LVL689: 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9704 .loc 1 4359 5 discriminator 1 view .LVU3471 9705 0192 FBE7 b .L594 9706 .L611: ARM GAS /tmp/ccDmmuIk.s page 360 9707 .align 2 9708 .L610: 9709 0194 00000000 .word I2C_Slave_ISR_DMA 9710 0198 00000000 .word I2C_DMASlaveReceiveCplt 9711 019c 00000000 .word I2C_DMAError 9712 01a0 00000000 .word I2C_DMAAbort 9713 .cfi_endproc 9714 .LFE359: 9716 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9717 .align 1 9718 .global HAL_I2C_EnableListen_IT 9719 .syntax unified 9720 .thumb 9721 .thumb_func 9723 HAL_I2C_EnableListen_IT: 9724 .LVL690: 9725 .LFB360: 4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9726 .loc 1 4518 1 is_stmt 1 view -0 9727 .cfi_startproc 9728 @ args = 0, pretend = 0, frame = 0 9729 @ frame_needed = 0, uses_anonymous_args = 0 4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9730 .loc 1 4518 1 is_stmt 0 view .LVU3473 9731 0000 08B5 push {r3, lr} 9732 .LCFI106: 9733 .cfi_def_cfa_offset 8 9734 .cfi_offset 3, -8 9735 .cfi_offset 14, -4 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9736 .loc 1 4519 3 is_stmt 1 view .LVU3474 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9737 .loc 1 4519 11 is_stmt 0 view .LVU3475 9738 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9739 .loc 1 4519 6 view .LVU3476 9740 0006 202B cmp r3, #32 9741 0008 01D0 beq .L616 4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9742 .loc 1 4531 12 view .LVU3477 9743 000a 0220 movs r0, #2 9744 .LVL691: 9745 .L613: 4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9746 .loc 1 4533 1 view .LVU3478 9747 000c 08BD pop {r3, pc} 9748 .LVL692: 9749 .L616: 4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9750 .loc 1 4521 5 is_stmt 1 view .LVU3479 4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9751 .loc 1 4521 17 is_stmt 0 view .LVU3480 9752 000e 2823 movs r3, #40 9753 0010 80F84130 strb r3, [r0, #65] 4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9754 .loc 1 4522 5 is_stmt 1 view .LVU3481 4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 361 9755 .loc 1 4522 19 is_stmt 0 view .LVU3482 9756 0014 034B ldr r3, .L617 9757 0016 4363 str r3, [r0, #52] 4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9758 .loc 1 4525 5 is_stmt 1 view .LVU3483 9759 0018 4FF40041 mov r1, #32768 9760 001c FFF7FEFF bl I2C_Enable_IRQ 9761 .LVL693: 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9762 .loc 1 4527 5 view .LVU3484 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9763 .loc 1 4527 12 is_stmt 0 view .LVU3485 9764 0020 0020 movs r0, #0 9765 0022 F3E7 b .L613 9766 .L618: 9767 .align 2 9768 .L617: 9769 0024 00000000 .word I2C_Slave_ISR_IT 9770 .cfi_endproc 9771 .LFE360: 9773 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9774 .align 1 9775 .global HAL_I2C_DisableListen_IT 9776 .syntax unified 9777 .thumb 9778 .thumb_func 9780 HAL_I2C_DisableListen_IT: 9781 .LVL694: 9782 .LFB361: 4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9783 .loc 1 4542 1 is_stmt 1 view -0 9784 .cfi_startproc 9785 @ args = 0, pretend = 0, frame = 0 9786 @ frame_needed = 0, uses_anonymous_args = 0 4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9787 .loc 1 4544 3 view .LVU3487 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9788 .loc 1 4547 3 view .LVU3488 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9789 .loc 1 4547 11 is_stmt 0 view .LVU3489 9790 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9791 .loc 1 4547 6 view .LVU3490 9792 0004 282B cmp r3, #40 9793 0006 01D0 beq .L626 4562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9794 .loc 1 4562 12 view .LVU3491 9795 0008 0220 movs r0, #2 9796 .LVL695: 4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9797 .loc 1 4564 1 view .LVU3492 9798 000a 7047 bx lr 9799 .LVL696: 9800 .L626: 4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9801 .loc 1 4542 1 view .LVU3493 9802 000c 10B5 push {r4, lr} ARM GAS /tmp/ccDmmuIk.s page 362 9803 .LCFI107: 9804 .cfi_def_cfa_offset 8 9805 .cfi_offset 4, -8 9806 .cfi_offset 14, -4 4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9807 .loc 1 4549 5 is_stmt 1 view .LVU3494 4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9808 .loc 1 4549 26 is_stmt 0 view .LVU3495 9809 000e 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9810 .LVL697: 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9811 .loc 1 4550 5 is_stmt 1 view .LVU3496 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9812 .loc 1 4550 48 is_stmt 0 view .LVU3497 9813 0012 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9814 .loc 1 4550 31 view .LVU3498 9815 0016 02F00302 and r2, r2, #3 9816 .LVL698: 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9817 .loc 1 4550 31 view .LVU3499 9818 001a 1343 orrs r3, r3, r2 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9819 .loc 1 4550 25 view .LVU3500 9820 001c 0363 str r3, [r0, #48] 4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9821 .loc 1 4551 5 is_stmt 1 view .LVU3501 4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9822 .loc 1 4551 17 is_stmt 0 view .LVU3502 9823 001e 2023 movs r3, #32 9824 0020 80F84130 strb r3, [r0, #65] 4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9825 .loc 1 4552 5 is_stmt 1 view .LVU3503 4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9826 .loc 1 4552 16 is_stmt 0 view .LVU3504 9827 0024 0024 movs r4, #0 9828 0026 80F84240 strb r4, [r0, #66] 4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9829 .loc 1 4553 5 is_stmt 1 view .LVU3505 4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9830 .loc 1 4553 19 is_stmt 0 view .LVU3506 9831 002a 4463 str r4, [r0, #52] 4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9832 .loc 1 4556 5 is_stmt 1 view .LVU3507 9833 002c 4FF40041 mov r1, #32768 9834 0030 FFF7FEFF bl I2C_Disable_IRQ 9835 .LVL699: 4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9836 .loc 1 4558 5 view .LVU3508 4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9837 .loc 1 4558 12 is_stmt 0 view .LVU3509 9838 0034 2046 mov r0, r4 4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9839 .loc 1 4564 1 view .LVU3510 9840 0036 10BD pop {r4, pc} 9841 .cfi_endproc 9842 .LFE361: ARM GAS /tmp/ccDmmuIk.s page 363 9844 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9845 .align 1 9846 .global HAL_I2C_Master_Abort_IT 9847 .syntax unified 9848 .thumb 9849 .thumb_func 9851 HAL_I2C_Master_Abort_IT: 9852 .LVL700: 9853 .LFB362: 4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9854 .loc 1 4575 1 is_stmt 1 view -0 9855 .cfi_startproc 9856 @ args = 0, pretend = 0, frame = 0 9857 @ frame_needed = 0, uses_anonymous_args = 0 4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9858 .loc 1 4575 1 is_stmt 0 view .LVU3512 9859 0000 30B5 push {r4, r5, lr} 9860 .LCFI108: 9861 .cfi_def_cfa_offset 12 9862 .cfi_offset 4, -12 9863 .cfi_offset 5, -8 9864 .cfi_offset 14, -4 9865 0002 83B0 sub sp, sp, #12 9866 .LCFI109: 9867 .cfi_def_cfa_offset 24 9868 0004 0446 mov r4, r0 9869 0006 0D46 mov r5, r1 4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9870 .loc 1 4576 3 is_stmt 1 view .LVU3513 4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9871 .loc 1 4576 23 is_stmt 0 view .LVU3514 9872 0008 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9873 .LVL701: 4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9874 .loc 1 4578 3 is_stmt 1 view .LVU3515 4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9875 .loc 1 4578 6 is_stmt 0 view .LVU3516 9876 000c 102B cmp r3, #16 9877 000e 02D0 beq .L628 9878 0010 DAB2 uxtb r2, r3 4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9879 .loc 1 4578 41 discriminator 1 view .LVU3517 9880 0012 402A cmp r2, #64 9881 0014 32D1 bne .L632 9882 .L628: 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9883 .loc 1 4581 5 is_stmt 1 view .LVU3518 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9884 .loc 1 4581 5 view .LVU3519 9885 0016 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9886 .LVL702: 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9887 .loc 1 4581 5 is_stmt 0 view .LVU3520 9888 001a 012B cmp r3, #1 9889 001c 30D0 beq .L633 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9890 .loc 1 4581 5 is_stmt 1 discriminator 2 view .LVU3521 ARM GAS /tmp/ccDmmuIk.s page 364 9891 001e 0123 movs r3, #1 9892 0020 84F84030 strb r3, [r4, #64] 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9893 .loc 1 4581 5 view .LVU3522 4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9894 .loc 1 4584 5 view .LVU3523 4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9895 .loc 1 4584 13 is_stmt 0 view .LVU3524 9896 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9897 .loc 1 4584 8 view .LVU3525 9898 0028 212B cmp r3, #33 9899 002a 19D0 beq .L635 4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9900 .loc 1 4589 10 is_stmt 1 view .LVU3526 4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9901 .loc 1 4589 18 is_stmt 0 view .LVU3527 9902 002c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9903 .loc 1 4589 13 view .LVU3528 9904 0030 222B cmp r3, #34 9905 0032 1CD0 beq .L636 9906 .LVL703: 9907 .L631: 4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9908 .loc 1 4597 5 is_stmt 1 view .LVU3529 4600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9909 .loc 1 4600 5 view .LVU3530 4600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9910 .loc 1 4600 17 is_stmt 0 view .LVU3531 9911 0034 6023 movs r3, #96 9912 0036 84F84130 strb r3, [r4, #65] 4604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9913 .loc 1 4604 5 is_stmt 1 view .LVU3532 9914 003a 124B ldr r3, .L637 9915 003c 0093 str r3, [sp] 9916 003e 4FF00073 mov r3, #33554432 9917 0042 0122 movs r2, #1 9918 0044 2946 mov r1, r5 9919 0046 2046 mov r0, r4 9920 0048 FFF7FEFF bl I2C_TransferConfig 9921 .LVL704: 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9922 .loc 1 4607 5 view .LVU3533 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9923 .loc 1 4607 5 view .LVU3534 9924 004c 0025 movs r5, #0 9925 .LVL705: 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9926 .loc 1 4607 5 is_stmt 0 view .LVU3535 9927 004e 84F84050 strb r5, [r4, #64] 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9928 .loc 1 4607 5 is_stmt 1 view .LVU3536 4612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9929 .loc 1 4612 5 view .LVU3537 9930 0052 2021 movs r1, #32 9931 0054 2046 mov r0, r4 ARM GAS /tmp/ccDmmuIk.s page 365 9932 0056 FFF7FEFF bl I2C_Enable_IRQ 9933 .LVL706: 4614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9934 .loc 1 4614 5 view .LVU3538 4614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9935 .loc 1 4614 12 is_stmt 0 view .LVU3539 9936 005a 2846 mov r0, r5 9937 .L629: 4622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9938 .loc 1 4622 1 view .LVU3540 9939 005c 03B0 add sp, sp, #12 9940 .LCFI110: 9941 .cfi_remember_state 9942 .cfi_def_cfa_offset 12 9943 @ sp needed 9944 005e 30BD pop {r4, r5, pc} 9945 .LVL707: 9946 .L635: 9947 .LCFI111: 9948 .cfi_restore_state 4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9949 .loc 1 4586 7 is_stmt 1 view .LVU3541 9950 0060 0121 movs r1, #1 9951 .LVL708: 4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9952 .loc 1 4586 7 is_stmt 0 view .LVU3542 9953 0062 2046 mov r0, r4 9954 .LVL709: 4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9955 .loc 1 4586 7 view .LVU3543 9956 0064 FFF7FEFF bl I2C_Disable_IRQ 9957 .LVL710: 4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9958 .loc 1 4587 7 is_stmt 1 view .LVU3544 4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9959 .loc 1 4587 27 is_stmt 0 view .LVU3545 9960 0068 1123 movs r3, #17 9961 006a 2363 str r3, [r4, #48] 9962 006c E2E7 b .L631 9963 .LVL711: 9964 .L636: 4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9965 .loc 1 4591 7 is_stmt 1 view .LVU3546 9966 006e 0221 movs r1, #2 9967 .LVL712: 4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9968 .loc 1 4591 7 is_stmt 0 view .LVU3547 9969 0070 2046 mov r0, r4 9970 .LVL713: 4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9971 .loc 1 4591 7 view .LVU3548 9972 0072 FFF7FEFF bl I2C_Disable_IRQ 9973 .LVL714: 4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9974 .loc 1 4592 7 is_stmt 1 view .LVU3549 4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9975 .loc 1 4592 27 is_stmt 0 view .LVU3550 ARM GAS /tmp/ccDmmuIk.s page 366 9976 0076 1223 movs r3, #18 9977 0078 2363 str r3, [r4, #48] 9978 007a DBE7 b .L631 9979 .LVL715: 9980 .L632: 4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9981 .loc 1 4620 12 view .LVU3551 9982 007c 0120 movs r0, #1 9983 .LVL716: 4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9984 .loc 1 4620 12 view .LVU3552 9985 007e EDE7 b .L629 9986 .LVL717: 9987 .L633: 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9988 .loc 1 4581 5 discriminator 1 view .LVU3553 9989 0080 0220 movs r0, #2 9990 .LVL718: 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9991 .loc 1 4581 5 discriminator 1 view .LVU3554 9992 0082 EBE7 b .L629 9993 .L638: 9994 .align 2 9995 .L637: 9996 0084 00400080 .word -2147467264 9997 .cfi_endproc 9998 .LFE362: 10000 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 10001 .align 1 10002 .global HAL_I2C_EV_IRQHandler 10003 .syntax unified 10004 .thumb 10005 .thumb_func 10007 HAL_I2C_EV_IRQHandler: 10008 .LVL719: 10009 .LFB363: 4639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 10010 .loc 1 4639 1 is_stmt 1 view -0 10011 .cfi_startproc 10012 @ args = 0, pretend = 0, frame = 0 10013 @ frame_needed = 0, uses_anonymous_args = 0 4639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 10014 .loc 1 4639 1 is_stmt 0 view .LVU3556 10015 0000 08B5 push {r3, lr} 10016 .LCFI112: 10017 .cfi_def_cfa_offset 8 10018 .cfi_offset 3, -8 10019 .cfi_offset 14, -4 4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10020 .loc 1 4641 3 is_stmt 1 view .LVU3557 4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10021 .loc 1 4641 24 is_stmt 0 view .LVU3558 10022 0002 0368 ldr r3, [r0] 4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10023 .loc 1 4641 12 view .LVU3559 10024 0004 9969 ldr r1, [r3, #24] 10025 .LVL720: ARM GAS /tmp/ccDmmuIk.s page 367 4642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10026 .loc 1 4642 3 is_stmt 1 view .LVU3560 4642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10027 .loc 1 4642 12 is_stmt 0 view .LVU3561 10028 0006 1A68 ldr r2, [r3] 10029 .LVL721: 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10030 .loc 1 4645 3 is_stmt 1 view .LVU3562 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10031 .loc 1 4645 11 is_stmt 0 view .LVU3563 10032 0008 436B ldr r3, [r0, #52] 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10033 .loc 1 4645 6 view .LVU3564 10034 000a 03B1 cbz r3, .L639 4647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10035 .loc 1 4647 5 is_stmt 1 view .LVU3565 10036 000c 9847 blx r3 10037 .LVL722: 10038 .L639: 4649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10039 .loc 1 4649 1 is_stmt 0 view .LVU3566 10040 000e 08BD pop {r3, pc} 10041 .cfi_endproc 10042 .LFE363: 10044 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 10045 .align 1 10046 .weak HAL_I2C_MasterTxCpltCallback 10047 .syntax unified 10048 .thumb 10049 .thumb_func 10051 HAL_I2C_MasterTxCpltCallback: 10052 .LVL723: 10053 .LFB365: 4710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10054 .loc 1 4710 1 is_stmt 1 view -0 10055 .cfi_startproc 10056 @ args = 0, pretend = 0, frame = 0 10057 @ frame_needed = 0, uses_anonymous_args = 0 10058 @ link register save eliminated. 4712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10059 .loc 1 4712 3 view .LVU3568 4717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10060 .loc 1 4717 1 is_stmt 0 view .LVU3569 10061 0000 7047 bx lr 10062 .cfi_endproc 10063 .LFE365: 10065 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 10066 .align 1 10067 .weak HAL_I2C_MasterRxCpltCallback 10068 .syntax unified 10069 .thumb 10070 .thumb_func 10072 HAL_I2C_MasterRxCpltCallback: 10073 .LVL724: 10074 .LFB366: 4726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10075 .loc 1 4726 1 is_stmt 1 view -0 ARM GAS /tmp/ccDmmuIk.s page 368 10076 .cfi_startproc 10077 @ args = 0, pretend = 0, frame = 0 10078 @ frame_needed = 0, uses_anonymous_args = 0 10079 @ link register save eliminated. 4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10080 .loc 1 4728 3 view .LVU3571 4733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10081 .loc 1 4733 1 is_stmt 0 view .LVU3572 10082 0000 7047 bx lr 10083 .cfi_endproc 10084 .LFE366: 10086 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 10087 .align 1 10088 .syntax unified 10089 .thumb 10090 .thumb_func 10092 I2C_ITMasterSeqCplt: 10093 .LVL725: 10094 .LFB387: 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 10095 .loc 1 6005 1 is_stmt 1 view -0 10096 .cfi_startproc 10097 @ args = 0, pretend = 0, frame = 0 10098 @ frame_needed = 0, uses_anonymous_args = 0 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 10099 .loc 1 6005 1 is_stmt 0 view .LVU3574 10100 0000 38B5 push {r3, r4, r5, lr} 10101 .LCFI113: 10102 .cfi_def_cfa_offset 16 10103 .cfi_offset 3, -16 10104 .cfi_offset 4, -12 10105 .cfi_offset 5, -8 10106 .cfi_offset 14, -4 10107 0002 0446 mov r4, r0 6007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10108 .loc 1 6007 3 is_stmt 1 view .LVU3575 6007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10109 .loc 1 6007 14 is_stmt 0 view .LVU3576 10110 0004 0023 movs r3, #0 10111 0006 80F84230 strb r3, [r0, #66] 6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10112 .loc 1 6011 3 is_stmt 1 view .LVU3577 6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10113 .loc 1 6011 11 is_stmt 0 view .LVU3578 10114 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10115 .loc 1 6011 6 view .LVU3579 10116 000e 212B cmp r3, #33 10117 0010 0FD0 beq .L648 6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10118 .loc 1 6033 5 is_stmt 1 view .LVU3580 6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10119 .loc 1 6033 25 is_stmt 0 view .LVU3581 10120 0012 2023 movs r3, #32 10121 0014 80F84130 strb r3, [r0, #65] 6034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10122 .loc 1 6034 5 is_stmt 1 view .LVU3582 ARM GAS /tmp/ccDmmuIk.s page 369 6034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10123 .loc 1 6034 25 is_stmt 0 view .LVU3583 10124 0018 1223 movs r3, #18 10125 001a 0363 str r3, [r0, #48] 6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10126 .loc 1 6035 5 is_stmt 1 view .LVU3584 6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10127 .loc 1 6035 25 is_stmt 0 view .LVU3585 10128 001c 0025 movs r5, #0 10129 001e 4563 str r5, [r0, #52] 6038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10130 .loc 1 6038 5 is_stmt 1 view .LVU3586 10131 0020 0221 movs r1, #2 10132 0022 FFF7FEFF bl I2C_Disable_IRQ 10133 .LVL726: 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10134 .loc 1 6041 5 view .LVU3587 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10135 .loc 1 6041 5 view .LVU3588 10136 0026 84F84050 strb r5, [r4, #64] 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10137 .loc 1 6041 5 view .LVU3589 6047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10138 .loc 1 6047 5 view .LVU3590 10139 002a 2046 mov r0, r4 10140 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 10141 .LVL727: 10142 .L644: 6050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10143 .loc 1 6050 1 is_stmt 0 view .LVU3591 10144 0030 38BD pop {r3, r4, r5, pc} 10145 .LVL728: 10146 .L648: 6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10147 .loc 1 6013 5 is_stmt 1 view .LVU3592 6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10148 .loc 1 6013 25 is_stmt 0 view .LVU3593 10149 0032 2023 movs r3, #32 10150 0034 80F84130 strb r3, [r0, #65] 6014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10151 .loc 1 6014 5 is_stmt 1 view .LVU3594 6014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10152 .loc 1 6014 25 is_stmt 0 view .LVU3595 10153 0038 1123 movs r3, #17 10154 003a 0363 str r3, [r0, #48] 6015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10155 .loc 1 6015 5 is_stmt 1 view .LVU3596 6015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10156 .loc 1 6015 25 is_stmt 0 view .LVU3597 10157 003c 0025 movs r5, #0 10158 003e 4563 str r5, [r0, #52] 6018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10159 .loc 1 6018 5 is_stmt 1 view .LVU3598 10160 0040 0121 movs r1, #1 10161 0042 FFF7FEFF bl I2C_Disable_IRQ 10162 .LVL729: 6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 370 10163 .loc 1 6021 5 view .LVU3599 6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10164 .loc 1 6021 5 view .LVU3600 10165 0046 84F84050 strb r5, [r4, #64] 6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10166 .loc 1 6021 5 view .LVU3601 6027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10167 .loc 1 6027 5 view .LVU3602 10168 004a 2046 mov r0, r4 10169 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10170 .LVL730: 10171 0050 EEE7 b .L644 10172 .cfi_endproc 10173 .LFE387: 10175 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10176 .align 1 10177 .weak HAL_I2C_SlaveTxCpltCallback 10178 .syntax unified 10179 .thumb 10180 .thumb_func 10182 HAL_I2C_SlaveTxCpltCallback: 10183 .LVL731: 10184 .LFB367: 4741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10185 .loc 1 4741 1 view -0 10186 .cfi_startproc 10187 @ args = 0, pretend = 0, frame = 0 10188 @ frame_needed = 0, uses_anonymous_args = 0 10189 @ link register save eliminated. 4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10190 .loc 1 4743 3 view .LVU3604 4748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10191 .loc 1 4748 1 is_stmt 0 view .LVU3605 10192 0000 7047 bx lr 10193 .cfi_endproc 10194 .LFE367: 10196 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10197 .align 1 10198 .weak HAL_I2C_SlaveRxCpltCallback 10199 .syntax unified 10200 .thumb 10201 .thumb_func 10203 HAL_I2C_SlaveRxCpltCallback: 10204 .LVL732: 10205 .LFB368: 4757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10206 .loc 1 4757 1 is_stmt 1 view -0 10207 .cfi_startproc 10208 @ args = 0, pretend = 0, frame = 0 10209 @ frame_needed = 0, uses_anonymous_args = 0 10210 @ link register save eliminated. 4759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10211 .loc 1 4759 3 view .LVU3607 4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10212 .loc 1 4764 1 is_stmt 0 view .LVU3608 10213 0000 7047 bx lr 10214 .cfi_endproc ARM GAS /tmp/ccDmmuIk.s page 371 10215 .LFE368: 10217 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 10218 .align 1 10219 .syntax unified 10220 .thumb 10221 .thumb_func 10223 I2C_ITSlaveSeqCplt: 10224 .LVL733: 10225 .LFB388: 6058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10226 .loc 1 6058 1 is_stmt 1 view -0 10227 .cfi_startproc 10228 @ args = 0, pretend = 0, frame = 0 10229 @ frame_needed = 0, uses_anonymous_args = 0 6058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10230 .loc 1 6058 1 is_stmt 0 view .LVU3610 10231 0000 10B5 push {r4, lr} 10232 .LCFI114: 10233 .cfi_def_cfa_offset 8 10234 .cfi_offset 4, -8 10235 .cfi_offset 14, -4 10236 0002 0446 mov r4, r0 6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10237 .loc 1 6059 3 is_stmt 1 view .LVU3611 6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10238 .loc 1 6059 26 is_stmt 0 view .LVU3612 10239 0004 0368 ldr r3, [r0] 6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10240 .loc 1 6059 12 view .LVU3613 10241 0006 1A68 ldr r2, [r3] 10242 .LVL734: 6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10243 .loc 1 6062 3 is_stmt 1 view .LVU3614 6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10244 .loc 1 6062 14 is_stmt 0 view .LVU3615 10245 0008 0021 movs r1, #0 10246 000a 80F84210 strb r1, [r0, #66] 6065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10247 .loc 1 6065 3 is_stmt 1 view .LVU3616 6065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10248 .loc 1 6065 6 is_stmt 0 view .LVU3617 10249 000e 12F4804F tst r2, #16384 10250 0012 0CD0 beq .L652 6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10251 .loc 1 6068 5 is_stmt 1 view .LVU3618 6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10252 .loc 1 6068 19 is_stmt 0 view .LVU3619 10253 0014 1A68 ldr r2, [r3] 10254 .LVL735: 6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10255 .loc 1 6068 25 view .LVU3620 10256 0016 22F48042 bic r2, r2, #16384 10257 001a 1A60 str r2, [r3] 10258 .L653: 6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10259 .loc 1 6078 3 is_stmt 1 view .LVU3621 6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 372 10260 .loc 1 6080 3 view .LVU3622 6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10261 .loc 1 6080 11 is_stmt 0 view .LVU3623 10262 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10263 .loc 1 6080 6 view .LVU3624 10264 0020 292B cmp r3, #41 10265 0022 0CD0 beq .L657 6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10266 .loc 1 6100 8 is_stmt 1 view .LVU3625 6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10267 .loc 1 6100 16 is_stmt 0 view .LVU3626 10268 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10269 .loc 1 6100 11 view .LVU3627 10270 0028 2A2B cmp r3, #42 10271 002a 18D0 beq .L658 10272 .LVL736: 10273 .L651: 6123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10274 .loc 1 6123 1 view .LVU3628 10275 002c 10BD pop {r4, pc} 10276 .LVL737: 10277 .L652: 6070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10278 .loc 1 6070 8 is_stmt 1 view .LVU3629 6070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10279 .loc 1 6070 11 is_stmt 0 view .LVU3630 10280 002e 12F4004F tst r2, #32768 10281 0032 F3D0 beq .L653 6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10282 .loc 1 6073 5 is_stmt 1 view .LVU3631 6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10283 .loc 1 6073 19 is_stmt 0 view .LVU3632 10284 0034 1A68 ldr r2, [r3] 10285 .LVL738: 6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10286 .loc 1 6073 25 view .LVU3633 10287 0036 22F40042 bic r2, r2, #32768 10288 003a 1A60 str r2, [r3] 10289 003c EEE7 b .L653 10290 .L657: 6083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10291 .loc 1 6083 5 is_stmt 1 view .LVU3634 6083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10292 .loc 1 6083 25 is_stmt 0 view .LVU3635 10293 003e 2823 movs r3, #40 10294 0040 84F84130 strb r3, [r4, #65] 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10295 .loc 1 6084 5 is_stmt 1 view .LVU3636 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10296 .loc 1 6084 25 is_stmt 0 view .LVU3637 10297 0044 2123 movs r3, #33 10298 0046 2363 str r3, [r4, #48] 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10299 .loc 1 6087 5 is_stmt 1 view .LVU3638 10300 0048 0121 movs r1, #1 ARM GAS /tmp/ccDmmuIk.s page 373 10301 004a 2046 mov r0, r4 10302 .LVL739: 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10303 .loc 1 6087 5 is_stmt 0 view .LVU3639 10304 004c FFF7FEFF bl I2C_Disable_IRQ 10305 .LVL740: 6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10306 .loc 1 6090 5 is_stmt 1 view .LVU3640 6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10307 .loc 1 6090 5 view .LVU3641 10308 0050 0023 movs r3, #0 10309 0052 84F84030 strb r3, [r4, #64] 6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10310 .loc 1 6090 5 view .LVU3642 6096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10311 .loc 1 6096 5 view .LVU3643 10312 0056 2046 mov r0, r4 10313 0058 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10314 .LVL741: 10315 005c E6E7 b .L651 10316 .LVL742: 10317 .L658: 6103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10318 .loc 1 6103 5 view .LVU3644 6103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10319 .loc 1 6103 25 is_stmt 0 view .LVU3645 10320 005e 2823 movs r3, #40 10321 0060 84F84130 strb r3, [r4, #65] 6104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10322 .loc 1 6104 5 is_stmt 1 view .LVU3646 6104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10323 .loc 1 6104 25 is_stmt 0 view .LVU3647 10324 0064 2223 movs r3, #34 10325 0066 2363 str r3, [r4, #48] 6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10326 .loc 1 6107 5 is_stmt 1 view .LVU3648 10327 0068 0221 movs r1, #2 10328 006a 2046 mov r0, r4 10329 .LVL743: 6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10330 .loc 1 6107 5 is_stmt 0 view .LVU3649 10331 006c FFF7FEFF bl I2C_Disable_IRQ 10332 .LVL744: 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10333 .loc 1 6110 5 is_stmt 1 view .LVU3650 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10334 .loc 1 6110 5 view .LVU3651 10335 0070 0023 movs r3, #0 10336 0072 84F84030 strb r3, [r4, #64] 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10337 .loc 1 6110 5 view .LVU3652 6116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10338 .loc 1 6116 5 view .LVU3653 10339 0076 2046 mov r0, r4 10340 0078 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10341 .LVL745: 6122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 374 10342 .loc 1 6122 3 view .LVU3654 6123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10343 .loc 1 6123 1 is_stmt 0 view .LVU3655 10344 007c D6E7 b .L651 10345 .cfi_endproc 10346 .LFE388: 10348 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10349 .align 1 10350 .syntax unified 10351 .thumb 10352 .thumb_func 10354 I2C_DMASlaveTransmitCplt: 10355 .LVL746: 10356 .LFB396: 6783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10357 .loc 1 6783 1 is_stmt 1 view -0 10358 .cfi_startproc 10359 @ args = 0, pretend = 0, frame = 0 10360 @ frame_needed = 0, uses_anonymous_args = 0 6783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10361 .loc 1 6783 1 is_stmt 0 view .LVU3657 10362 0000 08B5 push {r3, lr} 10363 .LCFI115: 10364 .cfi_def_cfa_offset 8 10365 .cfi_offset 3, -8 10366 .cfi_offset 14, -4 6785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10367 .loc 1 6785 3 is_stmt 1 view .LVU3658 6785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10368 .loc 1 6785 22 is_stmt 0 view .LVU3659 10369 0002 806A ldr r0, [r0, #40] 10370 .LVL747: 6786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10371 .loc 1 6786 3 is_stmt 1 view .LVU3660 6786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10372 .loc 1 6786 12 is_stmt 0 view .LVU3661 10373 0004 C36A ldr r3, [r0, #44] 10374 .LVL748: 6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10375 .loc 1 6788 3 is_stmt 1 view .LVU3662 6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10376 .loc 1 6788 6 is_stmt 0 view .LVU3663 10377 0006 B3F1807F cmp r3, #16777216 10378 000a 00D0 beq .L660 6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10379 .loc 1 6788 38 discriminator 1 view .LVU3664 10380 000c 33B9 cbnz r3, .L659 10381 .L660: 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10382 .loc 1 6791 5 is_stmt 1 view .LVU3665 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10383 .loc 1 6791 9 is_stmt 0 view .LVU3666 10384 000e 0268 ldr r2, [r0] 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10385 .loc 1 6791 19 view .LVU3667 10386 0010 1368 ldr r3, [r2] 10387 .LVL749: ARM GAS /tmp/ccDmmuIk.s page 375 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10388 .loc 1 6791 25 view .LVU3668 10389 0012 23F48043 bic r3, r3, #16384 10390 0016 1360 str r3, [r2] 6795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10391 .loc 1 6795 5 is_stmt 1 view .LVU3669 10392 0018 FFF7FEFF bl I2C_ITSlaveSeqCplt 10393 .LVL750: 10394 .L659: 6803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10395 .loc 1 6803 1 is_stmt 0 view .LVU3670 10396 001c 08BD pop {r3, pc} 10397 .cfi_endproc 10398 .LFE396: 10400 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 10401 .align 1 10402 .syntax unified 10403 .thumb 10404 .thumb_func 10406 I2C_DMASlaveReceiveCplt: 10407 .LVL751: 10408 .LFB398: 6863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10409 .loc 1 6863 1 is_stmt 1 view -0 10410 .cfi_startproc 10411 @ args = 0, pretend = 0, frame = 0 10412 @ frame_needed = 0, uses_anonymous_args = 0 6863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10413 .loc 1 6863 1 is_stmt 0 view .LVU3672 10414 0000 08B5 push {r3, lr} 10415 .LCFI116: 10416 .cfi_def_cfa_offset 8 10417 .cfi_offset 3, -8 10418 .cfi_offset 14, -4 6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10419 .loc 1 6865 3 is_stmt 1 view .LVU3673 6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10420 .loc 1 6865 22 is_stmt 0 view .LVU3674 10421 0002 806A ldr r0, [r0, #40] 10422 .LVL752: 6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10423 .loc 1 6866 3 is_stmt 1 view .LVU3675 6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10424 .loc 1 6866 12 is_stmt 0 view .LVU3676 10425 0004 C26A ldr r2, [r0, #44] 10426 .LVL753: 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10427 .loc 1 6868 3 is_stmt 1 view .LVU3677 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10428 .loc 1 6868 8 is_stmt 0 view .LVU3678 10429 0006 C36B ldr r3, [r0, #60] 10430 0008 1B68 ldr r3, [r3] 10431 000a 5B68 ldr r3, [r3, #4] 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10432 .loc 1 6868 6 view .LVU3679 10433 000c 13B9 cbnz r3, .L663 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) ARM GAS /tmp/ccDmmuIk.s page 376 10434 .loc 1 6868 53 discriminator 1 view .LVU3680 10435 000e 12F5803F cmn r2, #65536 10436 0012 00D1 bne .L666 10437 .LVL754: 10438 .L663: 6883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10439 .loc 1 6883 1 view .LVU3681 10440 0014 08BD pop {r3, pc} 10441 .LVL755: 10442 .L666: 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10443 .loc 1 6872 5 is_stmt 1 view .LVU3682 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10444 .loc 1 6872 9 is_stmt 0 view .LVU3683 10445 0016 0268 ldr r2, [r0] 10446 .LVL756: 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10447 .loc 1 6872 19 view .LVU3684 10448 0018 1368 ldr r3, [r2] 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10449 .loc 1 6872 25 view .LVU3685 10450 001a 23F40043 bic r3, r3, #32768 10451 001e 1360 str r3, [r2] 6875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10452 .loc 1 6875 5 is_stmt 1 view .LVU3686 10453 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt 10454 .LVL757: 6882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10455 .loc 1 6882 3 view .LVU3687 6883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10456 .loc 1 6883 1 is_stmt 0 view .LVU3688 10457 0024 F6E7 b .L663 10458 .cfi_endproc 10459 .LFE398: 10461 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10462 .align 1 10463 .weak HAL_I2C_AddrCallback 10464 .syntax unified 10465 .thumb 10466 .thumb_func 10468 HAL_I2C_AddrCallback: 10469 .LVL758: 10470 .LFB369: 4775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10471 .loc 1 4775 1 is_stmt 1 view -0 10472 .cfi_startproc 10473 @ args = 0, pretend = 0, frame = 0 10474 @ frame_needed = 0, uses_anonymous_args = 0 10475 @ link register save eliminated. 4777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(TransferDirection); 10476 .loc 1 4777 3 view .LVU3690 4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(AddrMatchCode); 10477 .loc 1 4778 3 view .LVU3691 4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10478 .loc 1 4779 3 view .LVU3692 4784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10479 .loc 1 4784 1 is_stmt 0 view .LVU3693 ARM GAS /tmp/ccDmmuIk.s page 377 10480 0000 7047 bx lr 10481 .cfi_endproc 10482 .LFE369: 10484 .section .text.I2C_ITAddrCplt,"ax",%progbits 10485 .align 1 10486 .syntax unified 10487 .thumb 10488 .thumb_func 10490 I2C_ITAddrCplt: 10491 .LVL759: 10492 .LFB386: 5910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; 10493 .loc 1 5910 1 is_stmt 1 view -0 10494 .cfi_startproc 10495 @ args = 0, pretend = 0, frame = 0 10496 @ frame_needed = 0, uses_anonymous_args = 0 5910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; 10497 .loc 1 5910 1 is_stmt 0 view .LVU3695 10498 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10499 .LCFI117: 10500 .cfi_def_cfa_offset 24 10501 .cfi_offset 3, -24 10502 .cfi_offset 4, -20 10503 .cfi_offset 5, -16 10504 .cfi_offset 6, -12 10505 .cfi_offset 7, -8 10506 .cfi_offset 14, -4 10507 0002 0446 mov r4, r0 5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t slaveaddrcode; 10508 .loc 1 5911 3 is_stmt 1 view .LVU3696 5912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd1code; 10509 .loc 1 5912 3 view .LVU3697 5913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd2code; 10510 .loc 1 5913 3 view .LVU3698 5914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10511 .loc 1 5914 3 view .LVU3699 5917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10512 .loc 1 5917 3 view .LVU3700 5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10513 .loc 1 5920 3 view .LVU3701 5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10514 .loc 1 5920 22 is_stmt 0 view .LVU3702 10515 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10516 .loc 1 5920 6 view .LVU3703 10517 0008 03F02803 and r3, r3, #40 10518 000c 282B cmp r3, #40 10519 000e 06D0 beq .L674 5992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10520 .loc 1 5992 5 is_stmt 1 view .LVU3704 10521 0010 0368 ldr r3, [r0] 10522 0012 0822 movs r2, #8 10523 0014 DA61 str r2, [r3, #28] 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10524 .loc 1 5995 5 view .LVU3705 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10525 .loc 1 5995 5 view .LVU3706 ARM GAS /tmp/ccDmmuIk.s page 378 10526 0016 0023 movs r3, #0 10527 0018 80F84030 strb r3, [r0, #64] 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10528 .loc 1 5995 5 discriminator 1 view .LVU3707 10529 .LVL760: 10530 .L668: 5997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10531 .loc 1 5997 1 is_stmt 0 view .LVU3708 10532 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10533 .LVL761: 10534 .L674: 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10535 .loc 1 5922 5 is_stmt 1 view .LVU3709 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10536 .loc 1 5922 25 is_stmt 0 view .LVU3710 10537 001e 0368 ldr r3, [r0] 10538 0020 9E69 ldr r6, [r3, #24] 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10539 .loc 1 5922 23 view .LVU3711 10540 0022 C6F30046 ubfx r6, r6, #16, #1 10541 .LVL762: 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10542 .loc 1 5923 5 is_stmt 1 view .LVU3712 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10543 .loc 1 5923 25 is_stmt 0 view .LVU3713 10544 0026 9A69 ldr r2, [r3, #24] 10545 0028 120C lsrs r2, r2, #16 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10546 .loc 1 5923 23 view .LVU3714 10547 002a 02F0FE05 and r5, r2, #254 10548 .LVL763: 5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10549 .loc 1 5924 5 is_stmt 1 view .LVU3715 5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10550 .loc 1 5924 25 is_stmt 0 view .LVU3716 10551 002e 9A68 ldr r2, [r3, #8] 5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10552 .loc 1 5924 23 view .LVU3717 10553 0030 C2F30902 ubfx r2, r2, #0, #10 10554 .LVL764: 5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10555 .loc 1 5925 5 is_stmt 1 view .LVU3718 5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10556 .loc 1 5925 25 is_stmt 0 view .LVU3719 10557 0034 DF68 ldr r7, [r3, #12] 5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10558 .loc 1 5925 23 view .LVU3720 10559 0036 07F0FE07 and r7, r7, #254 10560 .LVL765: 5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10561 .loc 1 5928 5 is_stmt 1 view .LVU3721 5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10562 .loc 1 5928 19 is_stmt 0 view .LVU3722 10563 003a C168 ldr r1, [r0, #12] 10564 .LVL766: 5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10565 .loc 1 5928 8 view .LVU3723 ARM GAS /tmp/ccDmmuIk.s page 379 10566 003c 0229 cmp r1, #2 10567 003e 22D1 bne .L670 5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10568 .loc 1 5930 7 is_stmt 1 view .LVU3724 5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10569 .loc 1 5930 44 is_stmt 0 view .LVU3725 10570 0040 85EAD215 eor r5, r5, r2, lsr #7 10571 .LVL767: 5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10572 .loc 1 5930 10 view .LVU3726 10573 0044 15F0060F tst r5, #6 10574 0048 10D1 bne .L671 5932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount++; 10575 .loc 1 5932 9 is_stmt 1 view .LVU3727 10576 .LVL768: 5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10577 .loc 1 5933 9 view .LVU3728 5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10578 .loc 1 5933 13 is_stmt 0 view .LVU3729 10579 004a 816C ldr r1, [r0, #72] 5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10580 .loc 1 5933 29 view .LVU3730 10581 004c 0131 adds r1, r1, #1 10582 004e 8164 str r1, [r0, #72] 5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10583 .loc 1 5934 9 is_stmt 1 view .LVU3731 5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10584 .loc 1 5934 17 is_stmt 0 view .LVU3732 10585 0050 816C ldr r1, [r0, #72] 5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10586 .loc 1 5934 12 view .LVU3733 10587 0052 0229 cmp r1, #2 10588 0054 E2D1 bne .L668 5937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10589 .loc 1 5937 11 is_stmt 1 view .LVU3734 5937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10590 .loc 1 5937 32 is_stmt 0 view .LVU3735 10591 0056 0021 movs r1, #0 10592 0058 8164 str r1, [r0, #72] 5940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10593 .loc 1 5940 11 is_stmt 1 view .LVU3736 10594 005a 0820 movs r0, #8 10595 .LVL769: 5940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10596 .loc 1 5940 11 is_stmt 0 view .LVU3737 10597 005c D861 str r0, [r3, #28] 5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10598 .loc 1 5943 11 is_stmt 1 view .LVU3738 5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10599 .loc 1 5943 11 view .LVU3739 10600 005e 84F84010 strb r1, [r4, #64] 5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10601 .loc 1 5943 11 view .LVU3740 5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10602 .loc 1 5949 11 view .LVU3741 10603 0062 3146 mov r1, r6 10604 0064 2046 mov r0, r4 ARM GAS /tmp/ccDmmuIk.s page 380 10605 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10606 .LVL770: 5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10607 .loc 1 5949 11 is_stmt 0 view .LVU3742 10608 006a D7E7 b .L668 10609 .LVL771: 10610 .L671: 5955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10611 .loc 1 5955 9 is_stmt 1 view .LVU3743 5958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10612 .loc 1 5958 9 view .LVU3744 10613 006c 4FF40041 mov r1, #32768 10614 0070 FFF7FEFF bl I2C_Disable_IRQ 10615 .LVL772: 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10616 .loc 1 5961 9 view .LVU3745 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10617 .loc 1 5961 9 view .LVU3746 10618 0074 0023 movs r3, #0 10619 0076 84F84030 strb r3, [r4, #64] 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10620 .loc 1 5961 9 view .LVU3747 5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10621 .loc 1 5967 9 view .LVU3748 10622 007a 3A46 mov r2, r7 10623 007c 3146 mov r1, r6 10624 007e 2046 mov r0, r4 10625 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10626 .LVL773: 10627 0084 CAE7 b .L668 10628 .LVL774: 10629 .L670: 5975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10630 .loc 1 5975 7 view .LVU3749 10631 0086 4FF40041 mov r1, #32768 10632 008a FFF7FEFF bl I2C_Disable_IRQ 10633 .LVL775: 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10634 .loc 1 5978 7 view .LVU3750 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10635 .loc 1 5978 7 view .LVU3751 10636 008e 0023 movs r3, #0 10637 0090 84F84030 strb r3, [r4, #64] 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10638 .loc 1 5978 7 view .LVU3752 5984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10639 .loc 1 5984 7 view .LVU3753 10640 0094 2A46 mov r2, r5 10641 0096 3146 mov r1, r6 10642 0098 2046 mov r0, r4 10643 009a FFF7FEFF bl HAL_I2C_AddrCallback 10644 .LVL776: 10645 009e BDE7 b .L668 10646 .cfi_endproc 10647 .LFE386: 10649 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10650 .align 1 ARM GAS /tmp/ccDmmuIk.s page 381 10651 .weak HAL_I2C_ListenCpltCallback 10652 .syntax unified 10653 .thumb 10654 .thumb_func 10656 HAL_I2C_ListenCpltCallback: 10657 .LVL777: 10658 .LFB370: 4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10659 .loc 1 4793 1 view -0 10660 .cfi_startproc 10661 @ args = 0, pretend = 0, frame = 0 10662 @ frame_needed = 0, uses_anonymous_args = 0 10663 @ link register save eliminated. 4795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10664 .loc 1 4795 3 view .LVU3755 4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10665 .loc 1 4800 1 is_stmt 0 view .LVU3756 10666 0000 7047 bx lr 10667 .cfi_endproc 10668 .LFE370: 10670 .section .text.I2C_ITListenCplt,"ax",%progbits 10671 .align 1 10672 .syntax unified 10673 .thumb 10674 .thumb_func 10676 I2C_ITListenCplt: 10677 .LVL778: 10678 .LFB391: 6491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 10679 .loc 1 6491 1 is_stmt 1 view -0 10680 .cfi_startproc 10681 @ args = 0, pretend = 0, frame = 0 10682 @ frame_needed = 0, uses_anonymous_args = 0 6491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 10683 .loc 1 6491 1 is_stmt 0 view .LVU3758 10684 0000 10B5 push {r4, lr} 10685 .LCFI118: 10686 .cfi_def_cfa_offset 8 10687 .cfi_offset 4, -8 10688 .cfi_offset 14, -4 10689 0002 0446 mov r4, r0 6493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10690 .loc 1 6493 3 is_stmt 1 view .LVU3759 6493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10691 .loc 1 6493 21 is_stmt 0 view .LVU3760 10692 0004 174B ldr r3, .L679 10693 0006 C362 str r3, [r0, #44] 6494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10694 .loc 1 6494 3 is_stmt 1 view .LVU3761 6494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10695 .loc 1 6494 23 is_stmt 0 view .LVU3762 10696 0008 0023 movs r3, #0 10697 000a 0363 str r3, [r0, #48] 6495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10698 .loc 1 6495 3 is_stmt 1 view .LVU3763 6495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10699 .loc 1 6495 15 is_stmt 0 view .LVU3764 ARM GAS /tmp/ccDmmuIk.s page 382 10700 000c 2022 movs r2, #32 10701 000e 80F84120 strb r2, [r0, #65] 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10702 .loc 1 6496 3 is_stmt 1 view .LVU3765 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10703 .loc 1 6496 14 is_stmt 0 view .LVU3766 10704 0012 80F84230 strb r3, [r0, #66] 6497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10705 .loc 1 6497 3 is_stmt 1 view .LVU3767 6497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10706 .loc 1 6497 17 is_stmt 0 view .LVU3768 10707 0016 4363 str r3, [r0, #52] 6500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10708 .loc 1 6500 3 is_stmt 1 view .LVU3769 6500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10709 .loc 1 6500 6 is_stmt 0 view .LVU3770 10710 0018 11F0040F tst r1, #4 10711 001c 13D0 beq .L677 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10712 .loc 1 6503 5 is_stmt 1 view .LVU3771 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10713 .loc 1 6503 36 is_stmt 0 view .LVU3772 10714 001e 0368 ldr r3, [r0] 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10715 .loc 1 6503 46 view .LVU3773 10716 0020 5A6A ldr r2, [r3, #36] 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10717 .loc 1 6503 10 view .LVU3774 10718 0022 436A ldr r3, [r0, #36] 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10719 .loc 1 6503 21 view .LVU3775 10720 0024 1A70 strb r2, [r3] 6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10721 .loc 1 6506 5 is_stmt 1 view .LVU3776 6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10722 .loc 1 6506 9 is_stmt 0 view .LVU3777 10723 0026 436A ldr r3, [r0, #36] 6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10724 .loc 1 6506 19 view .LVU3778 10725 0028 0133 adds r3, r3, #1 10726 002a 4362 str r3, [r0, #36] 6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10727 .loc 1 6508 5 is_stmt 1 view .LVU3779 6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10728 .loc 1 6508 14 is_stmt 0 view .LVU3780 10729 002c 038D ldrh r3, [r0, #40] 6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10730 .loc 1 6508 8 view .LVU3781 10731 002e 53B1 cbz r3, .L677 6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 10732 .loc 1 6510 7 is_stmt 1 view .LVU3782 6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 10733 .loc 1 6510 21 is_stmt 0 view .LVU3783 10734 0030 013B subs r3, r3, #1 10735 0032 0385 strh r3, [r0, #40] @ movhi 6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10736 .loc 1 6511 7 is_stmt 1 view .LVU3784 ARM GAS /tmp/ccDmmuIk.s page 383 6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10737 .loc 1 6511 11 is_stmt 0 view .LVU3785 10738 0034 438D ldrh r3, [r0, #42] 10739 0036 9BB2 uxth r3, r3 6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10740 .loc 1 6511 22 view .LVU3786 10741 0038 013B subs r3, r3, #1 10742 003a 9BB2 uxth r3, r3 10743 003c 4385 strh r3, [r0, #42] @ movhi 6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10744 .loc 1 6514 7 is_stmt 1 view .LVU3787 6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10745 .loc 1 6514 11 is_stmt 0 view .LVU3788 10746 003e 436C ldr r3, [r0, #68] 6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10747 .loc 1 6514 23 view .LVU3789 10748 0040 43F00403 orr r3, r3, #4 10749 0044 4364 str r3, [r0, #68] 10750 .L677: 6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10751 .loc 1 6519 3 is_stmt 1 view .LVU3790 10752 0046 48F20301 movw r1, #32771 10753 .LVL779: 6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10754 .loc 1 6519 3 is_stmt 0 view .LVU3791 10755 004a 2046 mov r0, r4 10756 .LVL780: 6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10757 .loc 1 6519 3 view .LVU3792 10758 004c FFF7FEFF bl I2C_Disable_IRQ 10759 .LVL781: 6522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10760 .loc 1 6522 3 is_stmt 1 view .LVU3793 10761 0050 2368 ldr r3, [r4] 10762 0052 1022 movs r2, #16 10763 0054 DA61 str r2, [r3, #28] 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10764 .loc 1 6525 3 view .LVU3794 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10765 .loc 1 6525 3 view .LVU3795 10766 0056 0023 movs r3, #0 10767 0058 84F84030 strb r3, [r4, #64] 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10768 .loc 1 6525 3 view .LVU3796 6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10769 .loc 1 6531 3 view .LVU3797 10770 005c 2046 mov r0, r4 10771 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10772 .LVL782: 6533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10773 .loc 1 6533 1 is_stmt 0 view .LVU3798 10774 0062 10BD pop {r4, pc} 10775 .LVL783: 10776 .L680: 6533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10777 .loc 1 6533 1 view .LVU3799 10778 .align 2 ARM GAS /tmp/ccDmmuIk.s page 384 10779 .L679: 10780 0064 0000FFFF .word -65536 10781 .cfi_endproc 10782 .LFE391: 10784 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10785 .align 1 10786 .weak HAL_I2C_MemTxCpltCallback 10787 .syntax unified 10788 .thumb 10789 .thumb_func 10791 HAL_I2C_MemTxCpltCallback: 10792 .LVL784: 10793 .LFB371: 4809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10794 .loc 1 4809 1 is_stmt 1 view -0 10795 .cfi_startproc 10796 @ args = 0, pretend = 0, frame = 0 10797 @ frame_needed = 0, uses_anonymous_args = 0 10798 @ link register save eliminated. 4811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10799 .loc 1 4811 3 view .LVU3801 4816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10800 .loc 1 4816 1 is_stmt 0 view .LVU3802 10801 0000 7047 bx lr 10802 .cfi_endproc 10803 .LFE371: 10805 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10806 .align 1 10807 .weak HAL_I2C_MemRxCpltCallback 10808 .syntax unified 10809 .thumb 10810 .thumb_func 10812 HAL_I2C_MemRxCpltCallback: 10813 .LVL785: 10814 .LFB372: 4825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10815 .loc 1 4825 1 is_stmt 1 view -0 10816 .cfi_startproc 10817 @ args = 0, pretend = 0, frame = 0 10818 @ frame_needed = 0, uses_anonymous_args = 0 10819 @ link register save eliminated. 4827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10820 .loc 1 4827 3 view .LVU3804 4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10821 .loc 1 4832 1 is_stmt 0 view .LVU3805 10822 0000 7047 bx lr 10823 .cfi_endproc 10824 .LFE372: 10826 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10827 .align 1 10828 .weak HAL_I2C_ErrorCallback 10829 .syntax unified 10830 .thumb 10831 .thumb_func 10833 HAL_I2C_ErrorCallback: 10834 .LVL786: 10835 .LFB373: ARM GAS /tmp/ccDmmuIk.s page 385 4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10836 .loc 1 4841 1 is_stmt 1 view -0 10837 .cfi_startproc 10838 @ args = 0, pretend = 0, frame = 0 10839 @ frame_needed = 0, uses_anonymous_args = 0 10840 @ link register save eliminated. 4843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10841 .loc 1 4843 3 view .LVU3807 4848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10842 .loc 1 4848 1 is_stmt 0 view .LVU3808 10843 0000 7047 bx lr 10844 .cfi_endproc 10845 .LFE373: 10847 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10848 .align 1 10849 .weak HAL_I2C_AbortCpltCallback 10850 .syntax unified 10851 .thumb 10852 .thumb_func 10854 HAL_I2C_AbortCpltCallback: 10855 .LVL787: 10856 .LFB374: 4857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10857 .loc 1 4857 1 is_stmt 1 view -0 10858 .cfi_startproc 10859 @ args = 0, pretend = 0, frame = 0 10860 @ frame_needed = 0, uses_anonymous_args = 0 10861 @ link register save eliminated. 4859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10862 .loc 1 4859 3 view .LVU3810 4864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10863 .loc 1 4864 1 is_stmt 0 view .LVU3811 10864 0000 7047 bx lr 10865 .cfi_endproc 10866 .LFE374: 10868 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10869 .align 1 10870 .syntax unified 10871 .thumb 10872 .thumb_func 10874 I2C_TreatErrorCallback: 10875 .LVL788: 10876 .LFB393: 6673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10877 .loc 1 6673 1 is_stmt 1 view -0 10878 .cfi_startproc 10879 @ args = 0, pretend = 0, frame = 0 10880 @ frame_needed = 0, uses_anonymous_args = 0 6673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10881 .loc 1 6673 1 is_stmt 0 view .LVU3813 10882 0000 08B5 push {r3, lr} 10883 .LCFI119: 10884 .cfi_def_cfa_offset 8 10885 .cfi_offset 3, -8 10886 .cfi_offset 14, -4 6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10887 .loc 1 6674 3 is_stmt 1 view .LVU3814 ARM GAS /tmp/ccDmmuIk.s page 386 6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10888 .loc 1 6674 11 is_stmt 0 view .LVU3815 10889 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10890 .loc 1 6674 6 view .LVU3816 10891 0006 602B cmp r3, #96 10892 0008 06D0 beq .L689 6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10893 .loc 1 6691 5 is_stmt 1 view .LVU3817 6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10894 .loc 1 6691 25 is_stmt 0 view .LVU3818 10895 000a 0023 movs r3, #0 10896 000c 0363 str r3, [r0, #48] 6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10897 .loc 1 6694 5 is_stmt 1 view .LVU3819 6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10898 .loc 1 6694 5 view .LVU3820 10899 000e 80F84030 strb r3, [r0, #64] 6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10900 .loc 1 6694 5 view .LVU3821 6700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10901 .loc 1 6700 5 view .LVU3822 10902 0012 FFF7FEFF bl HAL_I2C_ErrorCallback 10903 .LVL789: 10904 .L685: 6703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10905 .loc 1 6703 1 is_stmt 0 view .LVU3823 10906 0016 08BD pop {r3, pc} 10907 .LVL790: 10908 .L689: 6676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10909 .loc 1 6676 5 is_stmt 1 view .LVU3824 6676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10910 .loc 1 6676 17 is_stmt 0 view .LVU3825 10911 0018 2023 movs r3, #32 10912 001a 80F84130 strb r3, [r0, #65] 6677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10913 .loc 1 6677 5 is_stmt 1 view .LVU3826 6677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10914 .loc 1 6677 25 is_stmt 0 view .LVU3827 10915 001e 0023 movs r3, #0 10916 0020 0363 str r3, [r0, #48] 6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10917 .loc 1 6680 5 is_stmt 1 view .LVU3828 6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10918 .loc 1 6680 5 view .LVU3829 10919 0022 80F84030 strb r3, [r0, #64] 6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10920 .loc 1 6680 5 view .LVU3830 6686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10921 .loc 1 6686 5 view .LVU3831 10922 0026 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10923 .LVL791: 6686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10924 .loc 1 6686 5 is_stmt 0 view .LVU3832 10925 002a F4E7 b .L685 10926 .cfi_endproc ARM GAS /tmp/ccDmmuIk.s page 387 10927 .LFE393: 10929 .section .text.I2C_ITError,"ax",%progbits 10930 .align 1 10931 .syntax unified 10932 .thumb 10933 .thumb_func 10935 I2C_ITError: 10936 .LVL792: 10937 .LFB392: 6542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10938 .loc 1 6542 1 is_stmt 1 view -0 10939 .cfi_startproc 10940 @ args = 0, pretend = 0, frame = 0 10941 @ frame_needed = 0, uses_anonymous_args = 0 6542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10942 .loc 1 6542 1 is_stmt 0 view .LVU3834 10943 0000 10B5 push {r4, lr} 10944 .LCFI120: 10945 .cfi_def_cfa_offset 8 10946 .cfi_offset 4, -8 10947 .cfi_offset 14, -4 10948 0002 0446 mov r4, r0 6543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10949 .loc 1 6543 3 is_stmt 1 view .LVU3835 6543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10950 .loc 1 6543 24 is_stmt 0 view .LVU3836 10951 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10952 .LVL793: 6545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10953 .loc 1 6545 3 is_stmt 1 view .LVU3837 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10954 .loc 1 6548 3 view .LVU3838 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10955 .loc 1 6548 23 is_stmt 0 view .LVU3839 10956 0008 0022 movs r2, #0 10957 000a 80F84220 strb r2, [r0, #66] 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 10958 .loc 1 6549 3 is_stmt 1 view .LVU3840 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 10959 .loc 1 6549 23 is_stmt 0 view .LVU3841 10960 000e 4548 ldr r0, .L705 10961 .LVL794: 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 10962 .loc 1 6549 23 view .LVU3842 10963 0010 E062 str r0, [r4, #44] 6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10964 .loc 1 6550 3 is_stmt 1 view .LVU3843 6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10965 .loc 1 6550 23 is_stmt 0 view .LVU3844 10966 0012 6285 strh r2, [r4, #42] @ movhi 6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10967 .loc 1 6553 3 is_stmt 1 view .LVU3845 6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10968 .loc 1 6553 7 is_stmt 0 view .LVU3846 10969 0014 626C ldr r2, [r4, #68] 6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10970 .loc 1 6553 19 view .LVU3847 ARM GAS /tmp/ccDmmuIk.s page 388 10971 0016 0A43 orrs r2, r2, r1 10972 0018 6264 str r2, [r4, #68] 6556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10973 .loc 1 6556 3 is_stmt 1 view .LVU3848 6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10974 .loc 1 6557 50 is_stmt 0 view .LVU3849 10975 001a 283B subs r3, r3, #40 10976 .LVL795: 6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10977 .loc 1 6557 50 view .LVU3850 10978 001c DBB2 uxtb r3, r3 10979 .LVL796: 6556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10980 .loc 1 6556 6 view .LVU3851 10981 001e 022B cmp r3, #2 10982 0020 19D8 bhi .L691 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10983 .loc 1 6561 5 is_stmt 1 view .LVU3852 10984 0022 0321 movs r1, #3 10985 .LVL797: 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10986 .loc 1 6561 5 is_stmt 0 view .LVU3853 10987 0024 2046 mov r0, r4 10988 0026 FFF7FEFF bl I2C_Disable_IRQ 10989 .LVL798: 6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10990 .loc 1 6564 5 is_stmt 1 view .LVU3854 6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10991 .loc 1 6564 25 is_stmt 0 view .LVU3855 10992 002a 2823 movs r3, #40 10993 002c 84F84130 strb r3, [r4, #65] 6565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10994 .loc 1 6565 5 is_stmt 1 view .LVU3856 6565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10995 .loc 1 6565 25 is_stmt 0 view .LVU3857 10996 0030 3D4B ldr r3, .L705+4 10997 0032 6363 str r3, [r4, #52] 10998 .L692: 6600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10999 .loc 1 6600 3 is_stmt 1 view .LVU3858 6600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11000 .loc 1 6600 20 is_stmt 0 view .LVU3859 11001 0034 236B ldr r3, [r4, #48] 11002 .LVL799: 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11003 .loc 1 6602 3 is_stmt 1 view .LVU3860 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11004 .loc 1 6602 12 is_stmt 0 view .LVU3861 11005 0036 A26B ldr r2, [r4, #56] 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11006 .loc 1 6602 6 view .LVU3862 11007 0038 1AB1 cbz r2, .L695 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11008 .loc 1 6602 30 discriminator 1 view .LVU3863 11009 003a 112B cmp r3, #17 11010 003c 2FD0 beq .L696 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) ARM GAS /tmp/ccDmmuIk.s page 389 11011 .loc 1 6602 81 discriminator 2 view .LVU3864 11012 003e 212B cmp r3, #33 11013 0040 2DD0 beq .L696 11014 .L695: 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11015 .loc 1 6632 8 is_stmt 1 view .LVU3865 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11016 .loc 1 6632 17 is_stmt 0 view .LVU3866 11017 0042 E26B ldr r2, [r4, #60] 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11018 .loc 1 6632 11 view .LVU3867 11019 0044 1AB1 cbz r2, .L700 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11020 .loc 1 6632 35 discriminator 1 view .LVU3868 11021 0046 122B cmp r3, #18 11022 0048 4AD0 beq .L701 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11023 .loc 1 6632 86 discriminator 2 view .LVU3869 11024 004a 222B cmp r3, #34 11025 004c 48D0 beq .L701 11026 .L700: 6663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11027 .loc 1 6663 5 is_stmt 1 view .LVU3870 11028 004e 2046 mov r0, r4 11029 0050 FFF7FEFF bl I2C_TreatErrorCallback 11030 .LVL800: 11031 .L690: 6665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11032 .loc 1 6665 1 is_stmt 0 view .LVU3871 11033 0054 10BD pop {r4, pc} 11034 .LVL801: 11035 .L691: 6570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11036 .loc 1 6570 5 is_stmt 1 view .LVU3872 11037 0056 48F20301 movw r1, #32771 11038 .LVL802: 6570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11039 .loc 1 6570 5 is_stmt 0 view .LVU3873 11040 005a 2046 mov r0, r4 11041 005c FFF7FEFF bl I2C_Disable_IRQ 11042 .LVL803: 6573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11043 .loc 1 6573 5 is_stmt 1 view .LVU3874 11044 0060 2046 mov r0, r4 11045 0062 FFF7FEFF bl I2C_Flush_TXDR 11046 .LVL804: 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11047 .loc 1 6577 5 view .LVU3875 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11048 .loc 1 6577 13 is_stmt 0 view .LVU3876 11049 0066 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11050 .loc 1 6577 8 view .LVU3877 11051 006a 602B cmp r3, #96 11052 006c 14D0 beq .L693 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11053 .loc 1 6580 7 is_stmt 1 view .LVU3878 ARM GAS /tmp/ccDmmuIk.s page 390 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11054 .loc 1 6580 27 is_stmt 0 view .LVU3879 11055 006e 2023 movs r3, #32 11056 0070 84F84130 strb r3, [r4, #65] 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11057 .loc 1 6583 7 is_stmt 1 view .LVU3880 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11058 .loc 1 6583 11 is_stmt 0 view .LVU3881 11059 0074 2368 ldr r3, [r4] 11060 0076 9A69 ldr r2, [r3, #24] 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11061 .loc 1 6583 10 view .LVU3882 11062 0078 12F0200F tst r2, #32 11063 007c 0CD0 beq .L693 6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11064 .loc 1 6585 9 is_stmt 1 view .LVU3883 6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11065 .loc 1 6585 13 is_stmt 0 view .LVU3884 11066 007e 9A69 ldr r2, [r3, #24] 6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11067 .loc 1 6585 12 view .LVU3885 11068 0080 12F0100F tst r2, #16 11069 0084 05D0 beq .L694 6587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 11070 .loc 1 6587 11 is_stmt 1 view .LVU3886 11071 0086 1022 movs r2, #16 11072 0088 DA61 str r2, [r3, #28] 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11073 .loc 1 6588 11 view .LVU3887 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11074 .loc 1 6588 15 is_stmt 0 view .LVU3888 11075 008a 636C ldr r3, [r4, #68] 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11076 .loc 1 6588 27 view .LVU3889 11077 008c 43F00403 orr r3, r3, #4 11078 0090 6364 str r3, [r4, #68] 11079 .L694: 6592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11080 .loc 1 6592 9 is_stmt 1 view .LVU3890 11081 0092 2368 ldr r3, [r4] 11082 0094 2022 movs r2, #32 11083 0096 DA61 str r2, [r3, #28] 11084 .L693: 6596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11085 .loc 1 6596 5 view .LVU3891 6596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11086 .loc 1 6596 25 is_stmt 0 view .LVU3892 11087 0098 0023 movs r3, #0 11088 009a 6363 str r3, [r4, #52] 11089 009c CAE7 b .L692 11090 .LVL805: 11091 .L696: 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11092 .loc 1 6605 5 is_stmt 1 view .LVU3893 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11093 .loc 1 6605 14 is_stmt 0 view .LVU3894 11094 009e 2368 ldr r3, [r4] ARM GAS /tmp/ccDmmuIk.s page 391 11095 .LVL806: 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11096 .loc 1 6605 24 view .LVU3895 11097 00a0 1A68 ldr r2, [r3] 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11098 .loc 1 6605 8 view .LVU3896 11099 00a2 12F4804F tst r2, #16384 11100 00a6 03D0 beq .L697 6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11101 .loc 1 6607 7 is_stmt 1 view .LVU3897 6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11102 .loc 1 6607 21 is_stmt 0 view .LVU3898 11103 00a8 1A68 ldr r2, [r3] 6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11104 .loc 1 6607 27 view .LVU3899 11105 00aa 22F48042 bic r2, r2, #16384 11106 00ae 1A60 str r2, [r3] 11107 .L697: 6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11108 .loc 1 6610 5 is_stmt 1 view .LVU3900 6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11109 .loc 1 6610 9 is_stmt 0 view .LVU3901 11110 00b0 A06B ldr r0, [r4, #56] 11111 00b2 FFF7FEFF bl HAL_DMA_GetState 11112 .LVL807: 6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11113 .loc 1 6610 8 discriminator 1 view .LVU3902 11114 00b6 0128 cmp r0, #1 11115 00b8 0ED0 beq .L698 6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11116 .loc 1 6614 7 is_stmt 1 view .LVU3903 6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11117 .loc 1 6614 11 is_stmt 0 view .LVU3904 11118 00ba A36B ldr r3, [r4, #56] 6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11119 .loc 1 6614 39 view .LVU3905 11120 00bc 1B4A ldr r2, .L705+8 11121 00be 9A63 str r2, [r3, #56] 6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11122 .loc 1 6617 7 is_stmt 1 view .LVU3906 6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11123 .loc 1 6617 7 view .LVU3907 11124 00c0 0023 movs r3, #0 11125 00c2 84F84030 strb r3, [r4, #64] 6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11126 .loc 1 6617 7 view .LVU3908 6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11127 .loc 1 6620 7 view .LVU3909 6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11128 .loc 1 6620 11 is_stmt 0 view .LVU3910 11129 00c6 A06B ldr r0, [r4, #56] 11130 00c8 FFF7FEFF bl HAL_DMA_Abort_IT 11131 .LVL808: 6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11132 .loc 1 6620 10 discriminator 1 view .LVU3911 11133 00cc 0028 cmp r0, #0 11134 00ce C1D0 beq .L690 ARM GAS /tmp/ccDmmuIk.s page 392 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11135 .loc 1 6623 9 is_stmt 1 view .LVU3912 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11136 .loc 1 6623 13 is_stmt 0 view .LVU3913 11137 00d0 A06B ldr r0, [r4, #56] 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11138 .loc 1 6623 21 view .LVU3914 11139 00d2 836B ldr r3, [r0, #56] 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11140 .loc 1 6623 9 view .LVU3915 11141 00d4 9847 blx r3 11142 .LVL809: 11143 00d6 BDE7 b .L690 11144 .L698: 6628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11145 .loc 1 6628 7 is_stmt 1 view .LVU3916 11146 00d8 2046 mov r0, r4 11147 00da FFF7FEFF bl I2C_TreatErrorCallback 11148 .LVL810: 11149 00de B9E7 b .L690 11150 .LVL811: 11151 .L701: 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11152 .loc 1 6635 5 view .LVU3917 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11153 .loc 1 6635 14 is_stmt 0 view .LVU3918 11154 00e0 2368 ldr r3, [r4] 11155 .LVL812: 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11156 .loc 1 6635 24 view .LVU3919 11157 00e2 1A68 ldr r2, [r3] 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11158 .loc 1 6635 8 view .LVU3920 11159 00e4 12F4004F tst r2, #32768 11160 00e8 03D0 beq .L702 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11161 .loc 1 6637 7 is_stmt 1 view .LVU3921 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11162 .loc 1 6637 21 is_stmt 0 view .LVU3922 11163 00ea 1A68 ldr r2, [r3] 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11164 .loc 1 6637 27 view .LVU3923 11165 00ec 22F40042 bic r2, r2, #32768 11166 00f0 1A60 str r2, [r3] 11167 .L702: 6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11168 .loc 1 6640 5 is_stmt 1 view .LVU3924 6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11169 .loc 1 6640 9 is_stmt 0 view .LVU3925 11170 00f2 E06B ldr r0, [r4, #60] 11171 00f4 FFF7FEFF bl HAL_DMA_GetState 11172 .LVL813: 6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11173 .loc 1 6640 8 discriminator 1 view .LVU3926 11174 00f8 0128 cmp r0, #1 11175 00fa 0ED0 beq .L703 6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 393 11176 .loc 1 6644 7 is_stmt 1 view .LVU3927 6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11177 .loc 1 6644 11 is_stmt 0 view .LVU3928 11178 00fc E36B ldr r3, [r4, #60] 6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11179 .loc 1 6644 39 view .LVU3929 11180 00fe 0B4A ldr r2, .L705+8 11181 0100 9A63 str r2, [r3, #56] 6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11182 .loc 1 6647 7 is_stmt 1 view .LVU3930 6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11183 .loc 1 6647 7 view .LVU3931 11184 0102 0023 movs r3, #0 11185 0104 84F84030 strb r3, [r4, #64] 6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11186 .loc 1 6647 7 view .LVU3932 6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11187 .loc 1 6650 7 view .LVU3933 6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11188 .loc 1 6650 11 is_stmt 0 view .LVU3934 11189 0108 E06B ldr r0, [r4, #60] 11190 010a FFF7FEFF bl HAL_DMA_Abort_IT 11191 .LVL814: 6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11192 .loc 1 6650 10 discriminator 1 view .LVU3935 11193 010e 0028 cmp r0, #0 11194 0110 A0D0 beq .L690 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11195 .loc 1 6653 9 is_stmt 1 view .LVU3936 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11196 .loc 1 6653 13 is_stmt 0 view .LVU3937 11197 0112 E06B ldr r0, [r4, #60] 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11198 .loc 1 6653 21 view .LVU3938 11199 0114 836B ldr r3, [r0, #56] 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11200 .loc 1 6653 9 view .LVU3939 11201 0116 9847 blx r3 11202 .LVL815: 11203 0118 9CE7 b .L690 11204 .L703: 6658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11205 .loc 1 6658 7 is_stmt 1 view .LVU3940 11206 011a 2046 mov r0, r4 11207 011c FFF7FEFF bl I2C_TreatErrorCallback 11208 .LVL816: 11209 0120 98E7 b .L690 11210 .L706: 11211 0122 00BF .align 2 11212 .L705: 11213 0124 0000FFFF .word -65536 11214 0128 00000000 .word I2C_Slave_ISR_IT 11215 012c 00000000 .word I2C_DMAAbort 11216 .cfi_endproc 11217 .LFE392: 11219 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11220 .align 1 ARM GAS /tmp/ccDmmuIk.s page 394 11221 .syntax unified 11222 .thumb 11223 .thumb_func 11225 I2C_ITSlaveCplt: 11226 .LVL817: 11227 .LFB390: 6275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11228 .loc 1 6275 1 view -0 11229 .cfi_startproc 11230 @ args = 0, pretend = 0, frame = 0 11231 @ frame_needed = 0, uses_anonymous_args = 0 6275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11232 .loc 1 6275 1 is_stmt 0 view .LVU3942 11233 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11234 .LCFI121: 11235 .cfi_def_cfa_offset 24 11236 .cfi_offset 3, -24 11237 .cfi_offset 4, -20 11238 .cfi_offset 5, -16 11239 .cfi_offset 6, -12 11240 .cfi_offset 7, -8 11241 .cfi_offset 14, -4 11242 0002 0446 mov r4, r0 11243 0004 0D46 mov r5, r1 6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11244 .loc 1 6276 3 is_stmt 1 view .LVU3943 6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11245 .loc 1 6276 26 is_stmt 0 view .LVU3944 11246 0006 0268 ldr r2, [r0] 6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11247 .loc 1 6276 12 view .LVU3945 11248 0008 1668 ldr r6, [r2] 11249 .LVL818: 6277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11250 .loc 1 6277 3 is_stmt 1 view .LVU3946 6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11251 .loc 1 6278 3 view .LVU3947 6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11252 .loc 1 6278 12 is_stmt 0 view .LVU3948 11253 000a C76A ldr r7, [r0, #44] 11254 .LVL819: 6279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11255 .loc 1 6279 3 is_stmt 1 view .LVU3949 6279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11256 .loc 1 6279 24 is_stmt 0 view .LVU3950 11257 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11258 .LVL820: 6282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11259 .loc 1 6282 3 is_stmt 1 view .LVU3951 11260 0010 2021 movs r1, #32 11261 .LVL821: 6282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11262 .loc 1 6282 3 is_stmt 0 view .LVU3952 11263 0012 D161 str r1, [r2, #28] 6285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11264 .loc 1 6285 3 is_stmt 1 view .LVU3953 11265 0014 213B subs r3, r3, #33 ARM GAS /tmp/ccDmmuIk.s page 395 11266 .LVL822: 6285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11267 .loc 1 6285 3 is_stmt 0 view .LVU3954 11268 0016 092B cmp r3, #9 11269 0018 0CD8 bhi .L708 11270 001a DFE803F0 tbb [pc, r3] 11271 .L710: 11272 001e 05 .byte (.L711-.L710)/2 11273 001f 77 .byte (.L709-.L710)/2 11274 0020 0B .byte (.L708-.L710)/2 11275 0021 0B .byte (.L708-.L710)/2 11276 0022 0B .byte (.L708-.L710)/2 11277 0023 0B .byte (.L708-.L710)/2 11278 0024 0B .byte (.L708-.L710)/2 11279 0025 7E .byte (.L712-.L710)/2 11280 0026 05 .byte (.L711-.L710)/2 11281 0027 77 .byte (.L709-.L710)/2 11282 .p2align 1 11283 .L711: 6287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11284 .loc 1 6287 5 is_stmt 1 view .LVU3955 11285 0028 48F20101 movw r1, #32769 11286 002c FFF7FEFF bl I2C_Disable_IRQ 11287 .LVL823: 6288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11288 .loc 1 6288 5 view .LVU3956 6288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11289 .loc 1 6288 25 is_stmt 0 view .LVU3957 11290 0030 2123 movs r3, #33 11291 0032 2363 str r3, [r4, #48] 11292 .L708: 6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11293 .loc 1 6303 3 is_stmt 1 view .LVU3958 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11294 .loc 1 6306 3 view .LVU3959 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11295 .loc 1 6306 7 is_stmt 0 view .LVU3960 11296 0034 2268 ldr r2, [r4] 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11297 .loc 1 6306 17 view .LVU3961 11298 0036 5368 ldr r3, [r2, #4] 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11299 .loc 1 6306 23 view .LVU3962 11300 0038 43F40043 orr r3, r3, #32768 11301 003c 5360 str r3, [r2, #4] 6309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11302 .loc 1 6309 3 is_stmt 1 view .LVU3963 11303 003e 2268 ldr r2, [r4] 11304 0040 5368 ldr r3, [r2, #4] 11305 0042 23F0FF73 bic r3, r3, #33423360 11306 0046 23F48B33 bic r3, r3, #71168 11307 004a 23F4FF73 bic r3, r3, #510 11308 004e 23F00103 bic r3, r3, #1 11309 0052 5360 str r3, [r2, #4] 6312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11310 .loc 1 6312 3 view .LVU3964 11311 0054 2046 mov r0, r4 ARM GAS /tmp/ccDmmuIk.s page 396 11312 0056 FFF7FEFF bl I2C_Flush_TXDR 11313 .LVL824: 6315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11314 .loc 1 6315 3 view .LVU3965 6315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11315 .loc 1 6315 6 is_stmt 0 view .LVU3966 11316 005a 16F4804F tst r6, #16384 11317 005e 63D0 beq .L713 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11318 .loc 1 6318 5 is_stmt 1 view .LVU3967 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11319 .loc 1 6318 9 is_stmt 0 view .LVU3968 11320 0060 2268 ldr r2, [r4] 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11321 .loc 1 6318 19 view .LVU3969 11322 0062 1368 ldr r3, [r2] 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11323 .loc 1 6318 25 view .LVU3970 11324 0064 23F48043 bic r3, r3, #16384 11325 0068 1360 str r3, [r2] 6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11326 .loc 1 6320 5 is_stmt 1 view .LVU3971 6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11327 .loc 1 6320 13 is_stmt 0 view .LVU3972 11328 006a A36B ldr r3, [r4, #56] 6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11329 .loc 1 6320 8 view .LVU3973 11330 006c 1BB1 cbz r3, .L714 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11331 .loc 1 6322 7 is_stmt 1 view .LVU3974 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11332 .loc 1 6322 35 is_stmt 0 view .LVU3975 11333 006e 1B68 ldr r3, [r3] 11334 0070 5B68 ldr r3, [r3, #4] 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11335 .loc 1 6322 25 view .LVU3976 11336 0072 9BB2 uxth r3, r3 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11337 .loc 1 6322 23 view .LVU3977 11338 0074 6385 strh r3, [r4, #42] @ movhi 11339 .L714: 6338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11340 .loc 1 6338 3 is_stmt 1 view .LVU3978 6341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11341 .loc 1 6341 3 view .LVU3979 6341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11342 .loc 1 6341 6 is_stmt 0 view .LVU3980 11343 0076 15F0040F tst r5, #4 11344 007a 11D0 beq .L715 6344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11345 .loc 1 6344 5 is_stmt 1 view .LVU3981 6344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11346 .loc 1 6344 16 is_stmt 0 view .LVU3982 11347 007c 25F00405 bic r5, r5, #4 11348 .LVL825: 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11349 .loc 1 6347 5 is_stmt 1 view .LVU3983 ARM GAS /tmp/ccDmmuIk.s page 397 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11350 .loc 1 6347 36 is_stmt 0 view .LVU3984 11351 0080 2368 ldr r3, [r4] 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11352 .loc 1 6347 46 view .LVU3985 11353 0082 5A6A ldr r2, [r3, #36] 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11354 .loc 1 6347 10 view .LVU3986 11355 0084 636A ldr r3, [r4, #36] 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11356 .loc 1 6347 21 view .LVU3987 11357 0086 1A70 strb r2, [r3] 6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11358 .loc 1 6350 5 is_stmt 1 view .LVU3988 6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11359 .loc 1 6350 9 is_stmt 0 view .LVU3989 11360 0088 636A ldr r3, [r4, #36] 6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11361 .loc 1 6350 19 view .LVU3990 11362 008a 0133 adds r3, r3, #1 11363 008c 6362 str r3, [r4, #36] 6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11364 .loc 1 6352 5 is_stmt 1 view .LVU3991 6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11365 .loc 1 6352 14 is_stmt 0 view .LVU3992 11366 008e 238D ldrh r3, [r4, #40] 6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11367 .loc 1 6352 8 view .LVU3993 11368 0090 33B1 cbz r3, .L715 6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11369 .loc 1 6354 7 is_stmt 1 view .LVU3994 6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11370 .loc 1 6354 21 is_stmt 0 view .LVU3995 11371 0092 013B subs r3, r3, #1 11372 0094 2385 strh r3, [r4, #40] @ movhi 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11373 .loc 1 6355 7 is_stmt 1 view .LVU3996 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11374 .loc 1 6355 11 is_stmt 0 view .LVU3997 11375 0096 638D ldrh r3, [r4, #42] 11376 0098 9BB2 uxth r3, r3 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11377 .loc 1 6355 22 view .LVU3998 11378 009a 013B subs r3, r3, #1 11379 009c 9BB2 uxth r3, r3 11380 009e 6385 strh r3, [r4, #42] @ movhi 11381 .L715: 6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11382 .loc 1 6360 3 is_stmt 1 view .LVU3999 6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11383 .loc 1 6360 11 is_stmt 0 view .LVU4000 11384 00a0 638D ldrh r3, [r4, #42] 11385 00a2 9BB2 uxth r3, r3 6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11386 .loc 1 6360 6 view .LVU4001 11387 00a4 1BB1 cbz r3, .L716 6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 398 11388 .loc 1 6363 5 is_stmt 1 view .LVU4002 6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11389 .loc 1 6363 9 is_stmt 0 view .LVU4003 11390 00a6 636C ldr r3, [r4, #68] 6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11391 .loc 1 6363 21 view .LVU4004 11392 00a8 43F00403 orr r3, r3, #4 11393 00ac 6364 str r3, [r4, #68] 11394 .L716: 6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11395 .loc 1 6366 3 is_stmt 1 view .LVU4005 6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11396 .loc 1 6366 6 is_stmt 0 view .LVU4006 11397 00ae 15F0100F tst r5, #16 11398 00b2 11D0 beq .L717 6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11399 .loc 1 6366 58 discriminator 1 view .LVU4007 11400 00b4 16F0100F tst r6, #16 11401 00b8 0ED0 beq .L717 6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11402 .loc 1 6373 5 is_stmt 1 view .LVU4008 6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11403 .loc 1 6373 13 is_stmt 0 view .LVU4009 11404 00ba 638D ldrh r3, [r4, #42] 11405 00bc 9BB2 uxth r3, r3 6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11406 .loc 1 6373 8 view .LVU4010 11407 00be 002B cmp r3, #0 11408 00c0 57D1 bne .L718 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11409 .loc 1 6375 7 is_stmt 1 view .LVU4011 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11410 .loc 1 6375 16 is_stmt 0 view .LVU4012 11411 00c2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11412 .loc 1 6375 10 view .LVU4013 11413 00c6 282B cmp r3, #40 11414 00c8 3ED0 beq .L728 11415 .L719: 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11416 .loc 1 6382 12 is_stmt 1 view .LVU4014 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11417 .loc 1 6382 21 is_stmt 0 view .LVU4015 11418 00ca 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11419 .loc 1 6382 15 view .LVU4016 11420 00ce 292B cmp r3, #41 11421 00d0 42D0 beq .L729 11422 .L720: 6397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11423 .loc 1 6397 9 is_stmt 1 view .LVU4017 11424 00d2 2368 ldr r3, [r4] 11425 00d4 1022 movs r2, #16 11426 00d6 DA61 str r2, [r3, #28] 11427 .L717: 6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 11428 .loc 1 6417 3 view .LVU4018 ARM GAS /tmp/ccDmmuIk.s page 399 6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 11429 .loc 1 6417 14 is_stmt 0 view .LVU4019 11430 00d8 0023 movs r3, #0 11431 00da 84F84230 strb r3, [r4, #66] 6418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11432 .loc 1 6418 3 is_stmt 1 view .LVU4020 6418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11433 .loc 1 6418 17 is_stmt 0 view .LVU4021 11434 00de 6363 str r3, [r4, #52] 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11435 .loc 1 6420 3 is_stmt 1 view .LVU4022 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11436 .loc 1 6420 11 is_stmt 0 view .LVU4023 11437 00e0 636C ldr r3, [r4, #68] 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11438 .loc 1 6420 6 view .LVU4024 11439 00e2 002B cmp r3, #0 11440 00e4 55D1 bne .L730 6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11441 .loc 1 6432 8 is_stmt 1 view .LVU4025 6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11442 .loc 1 6432 16 is_stmt 0 view .LVU4026 11443 00e6 E36A ldr r3, [r4, #44] 6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11444 .loc 1 6432 11 view .LVU4027 11445 00e8 13F5803F cmn r3, #65536 11446 00ec 5ED1 bne .L731 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11447 .loc 1 6452 8 is_stmt 1 view .LVU4028 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11448 .loc 1 6452 16 is_stmt 0 view .LVU4029 11449 00ee 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11450 .loc 1 6452 11 view .LVU4030 11451 00f2 222B cmp r3, #34 11452 00f4 6AD0 beq .L732 6469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11453 .loc 1 6469 5 is_stmt 1 view .LVU4031 6469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11454 .loc 1 6469 17 is_stmt 0 view .LVU4032 11455 00f6 2023 movs r3, #32 11456 00f8 84F84130 strb r3, [r4, #65] 6470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11457 .loc 1 6470 5 is_stmt 1 view .LVU4033 6470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11458 .loc 1 6470 25 is_stmt 0 view .LVU4034 11459 00fc 0023 movs r3, #0 11460 00fe 2363 str r3, [r4, #48] 6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11461 .loc 1 6473 5 is_stmt 1 view .LVU4035 6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11462 .loc 1 6473 5 view .LVU4036 11463 0100 84F84030 strb r3, [r4, #64] 6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11464 .loc 1 6473 5 view .LVU4037 6479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11465 .loc 1 6479 5 view .LVU4038 ARM GAS /tmp/ccDmmuIk.s page 400 11466 0104 2046 mov r0, r4 11467 0106 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 11468 .LVL826: 6482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11469 .loc 1 6482 1 is_stmt 0 view .LVU4039 11470 010a 5EE0 b .L707 11471 .LVL827: 11472 .L709: 6292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11473 .loc 1 6292 5 is_stmt 1 view .LVU4040 11474 010c 48F20201 movw r1, #32770 11475 0110 FFF7FEFF bl I2C_Disable_IRQ 11476 .LVL828: 6293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11477 .loc 1 6293 5 view .LVU4041 6293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11478 .loc 1 6293 25 is_stmt 0 view .LVU4042 11479 0114 2223 movs r3, #34 11480 0116 2363 str r3, [r4, #48] 11481 0118 8CE7 b .L708 11482 .LVL829: 11483 .L712: 6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11484 .loc 1 6297 5 is_stmt 1 view .LVU4043 11485 011a 48F20301 movw r1, #32771 11486 011e FFF7FEFF bl I2C_Disable_IRQ 11487 .LVL830: 6298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11488 .loc 1 6298 5 view .LVU4044 6298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11489 .loc 1 6298 25 is_stmt 0 view .LVU4045 11490 0122 0023 movs r3, #0 11491 0124 2363 str r3, [r4, #48] 11492 0126 85E7 b .L708 11493 .L713: 6325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11494 .loc 1 6325 8 is_stmt 1 view .LVU4046 6325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11495 .loc 1 6325 11 is_stmt 0 view .LVU4047 11496 0128 16F4004F tst r6, #32768 11497 012c A3D0 beq .L714 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11498 .loc 1 6328 5 is_stmt 1 view .LVU4048 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11499 .loc 1 6328 9 is_stmt 0 view .LVU4049 11500 012e 2268 ldr r2, [r4] 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11501 .loc 1 6328 19 view .LVU4050 11502 0130 1368 ldr r3, [r2] 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11503 .loc 1 6328 25 view .LVU4051 11504 0132 23F40043 bic r3, r3, #32768 11505 0136 1360 str r3, [r2] 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11506 .loc 1 6330 5 is_stmt 1 view .LVU4052 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11507 .loc 1 6330 13 is_stmt 0 view .LVU4053 ARM GAS /tmp/ccDmmuIk.s page 401 11508 0138 E36B ldr r3, [r4, #60] 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11509 .loc 1 6330 8 view .LVU4054 11510 013a 002B cmp r3, #0 11511 013c 9BD0 beq .L714 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11512 .loc 1 6332 7 is_stmt 1 view .LVU4055 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11513 .loc 1 6332 35 is_stmt 0 view .LVU4056 11514 013e 1B68 ldr r3, [r3] 11515 0140 5B68 ldr r3, [r3, #4] 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11516 .loc 1 6332 25 view .LVU4057 11517 0142 9BB2 uxth r3, r3 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11518 .loc 1 6332 23 view .LVU4058 11519 0144 6385 strh r3, [r4, #42] @ movhi 11520 0146 96E7 b .L714 11521 .LVL831: 11522 .L728: 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11523 .loc 1 6375 49 discriminator 1 view .LVU4059 11524 0148 B7F1007F cmp r7, #33554432 11525 014c BDD1 bne .L719 6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11526 .loc 1 6380 9 is_stmt 1 view .LVU4060 11527 014e 2946 mov r1, r5 11528 0150 2046 mov r0, r4 11529 0152 FFF7FEFF bl I2C_ITListenCplt 11530 .LVL832: 11531 0156 BFE7 b .L717 11532 .L729: 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11533 .loc 1 6382 62 is_stmt 0 discriminator 1 view .LVU4061 11534 0158 17F5803F cmn r7, #65536 11535 015c B9D0 beq .L720 6385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11536 .loc 1 6385 9 is_stmt 1 view .LVU4062 11537 015e 2368 ldr r3, [r4] 11538 0160 1022 movs r2, #16 11539 0162 DA61 str r2, [r3, #28] 6388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11540 .loc 1 6388 9 view .LVU4063 11541 0164 2046 mov r0, r4 11542 0166 FFF7FEFF bl I2C_Flush_TXDR 11543 .LVL833: 6392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11544 .loc 1 6392 9 view .LVU4064 11545 016a 2046 mov r0, r4 11546 016c FFF7FEFF bl I2C_ITSlaveSeqCplt 11547 .LVL834: 11548 0170 B2E7 b .L717 11549 .L718: 6404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11550 .loc 1 6404 7 view .LVU4065 11551 0172 2368 ldr r3, [r4] 11552 0174 1022 movs r2, #16 ARM GAS /tmp/ccDmmuIk.s page 402 11553 0176 DA61 str r2, [r3, #28] 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11554 .loc 1 6407 7 view .LVU4066 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11555 .loc 1 6407 11 is_stmt 0 view .LVU4067 11556 0178 636C ldr r3, [r4, #68] 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11557 .loc 1 6407 23 view .LVU4068 11558 017a 43F00403 orr r3, r3, #4 11559 017e 6364 str r3, [r4, #68] 6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11560 .loc 1 6409 7 is_stmt 1 view .LVU4069 6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11561 .loc 1 6409 10 is_stmt 0 view .LVU4070 11562 0180 17B1 cbz r7, .L721 6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11563 .loc 1 6409 43 discriminator 1 view .LVU4071 11564 0182 B7F1807F cmp r7, #16777216 11565 0186 A7D1 bne .L717 11566 .L721: 6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11567 .loc 1 6412 9 is_stmt 1 view .LVU4072 6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11568 .loc 1 6412 31 is_stmt 0 view .LVU4073 11569 0188 616C ldr r1, [r4, #68] 6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11570 .loc 1 6412 9 view .LVU4074 11571 018a 2046 mov r0, r4 11572 018c FFF7FEFF bl I2C_ITError 11573 .LVL835: 11574 0190 A2E7 b .L717 11575 .L730: 6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11576 .loc 1 6423 5 is_stmt 1 view .LVU4075 6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11577 .loc 1 6423 27 is_stmt 0 view .LVU4076 11578 0192 616C ldr r1, [r4, #68] 6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11579 .loc 1 6423 5 view .LVU4077 11580 0194 2046 mov r0, r4 11581 0196 FFF7FEFF bl I2C_ITError 11582 .LVL836: 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11583 .loc 1 6426 5 is_stmt 1 view .LVU4078 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11584 .loc 1 6426 13 is_stmt 0 view .LVU4079 11585 019a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11586 .loc 1 6426 8 view .LVU4080 11587 019e 282B cmp r3, #40 11588 01a0 13D1 bne .L707 6429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11589 .loc 1 6429 7 is_stmt 1 view .LVU4081 11590 01a2 2946 mov r1, r5 11591 01a4 2046 mov r0, r4 11592 01a6 FFF7FEFF bl I2C_ITListenCplt 11593 .LVL837: ARM GAS /tmp/ccDmmuIk.s page 403 11594 01aa 0EE0 b .L707 11595 .L731: 6435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11596 .loc 1 6435 5 view .LVU4082 11597 01ac 2046 mov r0, r4 11598 01ae FFF7FEFF bl I2C_ITSlaveSeqCplt 11599 .LVL838: 6437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11600 .loc 1 6437 5 view .LVU4083 6437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11601 .loc 1 6437 23 is_stmt 0 view .LVU4084 11602 01b2 0C4B ldr r3, .L733 11603 01b4 E362 str r3, [r4, #44] 6438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11604 .loc 1 6438 5 is_stmt 1 view .LVU4085 6438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11605 .loc 1 6438 17 is_stmt 0 view .LVU4086 11606 01b6 2023 movs r3, #32 11607 01b8 84F84130 strb r3, [r4, #65] 6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11608 .loc 1 6439 5 is_stmt 1 view .LVU4087 6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11609 .loc 1 6439 25 is_stmt 0 view .LVU4088 11610 01bc 0023 movs r3, #0 11611 01be 2363 str r3, [r4, #48] 6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11612 .loc 1 6442 5 is_stmt 1 view .LVU4089 6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11613 .loc 1 6442 5 view .LVU4090 11614 01c0 84F84030 strb r3, [r4, #64] 6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11615 .loc 1 6442 5 view .LVU4091 6448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11616 .loc 1 6448 5 view .LVU4092 11617 01c4 2046 mov r0, r4 11618 01c6 FFF7FEFF bl HAL_I2C_ListenCpltCallback 11619 .LVL839: 11620 .L707: 6482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11621 .loc 1 6482 1 is_stmt 0 view .LVU4093 11622 01ca F8BD pop {r3, r4, r5, r6, r7, pc} 11623 .LVL840: 11624 .L732: 6454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11625 .loc 1 6454 5 is_stmt 1 view .LVU4094 6454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11626 .loc 1 6454 17 is_stmt 0 view .LVU4095 11627 01cc 2023 movs r3, #32 11628 01ce 84F84130 strb r3, [r4, #65] 6455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11629 .loc 1 6455 5 is_stmt 1 view .LVU4096 6455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11630 .loc 1 6455 25 is_stmt 0 view .LVU4097 11631 01d2 0023 movs r3, #0 11632 01d4 2363 str r3, [r4, #48] 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11633 .loc 1 6458 5 is_stmt 1 view .LVU4098 ARM GAS /tmp/ccDmmuIk.s page 404 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11634 .loc 1 6458 5 view .LVU4099 11635 01d6 84F84030 strb r3, [r4, #64] 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11636 .loc 1 6458 5 view .LVU4100 6464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11637 .loc 1 6464 5 view .LVU4101 11638 01da 2046 mov r0, r4 11639 01dc FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11640 .LVL841: 11641 01e0 F3E7 b .L707 11642 .L734: 11643 01e2 00BF .align 2 11644 .L733: 11645 01e4 0000FFFF .word -65536 11646 .cfi_endproc 11647 .LFE390: 11649 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11650 .align 1 11651 .syntax unified 11652 .thumb 11653 .thumb_func 11655 I2C_Slave_ISR_IT: 11656 .LVL842: 11657 .LFB380: 5235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11658 .loc 1 5235 1 view -0 11659 .cfi_startproc 11660 @ args = 0, pretend = 0, frame = 0 11661 @ frame_needed = 0, uses_anonymous_args = 0 5235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11662 .loc 1 5235 1 is_stmt 0 view .LVU4103 11663 0000 10B5 push {r4, lr} 11664 .LCFI122: 11665 .cfi_def_cfa_offset 8 11666 .cfi_offset 4, -8 11667 .cfi_offset 14, -4 11668 0002 0446 mov r4, r0 5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11669 .loc 1 5236 3 is_stmt 1 view .LVU4104 5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11670 .loc 1 5236 12 is_stmt 0 view .LVU4105 11671 0004 C06A ldr r0, [r0, #44] 11672 .LVL843: 5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11673 .loc 1 5237 3 is_stmt 1 view .LVU4106 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11674 .loc 1 5240 3 view .LVU4107 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11675 .loc 1 5240 3 view .LVU4108 11676 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 11677 000a 012B cmp r3, #1 11678 000c 00F09880 beq .L749 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11679 .loc 1 5240 3 discriminator 2 view .LVU4109 11680 0010 0123 movs r3, #1 11681 0012 84F84030 strb r3, [r4, #64] ARM GAS /tmp/ccDmmuIk.s page 405 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11682 .loc 1 5240 3 view .LVU4110 5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11683 .loc 1 5243 3 view .LVU4111 5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11684 .loc 1 5243 6 is_stmt 0 view .LVU4112 11685 0016 11F0200F tst r1, #32 11686 001a 02D0 beq .L737 5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11687 .loc 1 5243 61 discriminator 1 view .LVU4113 11688 001c 12F0200F tst r2, #32 11689 0020 14D1 bne .L751 11690 .L737: 5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11691 .loc 1 5249 8 is_stmt 1 view .LVU4114 5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11692 .loc 1 5249 11 is_stmt 0 view .LVU4115 11693 0022 11F0100F tst r1, #16 11694 0026 3CD0 beq .L739 5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11695 .loc 1 5249 63 discriminator 1 view .LVU4116 11696 0028 12F0100F tst r2, #16 11697 002c 39D0 beq .L739 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11698 .loc 1 5256 5 is_stmt 1 view .LVU4117 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11699 .loc 1 5256 13 is_stmt 0 view .LVU4118 11700 002e 638D ldrh r3, [r4, #42] 11701 0030 9BB2 uxth r3, r3 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11702 .loc 1 5256 8 view .LVU4119 11703 0032 33BB cbnz r3, .L740 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11704 .loc 1 5258 7 is_stmt 1 view .LVU4120 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11705 .loc 1 5258 16 is_stmt 0 view .LVU4121 11706 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11707 .loc 1 5258 10 view .LVU4122 11708 0038 282B cmp r3, #40 11709 003a 0ED0 beq .L752 11710 .L741: 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11711 .loc 1 5265 12 is_stmt 1 view .LVU4123 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11712 .loc 1 5265 21 is_stmt 0 view .LVU4124 11713 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11714 .loc 1 5265 15 view .LVU4125 11715 0040 292B cmp r3, #41 11716 0042 11D0 beq .L753 11717 .L742: 5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11718 .loc 1 5280 9 is_stmt 1 view .LVU4126 11719 0044 2368 ldr r3, [r4] 11720 0046 1022 movs r2, #16 11721 .LVL844: ARM GAS /tmp/ccDmmuIk.s page 406 5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11722 .loc 1 5280 9 is_stmt 0 view .LVU4127 11723 0048 DA61 str r2, [r3, #28] 11724 004a 02E0 b .L738 11725 .LVL845: 11726 .L751: 5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11727 .loc 1 5247 5 is_stmt 1 view .LVU4128 11728 004c 2046 mov r0, r4 11729 .LVL846: 5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11730 .loc 1 5247 5 is_stmt 0 view .LVU4129 11731 004e FFF7FEFF bl I2C_ITSlaveCplt 11732 .LVL847: 11733 .L738: 5357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11734 .loc 1 5357 3 is_stmt 1 view .LVU4130 5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11735 .loc 1 5360 3 view .LVU4131 5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11736 .loc 1 5360 3 view .LVU4132 11737 0052 0020 movs r0, #0 11738 0054 84F84000 strb r0, [r4, #64] 5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11739 .loc 1 5360 3 view .LVU4133 5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11740 .loc 1 5362 3 view .LVU4134 11741 .L736: 5363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11742 .loc 1 5363 1 is_stmt 0 view .LVU4135 11743 0058 10BD pop {r4, pc} 11744 .LVL848: 11745 .L752: 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11746 .loc 1 5258 49 discriminator 1 view .LVU4136 11747 005a B0F1007F cmp r0, #33554432 11748 005e EDD1 bne .L741 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11749 .loc 1 5263 9 is_stmt 1 view .LVU4137 11750 0060 2046 mov r0, r4 11751 .LVL849: 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11752 .loc 1 5263 9 is_stmt 0 view .LVU4138 11753 0062 FFF7FEFF bl I2C_ITListenCplt 11754 .LVL850: 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11755 .loc 1 5263 9 view .LVU4139 11756 0066 F4E7 b .L738 11757 .LVL851: 11758 .L753: 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11759 .loc 1 5265 62 discriminator 1 view .LVU4140 11760 0068 10F5803F cmn r0, #65536 11761 006c EAD0 beq .L742 5268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11762 .loc 1 5268 9 is_stmt 1 view .LVU4141 11763 006e 2368 ldr r3, [r4] ARM GAS /tmp/ccDmmuIk.s page 407 11764 0070 1022 movs r2, #16 11765 .LVL852: 5268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11766 .loc 1 5268 9 is_stmt 0 view .LVU4142 11767 0072 DA61 str r2, [r3, #28] 5271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11768 .loc 1 5271 9 is_stmt 1 view .LVU4143 11769 0074 2046 mov r0, r4 11770 .LVL853: 5271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11771 .loc 1 5271 9 is_stmt 0 view .LVU4144 11772 0076 FFF7FEFF bl I2C_Flush_TXDR 11773 .LVL854: 5275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11774 .loc 1 5275 9 is_stmt 1 view .LVU4145 11775 007a 2046 mov r0, r4 11776 007c FFF7FEFF bl I2C_ITSlaveSeqCplt 11777 .LVL855: 11778 0080 E7E7 b .L738 11779 .LVL856: 11780 .L740: 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11781 .loc 1 5287 7 view .LVU4146 11782 0082 2368 ldr r3, [r4] 11783 0084 1022 movs r2, #16 11784 .LVL857: 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11785 .loc 1 5287 7 is_stmt 0 view .LVU4147 11786 0086 DA61 str r2, [r3, #28] 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11787 .loc 1 5290 7 is_stmt 1 view .LVU4148 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11788 .loc 1 5290 11 is_stmt 0 view .LVU4149 11789 0088 636C ldr r3, [r4, #68] 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11790 .loc 1 5290 23 view .LVU4150 11791 008a 43F00403 orr r3, r3, #4 11792 008e 6364 str r3, [r4, #68] 5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11793 .loc 1 5292 7 is_stmt 1 view .LVU4151 5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11794 .loc 1 5292 10 is_stmt 0 view .LVU4152 11795 0090 10B1 cbz r0, .L743 5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11796 .loc 1 5292 43 discriminator 1 view .LVU4153 11797 0092 B0F1807F cmp r0, #16777216 11798 0096 DCD1 bne .L738 11799 .L743: 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11800 .loc 1 5295 9 is_stmt 1 view .LVU4154 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11801 .loc 1 5295 31 is_stmt 0 view .LVU4155 11802 0098 616C ldr r1, [r4, #68] 11803 .LVL858: 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11804 .loc 1 5295 9 view .LVU4156 11805 009a 2046 mov r0, r4 ARM GAS /tmp/ccDmmuIk.s page 408 11806 .LVL859: 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11807 .loc 1 5295 9 view .LVU4157 11808 009c FFF7FEFF bl I2C_ITError 11809 .LVL860: 11810 00a0 D7E7 b .L738 11811 .LVL861: 11812 .L739: 5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11813 .loc 1 5299 8 is_stmt 1 view .LVU4158 5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11814 .loc 1 5299 11 is_stmt 0 view .LVU4159 11815 00a2 11F0040F tst r1, #4 11816 00a6 1FD0 beq .L744 5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11817 .loc 1 5299 65 discriminator 1 view .LVU4160 11818 00a8 12F0040F tst r2, #4 11819 00ac 1CD0 beq .L744 5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11820 .loc 1 5302 5 is_stmt 1 view .LVU4161 5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11821 .loc 1 5302 13 is_stmt 0 view .LVU4162 11822 00ae 638D ldrh r3, [r4, #42] 11823 00b0 9BB2 uxth r3, r3 5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11824 .loc 1 5302 8 view .LVU4163 11825 00b2 73B1 cbz r3, .L745 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11826 .loc 1 5305 7 is_stmt 1 view .LVU4164 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11827 .loc 1 5305 38 is_stmt 0 view .LVU4165 11828 00b4 2368 ldr r3, [r4] 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11829 .loc 1 5305 48 view .LVU4166 11830 00b6 5A6A ldr r2, [r3, #36] 11831 .LVL862: 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11832 .loc 1 5305 12 view .LVU4167 11833 00b8 636A ldr r3, [r4, #36] 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11834 .loc 1 5305 23 view .LVU4168 11835 00ba 1A70 strb r2, [r3] 5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11836 .loc 1 5308 7 is_stmt 1 view .LVU4169 5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11837 .loc 1 5308 11 is_stmt 0 view .LVU4170 11838 00bc 636A ldr r3, [r4, #36] 5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11839 .loc 1 5308 21 view .LVU4171 11840 00be 0133 adds r3, r3, #1 11841 00c0 6362 str r3, [r4, #36] 5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11842 .loc 1 5310 7 is_stmt 1 view .LVU4172 5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11843 .loc 1 5310 11 is_stmt 0 view .LVU4173 11844 00c2 238D ldrh r3, [r4, #40] 5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; ARM GAS /tmp/ccDmmuIk.s page 409 11845 .loc 1 5310 21 view .LVU4174 11846 00c4 013B subs r3, r3, #1 11847 00c6 2385 strh r3, [r4, #40] @ movhi 5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11848 .loc 1 5311 7 is_stmt 1 view .LVU4175 5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11849 .loc 1 5311 11 is_stmt 0 view .LVU4176 11850 00c8 638D ldrh r3, [r4, #42] 11851 00ca 9BB2 uxth r3, r3 5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11852 .loc 1 5311 22 view .LVU4177 11853 00cc 013B subs r3, r3, #1 11854 00ce 9BB2 uxth r3, r3 11855 00d0 6385 strh r3, [r4, #42] @ movhi 11856 .L745: 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11857 .loc 1 5314 5 is_stmt 1 view .LVU4178 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11858 .loc 1 5314 14 is_stmt 0 view .LVU4179 11859 00d2 638D ldrh r3, [r4, #42] 11860 00d4 9BB2 uxth r3, r3 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11861 .loc 1 5314 8 view .LVU4180 11862 00d6 002B cmp r3, #0 11863 00d8 BBD1 bne .L738 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11864 .loc 1 5314 33 discriminator 1 view .LVU4181 11865 00da 10F5803F cmn r0, #65536 11866 00de B8D0 beq .L738 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11867 .loc 1 5318 7 is_stmt 1 view .LVU4182 11868 00e0 2046 mov r0, r4 11869 .LVL863: 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11870 .loc 1 5318 7 is_stmt 0 view .LVU4183 11871 00e2 FFF7FEFF bl I2C_ITSlaveSeqCplt 11872 .LVL864: 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11873 .loc 1 5318 7 view .LVU4184 11874 00e6 B4E7 b .L738 11875 .LVL865: 11876 .L744: 5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11877 .loc 1 5321 8 is_stmt 1 view .LVU4185 5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11878 .loc 1 5321 11 is_stmt 0 view .LVU4186 11879 00e8 11F0080F tst r1, #8 11880 00ec 02D0 beq .L746 5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11881 .loc 1 5321 65 discriminator 1 view .LVU4187 11882 00ee 12F0080F tst r2, #8 11883 00f2 18D1 bne .L754 11884 .L746: 5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11885 .loc 1 5326 8 is_stmt 1 view .LVU4188 5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11886 .loc 1 5326 11 is_stmt 0 view .LVU4189 ARM GAS /tmp/ccDmmuIk.s page 410 11887 00f4 11F0020F tst r1, #2 11888 00f8 ABD0 beq .L738 5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11889 .loc 1 5326 65 discriminator 1 view .LVU4190 11890 00fa 12F0020F tst r2, #2 11891 00fe A8D0 beq .L738 5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11892 .loc 1 5333 5 is_stmt 1 view .LVU4191 5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11893 .loc 1 5333 13 is_stmt 0 view .LVU4192 11894 0100 638D ldrh r3, [r4, #42] 11895 0102 9BB2 uxth r3, r3 5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11896 .loc 1 5333 8 view .LVU4193 11897 0104 9BB1 cbz r3, .L747 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11898 .loc 1 5336 7 is_stmt 1 view .LVU4194 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11899 .loc 1 5336 35 is_stmt 0 view .LVU4195 11900 0106 626A ldr r2, [r4, #36] 11901 .LVL866: 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11902 .loc 1 5336 11 view .LVU4196 11903 0108 2368 ldr r3, [r4] 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11904 .loc 1 5336 30 view .LVU4197 11905 010a 1278 ldrb r2, [r2] @ zero_extendqisi2 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11906 .loc 1 5336 28 view .LVU4198 11907 010c 9A62 str r2, [r3, #40] 5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11908 .loc 1 5339 7 is_stmt 1 view .LVU4199 5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11909 .loc 1 5339 11 is_stmt 0 view .LVU4200 11910 010e 636A ldr r3, [r4, #36] 5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11911 .loc 1 5339 21 view .LVU4201 11912 0110 0133 adds r3, r3, #1 11913 0112 6362 str r3, [r4, #36] 5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11914 .loc 1 5341 7 is_stmt 1 view .LVU4202 5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11915 .loc 1 5341 11 is_stmt 0 view .LVU4203 11916 0114 638D ldrh r3, [r4, #42] 11917 0116 9BB2 uxth r3, r3 5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11918 .loc 1 5341 22 view .LVU4204 11919 0118 013B subs r3, r3, #1 11920 011a 9BB2 uxth r3, r3 11921 011c 6385 strh r3, [r4, #42] @ movhi 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11922 .loc 1 5342 7 is_stmt 1 view .LVU4205 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11923 .loc 1 5342 11 is_stmt 0 view .LVU4206 11924 011e 238D ldrh r3, [r4, #40] 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11925 .loc 1 5342 21 view .LVU4207 ARM GAS /tmp/ccDmmuIk.s page 411 11926 0120 013B subs r3, r3, #1 11927 0122 2385 strh r3, [r4, #40] @ movhi 11928 0124 95E7 b .L738 11929 .LVL867: 11930 .L754: 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11931 .loc 1 5324 5 is_stmt 1 view .LVU4208 11932 0126 2046 mov r0, r4 11933 .LVL868: 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11934 .loc 1 5324 5 is_stmt 0 view .LVU4209 11935 0128 FFF7FEFF bl I2C_ITAddrCplt 11936 .LVL869: 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11937 .loc 1 5324 5 view .LVU4210 11938 012c 91E7 b .L738 11939 .LVL870: 11940 .L747: 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11941 .loc 1 5346 7 is_stmt 1 view .LVU4211 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11942 .loc 1 5346 10 is_stmt 0 view .LVU4212 11943 012e B0F1807F cmp r0, #16777216 11944 0132 01D0 beq .L748 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11945 .loc 1 5346 42 discriminator 1 view .LVU4213 11946 0134 0028 cmp r0, #0 11947 0136 8CD1 bne .L738 11948 .L748: 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11949 .loc 1 5350 9 is_stmt 1 view .LVU4214 11950 0138 2046 mov r0, r4 11951 .LVL871: 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11952 .loc 1 5350 9 is_stmt 0 view .LVU4215 11953 013a FFF7FEFF bl I2C_ITSlaveSeqCplt 11954 .LVL872: 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11955 .loc 1 5350 9 view .LVU4216 11956 013e 88E7 b .L738 11957 .LVL873: 11958 .L749: 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11959 .loc 1 5240 3 discriminator 1 view .LVU4217 11960 0140 0220 movs r0, #2 11961 .LVL874: 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11962 .loc 1 5240 3 discriminator 1 view .LVU4218 11963 0142 89E7 b .L736 11964 .cfi_endproc 11965 .LFE380: 11967 .section .text.I2C_ITMasterCplt,"ax",%progbits 11968 .align 1 11969 .syntax unified 11970 .thumb 11971 .thumb_func 11973 I2C_ITMasterCplt: ARM GAS /tmp/ccDmmuIk.s page 412 11974 .LVL875: 11975 .LFB389: 6132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 11976 .loc 1 6132 1 is_stmt 1 view -0 11977 .cfi_startproc 11978 @ args = 0, pretend = 0, frame = 8 11979 @ frame_needed = 0, uses_anonymous_args = 0 6132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 11980 .loc 1 6132 1 is_stmt 0 view .LVU4220 11981 0000 30B5 push {r4, r5, lr} 11982 .LCFI123: 11983 .cfi_def_cfa_offset 12 11984 .cfi_offset 4, -12 11985 .cfi_offset 5, -8 11986 .cfi_offset 14, -4 11987 0002 83B0 sub sp, sp, #12 11988 .LCFI124: 11989 .cfi_def_cfa_offset 24 11990 0004 0446 mov r4, r0 11991 0006 0D46 mov r5, r1 6133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11992 .loc 1 6133 3 is_stmt 1 view .LVU4221 6134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t tmpreg; 11993 .loc 1 6134 3 view .LVU4222 11994 .LVL876: 6135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11995 .loc 1 6135 3 view .LVU4223 6138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11996 .loc 1 6138 3 view .LVU4224 11997 0008 0368 ldr r3, [r0] 11998 000a 2022 movs r2, #32 11999 000c DA61 str r2, [r3, #28] 6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12000 .loc 1 6141 3 view .LVU4225 6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12001 .loc 1 6141 11 is_stmt 0 view .LVU4226 12002 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12003 .loc 1 6141 6 view .LVU4227 12004 0012 212B cmp r3, #33 12005 0014 30D0 beq .L767 6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12006 .loc 1 6146 8 is_stmt 1 view .LVU4228 6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12007 .loc 1 6146 16 is_stmt 0 view .LVU4229 12008 0016 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12009 .loc 1 6146 11 view .LVU4230 12010 001a 222B cmp r3, #34 12011 001c 32D0 beq .L768 12012 .LVL877: 12013 .L757: 6154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12014 .loc 1 6154 3 is_stmt 1 view .LVU4231 6157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12015 .loc 1 6157 3 view .LVU4232 12016 001e 2268 ldr r2, [r4] ARM GAS /tmp/ccDmmuIk.s page 413 12017 0020 5368 ldr r3, [r2, #4] 12018 0022 23F0FF73 bic r3, r3, #33423360 12019 0026 23F48B33 bic r3, r3, #71168 12020 002a 23F4FF73 bic r3, r3, #510 12021 002e 23F00103 bic r3, r3, #1 12022 0032 5360 str r3, [r2, #4] 6160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12023 .loc 1 6160 3 view .LVU4233 6160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12024 .loc 1 6160 23 is_stmt 0 view .LVU4234 12025 0034 0023 movs r3, #0 12026 0036 6363 str r3, [r4, #52] 6161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12027 .loc 1 6161 3 is_stmt 1 view .LVU4235 6161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12028 .loc 1 6161 23 is_stmt 0 view .LVU4236 12029 0038 A3F58033 sub r3, r3, #65536 12030 003c E362 str r3, [r4, #44] 6163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12031 .loc 1 6163 3 is_stmt 1 view .LVU4237 6163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12032 .loc 1 6163 6 is_stmt 0 view .LVU4238 12033 003e 15F0100F tst r5, #16 12034 0042 06D0 beq .L758 6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12035 .loc 1 6166 5 is_stmt 1 view .LVU4239 12036 0044 2368 ldr r3, [r4] 12037 0046 1022 movs r2, #16 12038 0048 DA61 str r2, [r3, #28] 6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12039 .loc 1 6169 5 view .LVU4240 6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12040 .loc 1 6169 9 is_stmt 0 view .LVU4241 12041 004a 636C ldr r3, [r4, #68] 6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12042 .loc 1 6169 21 view .LVU4242 12043 004c 43F00403 orr r3, r3, #4 12044 0050 6364 str r3, [r4, #68] 12045 .L758: 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12046 .loc 1 6173 3 is_stmt 1 view .LVU4243 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12047 .loc 1 6173 12 is_stmt 0 view .LVU4244 12048 0052 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12049 .loc 1 6173 6 view .LVU4245 12050 0056 602B cmp r3, #96 12051 0058 1AD0 beq .L769 12052 .L759: 6181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12053 .loc 1 6181 3 is_stmt 1 view .LVU4246 12054 005a 2046 mov r0, r4 12055 005c FFF7FEFF bl I2C_Flush_TXDR 12056 .LVL878: 6184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12057 .loc 1 6184 3 view .LVU4247 6184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 414 12058 .loc 1 6184 12 is_stmt 0 view .LVU4248 12059 0060 626C ldr r2, [r4, #68] 12060 .LVL879: 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12061 .loc 1 6187 3 is_stmt 1 view .LVU4249 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12062 .loc 1 6187 12 is_stmt 0 view .LVU4250 12063 0062 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12064 .loc 1 6187 6 view .LVU4251 12065 0066 602B cmp r3, #96 12066 0068 00D0 beq .L760 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12067 .loc 1 6187 44 discriminator 1 view .LVU4252 12068 006a D2B1 cbz r2, .L761 12069 .L760: 6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12070 .loc 1 6190 5 is_stmt 1 view .LVU4253 6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12071 .loc 1 6190 27 is_stmt 0 view .LVU4254 12072 006c 616C ldr r1, [r4, #68] 6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12073 .loc 1 6190 5 view .LVU4255 12074 006e 2046 mov r0, r4 12075 0070 FFF7FEFF bl I2C_ITError 12076 .LVL880: 12077 .L755: 6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12078 .loc 1 6266 1 view .LVU4256 12079 0074 03B0 add sp, sp, #12 12080 .LCFI125: 12081 .cfi_remember_state 12082 .cfi_def_cfa_offset 12 12083 @ sp needed 12084 0076 30BD pop {r4, r5, pc} 12085 .LVL881: 12086 .L767: 12087 .LCFI126: 12088 .cfi_restore_state 6143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12089 .loc 1 6143 5 is_stmt 1 view .LVU4257 12090 0078 0121 movs r1, #1 12091 .LVL882: 6143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12092 .loc 1 6143 5 is_stmt 0 view .LVU4258 12093 007a FFF7FEFF bl I2C_Disable_IRQ 12094 .LVL883: 6144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12095 .loc 1 6144 5 is_stmt 1 view .LVU4259 6144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12096 .loc 1 6144 25 is_stmt 0 view .LVU4260 12097 007e 1123 movs r3, #17 12098 0080 2363 str r3, [r4, #48] 12099 0082 CCE7 b .L757 12100 .LVL884: 12101 .L768: 6148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; ARM GAS /tmp/ccDmmuIk.s page 415 12102 .loc 1 6148 5 is_stmt 1 view .LVU4261 12103 0084 0221 movs r1, #2 12104 .LVL885: 6148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12105 .loc 1 6148 5 is_stmt 0 view .LVU4262 12106 0086 FFF7FEFF bl I2C_Disable_IRQ 12107 .LVL886: 6149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12108 .loc 1 6149 5 is_stmt 1 view .LVU4263 6149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12109 .loc 1 6149 25 is_stmt 0 view .LVU4264 12110 008a 1223 movs r3, #18 12111 008c 2363 str r3, [r4, #48] 12112 008e C6E7 b .L757 12113 .L769: 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12114 .loc 1 6173 44 discriminator 1 view .LVU4265 12115 0090 15F0040F tst r5, #4 12116 0094 E1D0 beq .L759 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 12117 .loc 1 6176 5 is_stmt 1 view .LVU4266 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 12118 .loc 1 6176 27 is_stmt 0 view .LVU4267 12119 0096 2368 ldr r3, [r4] 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 12120 .loc 1 6176 37 view .LVU4268 12121 0098 5B6A ldr r3, [r3, #36] 12122 009a DBB2 uxtb r3, r3 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 12123 .loc 1 6176 12 view .LVU4269 12124 009c 0193 str r3, [sp, #4] 6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12125 .loc 1 6177 5 is_stmt 1 view .LVU4270 12126 009e 019B ldr r3, [sp, #4] 12127 00a0 DBE7 b .L759 12128 .LVL887: 12129 .L761: 6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12130 .loc 1 6193 8 view .LVU4271 6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12131 .loc 1 6193 16 is_stmt 0 view .LVU4272 12132 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12133 .loc 1 6193 11 view .LVU4273 12134 00a6 212B cmp r3, #33 12135 00a8 15D0 beq .L770 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12136 .loc 1 6228 8 is_stmt 1 view .LVU4274 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12137 .loc 1 6228 16 is_stmt 0 view .LVU4275 12138 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12139 .loc 1 6228 11 view .LVU4276 12140 00ae 222B cmp r3, #34 12141 00b0 E0D1 bne .L755 6230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12142 .loc 1 6230 5 is_stmt 1 view .LVU4277 ARM GAS /tmp/ccDmmuIk.s page 416 6230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12143 .loc 1 6230 17 is_stmt 0 view .LVU4278 12144 00b2 2023 movs r3, #32 12145 00b4 84F84130 strb r3, [r4, #65] 6231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12146 .loc 1 6231 5 is_stmt 1 view .LVU4279 6231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12147 .loc 1 6231 25 is_stmt 0 view .LVU4280 12148 00b8 0023 movs r3, #0 12149 00ba 2363 str r3, [r4, #48] 6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12150 .loc 1 6233 5 is_stmt 1 view .LVU4281 6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12151 .loc 1 6233 13 is_stmt 0 view .LVU4282 12152 00bc 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12153 .loc 1 6233 8 view .LVU4283 12154 00c0 402B cmp r3, #64 12155 00c2 23D0 beq .L771 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12156 .loc 1 6249 7 is_stmt 1 view .LVU4284 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12157 .loc 1 6249 18 is_stmt 0 view .LVU4285 12158 00c4 0023 movs r3, #0 12159 00c6 84F84230 strb r3, [r4, #66] 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12160 .loc 1 6252 7 is_stmt 1 view .LVU4286 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12161 .loc 1 6252 7 view .LVU4287 12162 00ca 84F84030 strb r3, [r4, #64] 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12163 .loc 1 6252 7 view .LVU4288 6258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12164 .loc 1 6258 7 view .LVU4289 12165 00ce 2046 mov r0, r4 12166 00d0 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12167 .LVL888: 6265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12168 .loc 1 6265 3 view .LVU4290 6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12169 .loc 1 6266 1 is_stmt 0 view .LVU4291 12170 00d4 CEE7 b .L755 12171 .LVL889: 12172 .L770: 6195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12173 .loc 1 6195 5 is_stmt 1 view .LVU4292 6195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12174 .loc 1 6195 17 is_stmt 0 view .LVU4293 12175 00d6 2023 movs r3, #32 12176 00d8 84F84130 strb r3, [r4, #65] 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12177 .loc 1 6196 5 is_stmt 1 view .LVU4294 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12178 .loc 1 6196 25 is_stmt 0 view .LVU4295 12179 00dc 0023 movs r3, #0 12180 00de 2363 str r3, [r4, #48] 6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 417 12181 .loc 1 6198 5 is_stmt 1 view .LVU4296 6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12182 .loc 1 6198 13 is_stmt 0 view .LVU4297 12183 00e0 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12184 .loc 1 6198 8 view .LVU4298 12185 00e4 402B cmp r3, #64 12186 00e6 08D0 beq .L772 6214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12187 .loc 1 6214 7 is_stmt 1 view .LVU4299 6214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12188 .loc 1 6214 18 is_stmt 0 view .LVU4300 12189 00e8 0023 movs r3, #0 12190 00ea 84F84230 strb r3, [r4, #66] 6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12191 .loc 1 6217 7 is_stmt 1 view .LVU4301 6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12192 .loc 1 6217 7 view .LVU4302 12193 00ee 84F84030 strb r3, [r4, #64] 6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12194 .loc 1 6217 7 view .LVU4303 6223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12195 .loc 1 6223 7 view .LVU4304 12196 00f2 2046 mov r0, r4 12197 00f4 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12198 .LVL890: 6223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12199 .loc 1 6223 7 is_stmt 0 view .LVU4305 12200 00f8 BCE7 b .L755 12201 .LVL891: 12202 .L772: 6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12203 .loc 1 6200 7 is_stmt 1 view .LVU4306 6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12204 .loc 1 6200 18 is_stmt 0 view .LVU4307 12205 00fa 0023 movs r3, #0 12206 00fc 84F84230 strb r3, [r4, #66] 6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12207 .loc 1 6203 7 is_stmt 1 view .LVU4308 6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12208 .loc 1 6203 7 view .LVU4309 12209 0100 84F84030 strb r3, [r4, #64] 6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12210 .loc 1 6203 7 view .LVU4310 6209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12211 .loc 1 6209 7 view .LVU4311 12212 0104 2046 mov r0, r4 12213 0106 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12214 .LVL892: 6209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12215 .loc 1 6209 7 is_stmt 0 view .LVU4312 12216 010a B3E7 b .L755 12217 .LVL893: 12218 .L771: 6235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12219 .loc 1 6235 7 is_stmt 1 view .LVU4313 6235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 418 12220 .loc 1 6235 18 is_stmt 0 view .LVU4314 12221 010c 0023 movs r3, #0 12222 010e 84F84230 strb r3, [r4, #66] 6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12223 .loc 1 6238 7 is_stmt 1 view .LVU4315 6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12224 .loc 1 6238 7 view .LVU4316 12225 0112 84F84030 strb r3, [r4, #64] 6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12226 .loc 1 6238 7 view .LVU4317 6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12227 .loc 1 6244 7 view .LVU4318 12228 0116 2046 mov r0, r4 12229 0118 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12230 .LVL894: 6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12231 .loc 1 6244 7 is_stmt 0 view .LVU4319 12232 011c AAE7 b .L755 12233 .cfi_endproc 12234 .LFE389: 12236 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12237 .align 1 12238 .syntax unified 12239 .thumb 12240 .thumb_func 12242 I2C_Master_ISR_IT: 12243 .LVL895: 12244 .LFB378: 4941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 12245 .loc 1 4941 1 is_stmt 1 view -0 12246 .cfi_startproc 12247 @ args = 0, pretend = 0, frame = 0 12248 @ frame_needed = 0, uses_anonymous_args = 0 4942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12249 .loc 1 4942 3 view .LVU4321 4943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12250 .loc 1 4943 3 view .LVU4322 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12251 .loc 1 4946 3 view .LVU4323 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12252 .loc 1 4946 3 view .LVU4324 12253 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12254 0004 012B cmp r3, #1 12255 0006 00F0C280 beq .L787 4941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 12256 .loc 1 4941 1 is_stmt 0 view .LVU4325 12257 000a 70B5 push {r4, r5, r6, lr} 12258 .LCFI127: 12259 .cfi_def_cfa_offset 16 12260 .cfi_offset 4, -16 12261 .cfi_offset 5, -12 12262 .cfi_offset 6, -8 12263 .cfi_offset 14, -4 12264 000c 82B0 sub sp, sp, #8 12265 .LCFI128: 12266 .cfi_def_cfa_offset 24 12267 000e 0446 mov r4, r0 ARM GAS /tmp/ccDmmuIk.s page 419 12268 0010 0D46 mov r5, r1 12269 0012 1646 mov r6, r2 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12270 .loc 1 4946 3 is_stmt 1 discriminator 2 view .LVU4326 12271 0014 0123 movs r3, #1 12272 0016 80F84030 strb r3, [r0, #64] 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12273 .loc 1 4946 3 view .LVU4327 4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12274 .loc 1 4948 3 view .LVU4328 4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12275 .loc 1 4948 6 is_stmt 0 view .LVU4329 12276 001a 11F0100F tst r1, #16 12277 001e 02D0 beq .L775 4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12278 .loc 1 4948 58 discriminator 1 view .LVU4330 12279 0020 12F0100F tst r2, #16 12280 0024 22D1 bne .L792 12281 .L775: 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12282 .loc 1 4962 8 is_stmt 1 view .LVU4331 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12283 .loc 1 4962 11 is_stmt 0 view .LVU4332 12284 0026 15F0040F tst r5, #4 12285 002a 29D0 beq .L777 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12286 .loc 1 4962 65 discriminator 1 view .LVU4333 12287 002c 16F0040F tst r6, #4 12288 0030 26D0 beq .L777 4966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12289 .loc 1 4966 5 is_stmt 1 view .LVU4334 4966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12290 .loc 1 4966 16 is_stmt 0 view .LVU4335 12291 0032 25F00405 bic r5, r5, #4 12292 .LVL896: 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12293 .loc 1 4969 5 is_stmt 1 view .LVU4336 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12294 .loc 1 4969 36 is_stmt 0 view .LVU4337 12295 0036 2368 ldr r3, [r4] 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12296 .loc 1 4969 46 view .LVU4338 12297 0038 5A6A ldr r2, [r3, #36] 12298 .LVL897: 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12299 .loc 1 4969 10 view .LVU4339 12300 003a 636A ldr r3, [r4, #36] 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12301 .loc 1 4969 21 view .LVU4340 12302 003c 1A70 strb r2, [r3] 4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12303 .loc 1 4972 5 is_stmt 1 view .LVU4341 4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12304 .loc 1 4972 9 is_stmt 0 view .LVU4342 12305 003e 636A ldr r3, [r4, #36] 4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12306 .loc 1 4972 19 view .LVU4343 ARM GAS /tmp/ccDmmuIk.s page 420 12307 0040 0133 adds r3, r3, #1 12308 0042 6362 str r3, [r4, #36] 4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12309 .loc 1 4974 5 is_stmt 1 view .LVU4344 4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12310 .loc 1 4974 9 is_stmt 0 view .LVU4345 12311 0044 238D ldrh r3, [r4, #40] 4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12312 .loc 1 4974 19 view .LVU4346 12313 0046 013B subs r3, r3, #1 12314 0048 2385 strh r3, [r4, #40] @ movhi 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12315 .loc 1 4975 5 is_stmt 1 view .LVU4347 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12316 .loc 1 4975 9 is_stmt 0 view .LVU4348 12317 004a 638D ldrh r3, [r4, #42] 12318 004c 9BB2 uxth r3, r3 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12319 .loc 1 4975 20 view .LVU4349 12320 004e 013B subs r3, r3, #1 12321 0050 9BB2 uxth r3, r3 12322 0052 6385 strh r3, [r4, #42] @ movhi 12323 .LVL898: 12324 .L776: 5067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12325 .loc 1 5067 3 is_stmt 1 view .LVU4350 5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12326 .loc 1 5069 3 view .LVU4351 5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12327 .loc 1 5069 6 is_stmt 0 view .LVU4352 12328 0054 15F0200F tst r5, #32 12329 0058 03D0 beq .L786 5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12330 .loc 1 5069 61 discriminator 1 view .LVU4353 12331 005a 16F0200F tst r6, #32 12332 005e 40F09180 bne .L793 12333 .L786: 5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12334 .loc 1 5077 3 is_stmt 1 view .LVU4354 5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12335 .loc 1 5077 3 view .LVU4355 12336 0062 0020 movs r0, #0 12337 0064 84F84000 strb r0, [r4, #64] 5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12338 .loc 1 5077 3 view .LVU4356 5079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12339 .loc 1 5079 3 view .LVU4357 5080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12340 .loc 1 5080 1 is_stmt 0 view .LVU4358 12341 0068 02B0 add sp, sp, #8 12342 .LCFI129: 12343 .cfi_remember_state 12344 .cfi_def_cfa_offset 16 12345 @ sp needed 12346 006a 70BD pop {r4, r5, r6, pc} 12347 .LVL899: 12348 .L792: ARM GAS /tmp/ccDmmuIk.s page 421 12349 .LCFI130: 12350 .cfi_restore_state 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12351 .loc 1 4952 5 is_stmt 1 view .LVU4359 12352 006c 0368 ldr r3, [r0] 12353 006e 1022 movs r2, #16 12354 .LVL900: 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12355 .loc 1 4952 5 is_stmt 0 view .LVU4360 12356 0070 DA61 str r2, [r3, #28] 4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12357 .loc 1 4957 5 is_stmt 1 view .LVU4361 4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12358 .loc 1 4957 9 is_stmt 0 view .LVU4362 12359 0072 436C ldr r3, [r0, #68] 4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12360 .loc 1 4957 21 view .LVU4363 12361 0074 43F00403 orr r3, r3, #4 12362 0078 4364 str r3, [r0, #68] 4960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12363 .loc 1 4960 5 is_stmt 1 view .LVU4364 12364 007a FFF7FEFF bl I2C_Flush_TXDR 12365 .LVL901: 4960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12366 .loc 1 4960 5 is_stmt 0 view .LVU4365 12367 007e E9E7 b .L776 12368 .LVL902: 12369 .L777: 4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12370 .loc 1 4977 8 is_stmt 1 view .LVU4366 12371 0080 C5F38013 ubfx r3, r5, #6, #1 4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12372 .loc 1 4977 11 is_stmt 0 view .LVU4367 12373 0084 15F0400F tst r5, #64 12374 0088 19D1 bne .L778 4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12375 .loc 1 4977 63 discriminator 1 view .LVU4368 12376 008a 15F0020F tst r5, #2 12377 008e 16D0 beq .L778 4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 12378 .loc 1 4978 66 view .LVU4369 12379 0090 16F0020F tst r6, #2 12380 0094 13D0 beq .L778 4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12381 .loc 1 4982 5 is_stmt 1 view .LVU4370 4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12382 .loc 1 4982 13 is_stmt 0 view .LVU4371 12383 0096 638D ldrh r3, [r4, #42] 12384 0098 9BB2 uxth r3, r3 4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12385 .loc 1 4982 8 view .LVU4372 12386 009a 002B cmp r3, #0 12387 009c DAD0 beq .L776 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12388 .loc 1 4985 7 is_stmt 1 view .LVU4373 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12389 .loc 1 4985 35 is_stmt 0 view .LVU4374 ARM GAS /tmp/ccDmmuIk.s page 422 12390 009e 626A ldr r2, [r4, #36] 12391 .LVL903: 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12392 .loc 1 4985 11 view .LVU4375 12393 00a0 2368 ldr r3, [r4] 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12394 .loc 1 4985 30 view .LVU4376 12395 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12396 .loc 1 4985 28 view .LVU4377 12397 00a4 9A62 str r2, [r3, #40] 4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12398 .loc 1 4988 7 is_stmt 1 view .LVU4378 4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12399 .loc 1 4988 11 is_stmt 0 view .LVU4379 12400 00a6 636A ldr r3, [r4, #36] 4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12401 .loc 1 4988 21 view .LVU4380 12402 00a8 0133 adds r3, r3, #1 12403 00aa 6362 str r3, [r4, #36] 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12404 .loc 1 4990 7 is_stmt 1 view .LVU4381 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12405 .loc 1 4990 11 is_stmt 0 view .LVU4382 12406 00ac 238D ldrh r3, [r4, #40] 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12407 .loc 1 4990 21 view .LVU4383 12408 00ae 013B subs r3, r3, #1 12409 00b0 2385 strh r3, [r4, #40] @ movhi 4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12410 .loc 1 4991 7 is_stmt 1 view .LVU4384 4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12411 .loc 1 4991 11 is_stmt 0 view .LVU4385 12412 00b2 638D ldrh r3, [r4, #42] 12413 00b4 9BB2 uxth r3, r3 4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12414 .loc 1 4991 22 view .LVU4386 12415 00b6 013B subs r3, r3, #1 12416 00b8 9BB2 uxth r3, r3 12417 00ba 6385 strh r3, [r4, #42] @ movhi 12418 00bc CAE7 b .L776 12419 .LVL904: 12420 .L778: 4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12421 .loc 1 4994 8 is_stmt 1 view .LVU4387 4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12422 .loc 1 4994 11 is_stmt 0 view .LVU4388 12423 00be 15F0800F tst r5, #128 12424 00c2 3FD0 beq .L779 4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12425 .loc 1 4994 64 discriminator 1 view .LVU4389 12426 00c4 16F0400F tst r6, #64 12427 00c8 3CD0 beq .L779 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12428 .loc 1 4997 5 is_stmt 1 view .LVU4390 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12429 .loc 1 4997 14 is_stmt 0 view .LVU4391 ARM GAS /tmp/ccDmmuIk.s page 423 12430 00ca 638D ldrh r3, [r4, #42] 12431 00cc 9BB2 uxth r3, r3 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12432 .loc 1 4997 8 view .LVU4392 12433 00ce 5BB3 cbz r3, .L780 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12434 .loc 1 4997 41 discriminator 1 view .LVU4393 12435 00d0 238D ldrh r3, [r4, #40] 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12436 .loc 1 4997 33 discriminator 1 view .LVU4394 12437 00d2 4BBB cbnz r3, .L780 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12438 .loc 1 4999 7 is_stmt 1 view .LVU4395 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12439 .loc 1 4999 35 is_stmt 0 view .LVU4396 12440 00d4 2368 ldr r3, [r4] 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12441 .loc 1 4999 45 view .LVU4397 12442 00d6 5968 ldr r1, [r3, #4] 12443 .LVL905: 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12444 .loc 1 4999 18 view .LVU4398 12445 00d8 C1F30901 ubfx r1, r1, #0, #10 12446 .LVL906: 5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12447 .loc 1 5001 7 is_stmt 1 view .LVU4399 5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12448 .loc 1 5001 15 is_stmt 0 view .LVU4400 12449 00dc 638D ldrh r3, [r4, #42] 12450 00de 9BB2 uxth r3, r3 5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12451 .loc 1 5001 10 view .LVU4401 12452 00e0 FF2B cmp r3, #255 12453 00e2 0ED8 bhi .L794 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12454 .loc 1 5008 9 is_stmt 1 view .LVU4402 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12455 .loc 1 5008 30 is_stmt 0 view .LVU4403 12456 00e4 628D ldrh r2, [r4, #42] 12457 .LVL907: 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12458 .loc 1 5008 30 view .LVU4404 12459 00e6 92B2 uxth r2, r2 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12460 .loc 1 5008 24 view .LVU4405 12461 00e8 2285 strh r2, [r4, #40] @ movhi 5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12462 .loc 1 5009 9 is_stmt 1 view .LVU4406 5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12463 .loc 1 5009 17 is_stmt 0 view .LVU4407 12464 00ea E36A ldr r3, [r4, #44] 5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12465 .loc 1 5009 12 view .LVU4408 12466 00ec 13F5803F cmn r3, #65536 12467 00f0 11D0 beq .L782 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12468 .loc 1 5011 11 is_stmt 1 view .LVU4409 ARM GAS /tmp/ccDmmuIk.s page 424 5012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12469 .loc 1 5012 34 is_stmt 0 view .LVU4410 12470 00f2 E36A ldr r3, [r4, #44] 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12471 .loc 1 5011 11 view .LVU4411 12472 00f4 0020 movs r0, #0 12473 .LVL908: 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12474 .loc 1 5011 11 view .LVU4412 12475 00f6 0090 str r0, [sp] 12476 00f8 D2B2 uxtb r2, r2 12477 00fa 2046 mov r0, r4 12478 00fc FFF7FEFF bl I2C_TransferConfig 12479 .LVL909: 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12480 .loc 1 5011 11 view .LVU4413 12481 0100 A8E7 b .L776 12482 .LVL910: 12483 .L794: 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12484 .loc 1 5003 9 is_stmt 1 view .LVU4414 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12485 .loc 1 5003 24 is_stmt 0 view .LVU4415 12486 0102 FF22 movs r2, #255 12487 .LVL911: 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12488 .loc 1 5003 24 view .LVU4416 12489 0104 2285 strh r2, [r4, #40] @ movhi 5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12490 .loc 1 5004 9 is_stmt 1 view .LVU4417 12491 0106 0023 movs r3, #0 12492 0108 0093 str r3, [sp] 12493 010a 4FF08073 mov r3, #16777216 12494 010e 2046 mov r0, r4 12495 .LVL912: 5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12496 .loc 1 5004 9 is_stmt 0 view .LVU4418 12497 0110 FFF7FEFF bl I2C_TransferConfig 12498 .LVL913: 5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12499 .loc 1 5004 9 view .LVU4419 12500 0114 9EE7 b .L776 12501 .LVL914: 12502 .L782: 5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12503 .loc 1 5016 11 is_stmt 1 view .LVU4420 12504 0116 0023 movs r3, #0 12505 0118 0093 str r3, [sp] 12506 011a 4FF00073 mov r3, #33554432 12507 011e D2B2 uxtb r2, r2 12508 0120 2046 mov r0, r4 12509 .LVL915: 5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12510 .loc 1 5016 11 is_stmt 0 view .LVU4421 12511 0122 FFF7FEFF bl I2C_TransferConfig 12512 .LVL916: 5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); ARM GAS /tmp/ccDmmuIk.s page 425 12513 .loc 1 5016 11 view .LVU4422 12514 0126 95E7 b .L776 12515 .LVL917: 12516 .L780: 5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12517 .loc 1 5024 7 is_stmt 1 view .LVU4423 5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12518 .loc 1 5024 11 is_stmt 0 view .LVU4424 12519 0128 2368 ldr r3, [r4] 12520 012a 5B68 ldr r3, [r3, #4] 5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12521 .loc 1 5024 10 view .LVU4425 12522 012c 13F0007F tst r3, #33554432 12523 0130 03D1 bne .L783 5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12524 .loc 1 5027 9 is_stmt 1 view .LVU4426 12525 0132 2046 mov r0, r4 12526 .LVL918: 5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12527 .loc 1 5027 9 is_stmt 0 view .LVU4427 12528 0134 FFF7FEFF bl I2C_ITMasterSeqCplt 12529 .LVL919: 5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12530 .loc 1 5027 9 view .LVU4428 12531 0138 8CE7 b .L776 12532 .LVL920: 12533 .L783: 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12534 .loc 1 5033 9 is_stmt 1 view .LVU4429 12535 013a 4021 movs r1, #64 12536 .LVL921: 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12537 .loc 1 5033 9 is_stmt 0 view .LVU4430 12538 013c 2046 mov r0, r4 12539 .LVL922: 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12540 .loc 1 5033 9 view .LVU4431 12541 013e FFF7FEFF bl I2C_ITError 12542 .LVL923: 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12543 .loc 1 5033 9 view .LVU4432 12544 0142 87E7 b .L776 12545 .LVL924: 12546 .L779: 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12547 .loc 1 5037 8 is_stmt 1 view .LVU4433 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12548 .loc 1 5037 11 is_stmt 0 view .LVU4434 12549 0144 002B cmp r3, #0 12550 0146 85D0 beq .L776 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12551 .loc 1 5037 63 discriminator 1 view .LVU4435 12552 0148 16F0400F tst r6, #64 12553 014c 82D0 beq .L776 5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12554 .loc 1 5040 5 is_stmt 1 view .LVU4436 5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 426 12555 .loc 1 5040 13 is_stmt 0 view .LVU4437 12556 014e 638D ldrh r3, [r4, #42] 12557 0150 9BB2 uxth r3, r3 5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12558 .loc 1 5040 8 view .LVU4438 12559 0152 93B9 cbnz r3, .L784 5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12560 .loc 1 5042 7 is_stmt 1 view .LVU4439 5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12561 .loc 1 5042 11 is_stmt 0 view .LVU4440 12562 0154 2368 ldr r3, [r4] 12563 0156 5A68 ldr r2, [r3, #4] 12564 .LVL925: 5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12565 .loc 1 5042 10 view .LVU4441 12566 0158 12F0007F tst r2, #33554432 12567 015c 7FF47AAF bne .L776 5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12568 .loc 1 5045 9 is_stmt 1 view .LVU4442 5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12569 .loc 1 5045 17 is_stmt 0 view .LVU4443 12570 0160 E26A ldr r2, [r4, #44] 5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12571 .loc 1 5045 12 view .LVU4444 12572 0162 12F5803F cmn r2, #65536 12573 0166 04D1 bne .L785 5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12574 .loc 1 5048 11 is_stmt 1 view .LVU4445 5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12575 .loc 1 5048 25 is_stmt 0 view .LVU4446 12576 0168 5A68 ldr r2, [r3, #4] 5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12577 .loc 1 5048 31 view .LVU4447 12578 016a 42F48042 orr r2, r2, #16384 12579 016e 5A60 str r2, [r3, #4] 12580 0170 70E7 b .L776 12581 .L785: 5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12582 .loc 1 5053 11 is_stmt 1 view .LVU4448 12583 0172 2046 mov r0, r4 12584 .LVL926: 5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12585 .loc 1 5053 11 is_stmt 0 view .LVU4449 12586 0174 FFF7FEFF bl I2C_ITMasterSeqCplt 12587 .LVL927: 5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12588 .loc 1 5053 11 view .LVU4450 12589 0178 6CE7 b .L776 12590 .LVL928: 12591 .L784: 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12592 .loc 1 5061 7 is_stmt 1 view .LVU4451 12593 017a 4021 movs r1, #64 12594 .LVL929: 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12595 .loc 1 5061 7 is_stmt 0 view .LVU4452 12596 017c 2046 mov r0, r4 ARM GAS /tmp/ccDmmuIk.s page 427 12597 .LVL930: 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12598 .loc 1 5061 7 view .LVU4453 12599 017e FFF7FEFF bl I2C_ITError 12600 .LVL931: 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12601 .loc 1 5061 7 view .LVU4454 12602 0182 67E7 b .L776 12603 .LVL932: 12604 .L793: 5073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12605 .loc 1 5073 5 is_stmt 1 view .LVU4455 12606 0184 2946 mov r1, r5 12607 0186 2046 mov r0, r4 12608 0188 FFF7FEFF bl I2C_ITMasterCplt 12609 .LVL933: 12610 018c 69E7 b .L786 12611 .LVL934: 12612 .L787: 12613 .LCFI131: 12614 .cfi_def_cfa_offset 0 12615 .cfi_restore 4 12616 .cfi_restore 5 12617 .cfi_restore 6 12618 .cfi_restore 14 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12619 .loc 1 4946 3 is_stmt 0 discriminator 1 view .LVU4456 12620 018e 0220 movs r0, #2 12621 .LVL935: 5080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12622 .loc 1 5080 1 view .LVU4457 12623 0190 7047 bx lr 12624 .cfi_endproc 12625 .LFE378: 12627 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits 12628 .align 1 12629 .syntax unified 12630 .thumb 12631 .thumb_func 12633 I2C_Mem_ISR_DMA: 12634 .LVL936: 12635 .LFB382: 5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12636 .loc 1 5515 1 is_stmt 1 view -0 12637 .cfi_startproc 12638 @ args = 0, pretend = 0, frame = 0 12639 @ frame_needed = 0, uses_anonymous_args = 0 5516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12640 .loc 1 5516 3 view .LVU4459 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12641 .loc 1 5519 3 view .LVU4460 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12642 .loc 1 5519 3 view .LVU4461 12643 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12644 0004 012B cmp r3, #1 12645 0006 00F0C580 beq .L810 5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; ARM GAS /tmp/ccDmmuIk.s page 428 12646 .loc 1 5515 1 is_stmt 0 view .LVU4462 12647 000a 10B5 push {r4, lr} 12648 .LCFI132: 12649 .cfi_def_cfa_offset 8 12650 .cfi_offset 4, -8 12651 .cfi_offset 14, -4 12652 000c 82B0 sub sp, sp, #8 12653 .LCFI133: 12654 .cfi_def_cfa_offset 16 12655 000e 0446 mov r4, r0 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12656 .loc 1 5519 3 is_stmt 1 discriminator 2 view .LVU4463 12657 0010 0123 movs r3, #1 12658 0012 80F84030 strb r3, [r0, #64] 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12659 .loc 1 5519 3 view .LVU4464 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12660 .loc 1 5521 3 view .LVU4465 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12661 .loc 1 5521 6 is_stmt 0 view .LVU4466 12662 0016 11F0100F tst r1, #16 12663 001a 02D0 beq .L797 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12664 .loc 1 5521 55 discriminator 1 view .LVU4467 12665 001c 12F0100F tst r2, #16 12666 0020 10D1 bne .L816 12667 .L797: 5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12668 .loc 1 5538 8 is_stmt 1 view .LVU4468 5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12669 .loc 1 5538 11 is_stmt 0 view .LVU4469 12670 0022 11F0020F tst r1, #2 12671 0026 1BD0 beq .L799 5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12672 .loc 1 5538 62 discriminator 1 view .LVU4470 12673 0028 12F0020F tst r2, #2 12674 002c 18D0 beq .L799 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12675 .loc 1 5542 5 is_stmt 1 view .LVU4471 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12676 .loc 1 5542 9 is_stmt 0 view .LVU4472 12677 002e 2368 ldr r3, [r4] 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12678 .loc 1 5542 32 view .LVU4473 12679 0030 226D ldr r2, [r4, #80] 12680 .LVL937: 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12681 .loc 1 5542 26 view .LVU4474 12682 0032 9A62 str r2, [r3, #40] 5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12683 .loc 1 5545 5 is_stmt 1 view .LVU4475 5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12684 .loc 1 5545 22 is_stmt 0 view .LVU4476 12685 0034 4FF0FF33 mov r3, #-1 12686 0038 2365 str r3, [r4, #80] 12687 .LVL938: 12688 .L798: ARM GAS /tmp/ccDmmuIk.s page 429 5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12689 .loc 1 5645 3 is_stmt 1 view .LVU4477 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12690 .loc 1 5648 3 view .LVU4478 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12691 .loc 1 5648 3 view .LVU4479 12692 003a 0020 movs r0, #0 12693 003c 84F84000 strb r0, [r4, #64] 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12694 .loc 1 5648 3 view .LVU4480 5650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12695 .loc 1 5650 3 view .LVU4481 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12696 .loc 1 5651 1 is_stmt 0 view .LVU4482 12697 0040 02B0 add sp, sp, #8 12698 .LCFI134: 12699 .cfi_remember_state 12700 .cfi_def_cfa_offset 8 12701 @ sp needed 12702 0042 10BD pop {r4, pc} 12703 .LVL939: 12704 .L816: 12705 .LCFI135: 12706 .cfi_restore_state 5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12707 .loc 1 5525 5 is_stmt 1 view .LVU4483 12708 0044 0368 ldr r3, [r0] 12709 0046 1022 movs r2, #16 12710 .LVL940: 5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12711 .loc 1 5525 5 is_stmt 0 view .LVU4484 12712 0048 DA61 str r2, [r3, #28] 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12713 .loc 1 5528 5 is_stmt 1 view .LVU4485 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12714 .loc 1 5528 9 is_stmt 0 view .LVU4486 12715 004a 436C ldr r3, [r0, #68] 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12716 .loc 1 5528 21 view .LVU4487 12717 004c 43F00403 orr r3, r3, #4 12718 0050 4364 str r3, [r0, #68] 5533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12719 .loc 1 5533 5 is_stmt 1 view .LVU4488 12720 0052 2021 movs r1, #32 12721 .LVL941: 5533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12722 .loc 1 5533 5 is_stmt 0 view .LVU4489 12723 0054 FFF7FEFF bl I2C_Enable_IRQ 12724 .LVL942: 5536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12725 .loc 1 5536 5 is_stmt 1 view .LVU4490 12726 0058 2046 mov r0, r4 12727 005a FFF7FEFF bl I2C_Flush_TXDR 12728 .LVL943: 12729 005e ECE7 b .L798 12730 .LVL944: 12731 .L799: ARM GAS /tmp/ccDmmuIk.s page 430 5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12732 .loc 1 5547 8 view .LVU4491 5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12733 .loc 1 5547 11 is_stmt 0 view .LVU4492 12734 0060 11F0800F tst r1, #128 12735 0064 02D0 beq .L800 5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12736 .loc 1 5547 61 discriminator 1 view .LVU4493 12737 0066 12F0400F tst r2, #64 12738 006a 0FD1 bne .L817 12739 .L800: 5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12740 .loc 1 5592 8 is_stmt 1 view .LVU4494 5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12741 .loc 1 5592 11 is_stmt 0 view .LVU4495 12742 006c 11F0400F tst r1, #64 12743 0070 02D0 beq .L805 5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12744 .loc 1 5592 60 discriminator 1 view .LVU4496 12745 0072 12F0400F tst r2, #64 12746 0076 4DD1 bne .L818 12747 .L805: 5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12748 .loc 1 5636 8 is_stmt 1 view .LVU4497 5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12749 .loc 1 5636 11 is_stmt 0 view .LVU4498 12750 0078 11F0200F tst r1, #32 12751 007c DDD0 beq .L798 5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12752 .loc 1 5636 63 discriminator 1 view .LVU4499 12753 007e 12F0200F tst r2, #32 12754 0082 DAD0 beq .L798 5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12755 .loc 1 5640 5 is_stmt 1 view .LVU4500 12756 0084 2046 mov r0, r4 12757 .LVL945: 5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12758 .loc 1 5640 5 is_stmt 0 view .LVU4501 12759 0086 FFF7FEFF bl I2C_ITMasterCplt 12760 .LVL946: 5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12761 .loc 1 5640 5 view .LVU4502 12762 008a D6E7 b .L798 12763 .LVL947: 12764 .L817: 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12765 .loc 1 5551 5 is_stmt 1 view .LVU4503 12766 008c 0121 movs r1, #1 12767 .LVL948: 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12768 .loc 1 5551 5 is_stmt 0 view .LVU4504 12769 008e 2046 mov r0, r4 12770 .LVL949: 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12771 .loc 1 5551 5 view .LVU4505 12772 0090 FFF7FEFF bl I2C_Disable_IRQ 12773 .LVL950: ARM GAS /tmp/ccDmmuIk.s page 431 5554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12774 .loc 1 5554 5 is_stmt 1 view .LVU4506 12775 0094 1021 movs r1, #16 12776 0096 2046 mov r0, r4 12777 0098 FFF7FEFF bl I2C_Enable_IRQ 12778 .LVL951: 5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12779 .loc 1 5556 5 view .LVU4507 5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12780 .loc 1 5556 13 is_stmt 0 view .LVU4508 12781 009c 638D ldrh r3, [r4, #42] 12782 009e 9BB2 uxth r3, r3 5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12783 .loc 1 5556 8 view .LVU4509 12784 00a0 002B cmp r3, #0 12785 00a2 32D0 beq .L801 5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12786 .loc 1 5559 7 is_stmt 1 view .LVU4510 5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12787 .loc 1 5559 15 is_stmt 0 view .LVU4511 12788 00a4 638D ldrh r3, [r4, #42] 12789 00a6 9BB2 uxth r3, r3 5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12790 .loc 1 5559 10 view .LVU4512 12791 00a8 FF2B cmp r3, #255 12792 00aa 1AD9 bls .L802 5561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12793 .loc 1 5561 9 is_stmt 1 view .LVU4513 5561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12794 .loc 1 5561 24 is_stmt 0 view .LVU4514 12795 00ac FF22 movs r2, #255 12796 00ae 2285 strh r2, [r4, #40] @ movhi 5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12797 .loc 1 5562 9 is_stmt 1 view .LVU4515 5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12798 .loc 1 5562 48 is_stmt 0 view .LVU4516 12799 00b0 E16C ldr r1, [r4, #76] 5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12800 .loc 1 5562 9 view .LVU4517 12801 00b2 0023 movs r3, #0 12802 00b4 0093 str r3, [sp] 12803 00b6 4FF08073 mov r3, #16777216 12804 00ba 89B2 uxth r1, r1 12805 00bc 2046 mov r0, r4 12806 00be FFF7FEFF bl I2C_TransferConfig 12807 .LVL952: 12808 .L803: 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12809 .loc 1 5573 7 is_stmt 1 view .LVU4518 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12810 .loc 1 5573 11 is_stmt 0 view .LVU4519 12811 00c2 638D ldrh r3, [r4, #42] 12812 00c4 9BB2 uxth r3, r3 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12813 .loc 1 5573 30 view .LVU4520 12814 00c6 228D ldrh r2, [r4, #40] 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccDmmuIk.s page 432 12815 .loc 1 5573 23 view .LVU4521 12816 00c8 9B1A subs r3, r3, r2 12817 00ca 9BB2 uxth r3, r3 12818 00cc 6385 strh r3, [r4, #42] @ movhi 5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12819 .loc 1 5576 7 is_stmt 1 view .LVU4522 5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12820 .loc 1 5576 15 is_stmt 0 view .LVU4523 12821 00ce 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12822 .loc 1 5576 10 view .LVU4524 12823 00d2 222B cmp r3, #34 12824 00d4 13D0 beq .L819 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12825 .loc 1 5582 9 is_stmt 1 view .LVU4525 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12826 .loc 1 5582 13 is_stmt 0 view .LVU4526 12827 00d6 2268 ldr r2, [r4] 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12828 .loc 1 5582 23 view .LVU4527 12829 00d8 1368 ldr r3, [r2] 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12830 .loc 1 5582 29 view .LVU4528 12831 00da 43F48043 orr r3, r3, #16384 12832 00de 1360 str r3, [r2] 12833 00e0 ABE7 b .L798 12834 .L802: 5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12835 .loc 1 5567 9 is_stmt 1 view .LVU4529 5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12836 .loc 1 5567 30 is_stmt 0 view .LVU4530 12837 00e2 628D ldrh r2, [r4, #42] 12838 00e4 92B2 uxth r2, r2 5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12839 .loc 1 5567 24 view .LVU4531 12840 00e6 2285 strh r2, [r4, #40] @ movhi 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12841 .loc 1 5568 9 is_stmt 1 view .LVU4532 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12842 .loc 1 5568 48 is_stmt 0 view .LVU4533 12843 00e8 E16C ldr r1, [r4, #76] 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12844 .loc 1 5568 9 view .LVU4534 12845 00ea 0023 movs r3, #0 12846 00ec 0093 str r3, [sp] 12847 00ee 4FF00073 mov r3, #33554432 12848 00f2 D2B2 uxtb r2, r2 12849 00f4 89B2 uxth r1, r1 12850 00f6 2046 mov r0, r4 12851 00f8 FFF7FEFF bl I2C_TransferConfig 12852 .LVL953: 12853 00fc E1E7 b .L803 12854 .L819: 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12855 .loc 1 5578 9 is_stmt 1 view .LVU4535 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12856 .loc 1 5578 13 is_stmt 0 view .LVU4536 ARM GAS /tmp/ccDmmuIk.s page 433 12857 00fe 2268 ldr r2, [r4] 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12858 .loc 1 5578 23 view .LVU4537 12859 0100 1368 ldr r3, [r2] 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12860 .loc 1 5578 29 view .LVU4538 12861 0102 43F40043 orr r3, r3, #32768 12862 0106 1360 str r3, [r2] 12863 0108 97E7 b .L798 12864 .L801: 5589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12865 .loc 1 5589 7 is_stmt 1 view .LVU4539 12866 010a 4021 movs r1, #64 12867 010c 2046 mov r0, r4 12868 010e FFF7FEFF bl I2C_ITError 12869 .LVL954: 12870 0112 92E7 b .L798 12871 .LVL955: 12872 .L818: 5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12873 .loc 1 5596 5 view .LVU4540 12874 0114 0121 movs r1, #1 12875 .LVL956: 5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12876 .loc 1 5596 5 is_stmt 0 view .LVU4541 12877 0116 2046 mov r0, r4 12878 .LVL957: 5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12879 .loc 1 5596 5 view .LVU4542 12880 0118 FFF7FEFF bl I2C_Disable_IRQ 12881 .LVL958: 5599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12882 .loc 1 5599 5 is_stmt 1 view .LVU4543 12883 011c 1021 movs r1, #16 12884 011e 2046 mov r0, r4 12885 0120 FFF7FEFF bl I2C_Enable_IRQ 12886 .LVL959: 5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12887 .loc 1 5601 5 view .LVU4544 5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12888 .loc 1 5601 13 is_stmt 0 view .LVU4545 12889 0124 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12890 .loc 1 5601 8 view .LVU4546 12891 0128 222B cmp r3, #34 12892 012a 1ED0 beq .L811 5516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12893 .loc 1 5516 12 view .LVU4547 12894 012c 1A48 ldr r0, .L821 12895 .L806: 12896 .LVL960: 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12897 .loc 1 5606 5 is_stmt 1 view .LVU4548 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12898 .loc 1 5606 13 is_stmt 0 view .LVU4549 12899 012e 638D ldrh r3, [r4, #42] 12900 0130 9BB2 uxth r3, r3 ARM GAS /tmp/ccDmmuIk.s page 434 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12901 .loc 1 5606 8 view .LVU4550 12902 0132 FF2B cmp r3, #255 12903 0134 1BD9 bls .L807 5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12904 .loc 1 5608 7 is_stmt 1 view .LVU4551 5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12905 .loc 1 5608 22 is_stmt 0 view .LVU4552 12906 0136 FF22 movs r2, #255 12907 0138 2285 strh r2, [r4, #40] @ movhi 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12908 .loc 1 5611 7 is_stmt 1 view .LVU4553 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12909 .loc 1 5611 46 is_stmt 0 view .LVU4554 12910 013a E16C ldr r1, [r4, #76] 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12911 .loc 1 5611 7 view .LVU4555 12912 013c 0090 str r0, [sp] 12913 013e 4FF08073 mov r3, #16777216 12914 0142 89B2 uxth r1, r1 12915 0144 2046 mov r0, r4 12916 .LVL961: 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12917 .loc 1 5611 7 view .LVU4556 12918 0146 FFF7FEFF bl I2C_TransferConfig 12919 .LVL962: 12920 .L808: 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12921 .loc 1 5624 5 is_stmt 1 view .LVU4557 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12922 .loc 1 5624 9 is_stmt 0 view .LVU4558 12923 014a 638D ldrh r3, [r4, #42] 12924 014c 9BB2 uxth r3, r3 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12925 .loc 1 5624 28 view .LVU4559 12926 014e 228D ldrh r2, [r4, #40] 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12927 .loc 1 5624 21 view .LVU4560 12928 0150 9B1A subs r3, r3, r2 12929 0152 9BB2 uxth r3, r3 12930 0154 6385 strh r3, [r4, #42] @ movhi 5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12931 .loc 1 5627 5 is_stmt 1 view .LVU4561 5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12932 .loc 1 5627 13 is_stmt 0 view .LVU4562 12933 0156 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12934 .loc 1 5627 8 view .LVU4563 12935 015a 222B cmp r3, #34 12936 015c 14D0 beq .L820 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12937 .loc 1 5633 7 is_stmt 1 view .LVU4564 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12938 .loc 1 5633 11 is_stmt 0 view .LVU4565 12939 015e 2268 ldr r2, [r4] 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12940 .loc 1 5633 21 view .LVU4566 ARM GAS /tmp/ccDmmuIk.s page 435 12941 0160 1368 ldr r3, [r2] 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12942 .loc 1 5633 27 view .LVU4567 12943 0162 43F48043 orr r3, r3, #16384 12944 0166 1360 str r3, [r2] 12945 0168 67E7 b .L798 12946 .LVL963: 12947 .L811: 5603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12948 .loc 1 5603 17 view .LVU4568 12949 016a 0C48 ldr r0, .L821+4 12950 016c DFE7 b .L806 12951 .LVL964: 12952 .L807: 5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12953 .loc 1 5616 7 is_stmt 1 view .LVU4569 5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12954 .loc 1 5616 28 is_stmt 0 view .LVU4570 12955 016e 628D ldrh r2, [r4, #42] 12956 0170 92B2 uxth r2, r2 5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12957 .loc 1 5616 22 view .LVU4571 12958 0172 2285 strh r2, [r4, #40] @ movhi 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12959 .loc 1 5619 7 is_stmt 1 view .LVU4572 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12960 .loc 1 5619 46 is_stmt 0 view .LVU4573 12961 0174 E16C ldr r1, [r4, #76] 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12962 .loc 1 5619 7 view .LVU4574 12963 0176 0090 str r0, [sp] 12964 0178 4FF00073 mov r3, #33554432 12965 017c D2B2 uxtb r2, r2 12966 017e 89B2 uxth r1, r1 12967 0180 2046 mov r0, r4 12968 .LVL965: 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12969 .loc 1 5619 7 view .LVU4575 12970 0182 FFF7FEFF bl I2C_TransferConfig 12971 .LVL966: 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12972 .loc 1 5619 7 view .LVU4576 12973 0186 E0E7 b .L808 12974 .L820: 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12975 .loc 1 5629 7 is_stmt 1 view .LVU4577 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12976 .loc 1 5629 11 is_stmt 0 view .LVU4578 12977 0188 2268 ldr r2, [r4] 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12978 .loc 1 5629 21 view .LVU4579 12979 018a 1368 ldr r3, [r2] 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12980 .loc 1 5629 27 view .LVU4580 12981 018c 43F40043 orr r3, r3, #32768 12982 0190 1360 str r3, [r2] 12983 0192 52E7 b .L798 ARM GAS /tmp/ccDmmuIk.s page 436 12984 .LVL967: 12985 .L810: 12986 .LCFI136: 12987 .cfi_def_cfa_offset 0 12988 .cfi_restore 4 12989 .cfi_restore 14 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12990 .loc 1 5519 3 discriminator 1 view .LVU4581 12991 0194 0220 movs r0, #2 12992 .LVL968: 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12993 .loc 1 5651 1 view .LVU4582 12994 0196 7047 bx lr 12995 .L822: 12996 .align 2 12997 .L821: 12998 0198 00200080 .word -2147475456 12999 019c 00240080 .word -2147474432 13000 .cfi_endproc 13001 .LFE382: 13003 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 13004 .align 1 13005 .syntax unified 13006 .thumb 13007 .thumb_func 13009 I2C_Slave_ISR_DMA: 13010 .LVL969: 13011 .LFB383: 5663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13012 .loc 1 5663 1 is_stmt 1 view -0 13013 .cfi_startproc 13014 @ args = 0, pretend = 0, frame = 0 13015 @ frame_needed = 0, uses_anonymous_args = 0 5663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13016 .loc 1 5663 1 is_stmt 0 view .LVU4584 13017 0000 70B5 push {r4, r5, r6, lr} 13018 .LCFI137: 13019 .cfi_def_cfa_offset 16 13020 .cfi_offset 4, -16 13021 .cfi_offset 5, -12 13022 .cfi_offset 6, -8 13023 .cfi_offset 14, -4 13024 0002 0446 mov r4, r0 5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13025 .loc 1 5664 3 is_stmt 1 view .LVU4585 5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13026 .loc 1 5664 12 is_stmt 0 view .LVU4586 13027 0004 C06A ldr r0, [r0, #44] 13028 .LVL970: 5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13029 .loc 1 5665 3 is_stmt 1 view .LVU4587 5666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13030 .loc 1 5666 3 view .LVU4588 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13031 .loc 1 5669 3 view .LVU4589 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13032 .loc 1 5669 3 view .LVU4590 ARM GAS /tmp/ccDmmuIk.s page 437 13033 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 13034 000a 012B cmp r3, #1 13035 000c 00F08580 beq .L841 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13036 .loc 1 5669 3 discriminator 2 view .LVU4591 13037 0010 0123 movs r3, #1 13038 0012 84F84030 strb r3, [r4, #64] 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13039 .loc 1 5669 3 view .LVU4592 5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13040 .loc 1 5672 3 view .LVU4593 5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13041 .loc 1 5672 6 is_stmt 0 view .LVU4594 13042 0016 11F0200F tst r1, #32 13043 001a 02D0 beq .L825 5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13044 .loc 1 5672 58 discriminator 1 view .LVU4595 13045 001c 12F0200F tst r2, #32 13046 0020 19D1 bne .L846 13047 .L825: 5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13048 .loc 1 5678 8 is_stmt 1 view .LVU4596 5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13049 .loc 1 5678 11 is_stmt 0 view .LVU4597 13050 0022 11F0100F tst r1, #16 13051 0026 6AD0 beq .L827 5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13052 .loc 1 5678 60 discriminator 1 view .LVU4598 13053 0028 12F0100F tst r2, #16 13054 002c 67D0 beq .L827 5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13055 .loc 1 5685 5 is_stmt 1 view .LVU4599 13056 002e C2F38036 ubfx r6, r2, #14, #1 5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13057 .loc 1 5685 8 is_stmt 0 view .LVU4600 13058 0032 12F4804F tst r2, #16384 13059 0036 02D1 bne .L828 5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13060 .loc 1 5685 68 discriminator 1 view .LVU4601 13061 0038 12F4004F tst r2, #32768 13062 003c 5BD0 beq .L829 13063 .L828: 5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13064 .loc 1 5689 7 is_stmt 1 view .LVU4602 5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13065 .loc 1 5689 15 is_stmt 0 view .LVU4603 13066 003e E36B ldr r3, [r4, #60] 5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13067 .loc 1 5689 10 view .LVU4604 13068 0040 6BB1 cbz r3, .L842 5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13069 .loc 1 5691 9 is_stmt 1 view .LVU4605 13070 0042 C2F3C035 ubfx r5, r2, #15, #1 5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13071 .loc 1 5691 12 is_stmt 0 view .LVU4606 13072 0046 12F4004F tst r2, #32768 13073 004a 09D0 beq .L830 ARM GAS /tmp/ccDmmuIk.s page 438 5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13074 .loc 1 5693 11 is_stmt 1 view .LVU4607 5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13075 .loc 1 5693 15 is_stmt 0 view .LVU4608 13076 004c 1B68 ldr r3, [r3] 13077 004e 5B68 ldr r3, [r3, #4] 5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13078 .loc 1 5693 14 view .LVU4609 13079 0050 2BB3 cbz r3, .L843 5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13080 .loc 1 5665 12 view .LVU4610 13081 0052 0025 movs r5, #0 13082 0054 04E0 b .L830 13083 .L846: 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13084 .loc 1 5676 5 is_stmt 1 view .LVU4611 13085 0056 2046 mov r0, r4 13086 .LVL971: 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13087 .loc 1 5676 5 is_stmt 0 view .LVU4612 13088 0058 FFF7FEFF bl I2C_ITSlaveCplt 13089 .LVL972: 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13090 .loc 1 5676 5 view .LVU4613 13091 005c 55E0 b .L826 13092 .LVL973: 13093 .L842: 5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13094 .loc 1 5665 12 view .LVU4614 13095 005e 0025 movs r5, #0 13096 .L830: 13097 .LVL974: 5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13098 .loc 1 5701 7 is_stmt 1 view .LVU4615 5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13099 .loc 1 5701 15 is_stmt 0 view .LVU4616 13100 0060 A36B ldr r3, [r4, #56] 5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13101 .loc 1 5701 10 view .LVU4617 13102 0062 1BB1 cbz r3, .L831 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13103 .loc 1 5703 9 is_stmt 1 view .LVU4618 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13104 .loc 1 5703 12 is_stmt 0 view .LVU4619 13105 0064 16B1 cbz r6, .L831 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13106 .loc 1 5705 11 is_stmt 1 view .LVU4620 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13107 .loc 1 5705 15 is_stmt 0 view .LVU4621 13108 0066 1B68 ldr r3, [r3] 13109 0068 5B68 ldr r3, [r3, #4] 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13110 .loc 1 5705 14 view .LVU4622 13111 006a D3B1 cbz r3, .L832 13112 .L831: 5712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13113 .loc 1 5712 7 is_stmt 1 view .LVU4623 ARM GAS /tmp/ccDmmuIk.s page 439 5712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13114 .loc 1 5712 10 is_stmt 0 view .LVU4624 13115 006c CDB9 cbnz r5, .L832 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13116 .loc 1 5743 9 is_stmt 1 view .LVU4625 13117 006e 2368 ldr r3, [r4] 13118 0070 1022 movs r2, #16 13119 .LVL975: 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13120 .loc 1 5743 9 is_stmt 0 view .LVU4626 13121 0072 DA61 str r2, [r3, #28] 5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13122 .loc 1 5746 9 is_stmt 1 view .LVU4627 5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13123 .loc 1 5746 13 is_stmt 0 view .LVU4628 13124 0074 636C ldr r3, [r4, #68] 5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13125 .loc 1 5746 25 view .LVU4629 13126 0076 43F00403 orr r3, r3, #4 13127 007a 6364 str r3, [r4, #68] 5749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13128 .loc 1 5749 9 is_stmt 1 view .LVU4630 5749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13129 .loc 1 5749 18 is_stmt 0 view .LVU4631 13130 007c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13131 0080 DBB2 uxtb r3, r3 13132 .LVL976: 5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13133 .loc 1 5751 9 is_stmt 1 view .LVU4632 5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13134 .loc 1 5751 12 is_stmt 0 view .LVU4633 13135 0082 10B1 cbz r0, .L836 5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13136 .loc 1 5751 45 discriminator 1 view .LVU4634 13137 0084 B0F1807F cmp r0, #16777216 13138 0088 3FD1 bne .L826 13139 .L836: 5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13140 .loc 1 5753 11 is_stmt 1 view .LVU4635 13141 008a 213B subs r3, r3, #33 13142 .LVL977: 5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13143 .loc 1 5753 11 is_stmt 0 view .LVU4636 13144 008c 092B cmp r3, #9 13145 008e 2AD8 bhi .L837 13146 0090 DFE803F0 tbb [pc, r3] 13147 .L839: 13148 0094 27 .byte (.L840-.L839)/2 13149 0095 2E .byte (.L838-.L839)/2 13150 0096 29 .byte (.L837-.L839)/2 13151 0097 29 .byte (.L837-.L839)/2 13152 0098 29 .byte (.L837-.L839)/2 13153 0099 29 .byte (.L837-.L839)/2 13154 009a 29 .byte (.L837-.L839)/2 13155 009b 29 .byte (.L837-.L839)/2 13156 009c 27 .byte (.L840-.L839)/2 13157 009d 2E .byte (.L838-.L839)/2 ARM GAS /tmp/ccDmmuIk.s page 440 13158 .LVL978: 13159 .p2align 1 13160 .L843: 5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13161 .loc 1 5695 26 view .LVU4637 13162 009e 0125 movs r5, #1 13163 00a0 DEE7 b .L830 13164 .LVL979: 13165 .L832: 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13166 .loc 1 5714 9 is_stmt 1 view .LVU4638 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13167 .loc 1 5714 18 is_stmt 0 view .LVU4639 13168 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13169 .loc 1 5714 12 view .LVU4640 13170 00a6 282B cmp r3, #40 13171 00a8 07D0 beq .L847 13172 .L834: 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13173 .loc 1 5721 14 is_stmt 1 view .LVU4641 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13174 .loc 1 5721 23 is_stmt 0 view .LVU4642 13175 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13176 .loc 1 5721 17 view .LVU4643 13177 00ae 292B cmp r3, #41 13178 00b0 0AD0 beq .L848 13179 .L835: 5736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13180 .loc 1 5736 11 is_stmt 1 view .LVU4644 13181 00b2 2368 ldr r3, [r4] 13182 00b4 1022 movs r2, #16 13183 .LVL980: 5736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13184 .loc 1 5736 11 is_stmt 0 view .LVU4645 13185 00b6 DA61 str r2, [r3, #28] 13186 00b8 27E0 b .L826 13187 .LVL981: 13188 .L847: 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13189 .loc 1 5714 51 discriminator 1 view .LVU4646 13190 00ba B0F1007F cmp r0, #33554432 13191 00be F4D1 bne .L834 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13192 .loc 1 5719 11 is_stmt 1 view .LVU4647 13193 00c0 2046 mov r0, r4 13194 .LVL982: 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13195 .loc 1 5719 11 is_stmt 0 view .LVU4648 13196 00c2 FFF7FEFF bl I2C_ITListenCplt 13197 .LVL983: 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13198 .loc 1 5719 11 view .LVU4649 13199 00c6 20E0 b .L826 13200 .LVL984: 13201 .L848: ARM GAS /tmp/ccDmmuIk.s page 441 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13202 .loc 1 5721 64 discriminator 1 view .LVU4650 13203 00c8 10F5803F cmn r0, #65536 13204 00cc F1D0 beq .L835 5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13205 .loc 1 5724 11 is_stmt 1 view .LVU4651 13206 00ce 2368 ldr r3, [r4] 13207 00d0 1022 movs r2, #16 13208 .LVL985: 5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13209 .loc 1 5724 11 is_stmt 0 view .LVU4652 13210 00d2 DA61 str r2, [r3, #28] 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13211 .loc 1 5727 11 is_stmt 1 view .LVU4653 13212 00d4 2046 mov r0, r4 13213 .LVL986: 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13214 .loc 1 5727 11 is_stmt 0 view .LVU4654 13215 00d6 FFF7FEFF bl I2C_Flush_TXDR 13216 .LVL987: 5731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13217 .loc 1 5731 11 is_stmt 1 view .LVU4655 13218 00da 2046 mov r0, r4 13219 00dc FFF7FEFF bl I2C_ITSlaveSeqCplt 13220 .LVL988: 13221 00e0 13E0 b .L826 13222 .LVL989: 13223 .L840: 5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13224 .loc 1 5755 13 view .LVU4656 5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13225 .loc 1 5755 33 is_stmt 0 view .LVU4657 13226 00e2 2123 movs r3, #33 13227 .LVL990: 5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13228 .loc 1 5755 33 view .LVU4658 13229 00e4 2363 str r3, [r4, #48] 13230 .L837: 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13231 .loc 1 5767 11 is_stmt 1 view .LVU4659 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13232 .loc 1 5767 33 is_stmt 0 view .LVU4660 13233 00e6 616C ldr r1, [r4, #68] 13234 .LVL991: 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13235 .loc 1 5767 11 view .LVU4661 13236 00e8 2046 mov r0, r4 13237 .LVL992: 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13238 .loc 1 5767 11 view .LVU4662 13239 00ea FFF7FEFF bl I2C_ITError 13240 .LVL993: 13241 00ee 0CE0 b .L826 13242 .LVL994: 13243 .L838: 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13244 .loc 1 5759 13 is_stmt 1 view .LVU4663 ARM GAS /tmp/ccDmmuIk.s page 442 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13245 .loc 1 5759 33 is_stmt 0 view .LVU4664 13246 00f0 2223 movs r3, #34 13247 .LVL995: 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13248 .loc 1 5759 33 view .LVU4665 13249 00f2 2363 str r3, [r4, #48] 13250 00f4 F7E7 b .L837 13251 .LVL996: 13252 .L829: 5774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13253 .loc 1 5774 7 is_stmt 1 view .LVU4666 13254 00f6 2368 ldr r3, [r4] 13255 00f8 1022 movs r2, #16 13256 .LVL997: 5774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13257 .loc 1 5774 7 is_stmt 0 view .LVU4667 13258 00fa DA61 str r2, [r3, #28] 13259 00fc 05E0 b .L826 13260 .LVL998: 13261 .L827: 5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13262 .loc 1 5777 8 is_stmt 1 view .LVU4668 5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13263 .loc 1 5777 11 is_stmt 0 view .LVU4669 13264 00fe 11F0080F tst r1, #8 13265 0102 02D0 beq .L826 5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13266 .loc 1 5777 62 discriminator 1 view .LVU4670 13267 0104 12F0080F tst r2, #8 13268 0108 03D1 bne .L849 13269 .LVL999: 13270 .L826: 5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13271 .loc 1 5785 3 is_stmt 1 view .LVU4671 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13272 .loc 1 5788 3 view .LVU4672 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13273 .loc 1 5788 3 view .LVU4673 13274 010a 0020 movs r0, #0 13275 010c 84F84000 strb r0, [r4, #64] 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13276 .loc 1 5788 3 view .LVU4674 5790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13277 .loc 1 5790 3 view .LVU4675 13278 .L824: 5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13279 .loc 1 5791 1 is_stmt 0 view .LVU4676 13280 0110 70BD pop {r4, r5, r6, pc} 13281 .LVL1000: 13282 .L849: 5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13283 .loc 1 5780 5 is_stmt 1 view .LVU4677 13284 0112 2046 mov r0, r4 13285 .LVL1001: 5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13286 .loc 1 5780 5 is_stmt 0 view .LVU4678 ARM GAS /tmp/ccDmmuIk.s page 443 13287 0114 FFF7FEFF bl I2C_ITAddrCplt 13288 .LVL1002: 5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13289 .loc 1 5780 5 view .LVU4679 13290 0118 F7E7 b .L826 13291 .LVL1003: 13292 .L841: 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13293 .loc 1 5669 3 discriminator 1 view .LVU4680 13294 011a 0220 movs r0, #2 13295 .LVL1004: 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13296 .loc 1 5669 3 discriminator 1 view .LVU4681 13297 011c F8E7 b .L824 13298 .cfi_endproc 13299 .LFE383: 13301 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 13302 .align 1 13303 .syntax unified 13304 .thumb 13305 .thumb_func 13307 I2C_Master_ISR_DMA: 13308 .LVL1005: 13309 .LFB381: 5375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 13310 .loc 1 5375 1 is_stmt 1 view -0 13311 .cfi_startproc 13312 @ args = 0, pretend = 0, frame = 0 13313 @ frame_needed = 0, uses_anonymous_args = 0 5376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 13314 .loc 1 5376 3 view .LVU4683 5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13315 .loc 1 5377 3 view .LVU4684 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13316 .loc 1 5380 3 view .LVU4685 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13317 .loc 1 5380 3 view .LVU4686 13318 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13319 0004 012B cmp r3, #1 13320 0006 00F09980 beq .L863 5375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 13321 .loc 1 5375 1 is_stmt 0 view .LVU4687 13322 000a 10B5 push {r4, lr} 13323 .LCFI138: 13324 .cfi_def_cfa_offset 8 13325 .cfi_offset 4, -8 13326 .cfi_offset 14, -4 13327 000c 82B0 sub sp, sp, #8 13328 .LCFI139: 13329 .cfi_def_cfa_offset 16 13330 000e 0446 mov r4, r0 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13331 .loc 1 5380 3 is_stmt 1 discriminator 2 view .LVU4688 13332 0010 0123 movs r3, #1 13333 0012 80F84030 strb r3, [r0, #64] 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13334 .loc 1 5380 3 view .LVU4689 ARM GAS /tmp/ccDmmuIk.s page 444 5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13335 .loc 1 5382 3 view .LVU4690 5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13336 .loc 1 5382 6 is_stmt 0 view .LVU4691 13337 0016 11F0100F tst r1, #16 13338 001a 02D0 beq .L852 5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13339 .loc 1 5382 55 discriminator 1 view .LVU4692 13340 001c 12F0100F tst r2, #16 13341 0020 31D1 bne .L869 13342 .L852: 5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13343 .loc 1 5399 8 is_stmt 1 view .LVU4693 5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13344 .loc 1 5399 11 is_stmt 0 view .LVU4694 13345 0022 11F0800F tst r1, #128 13346 0026 5FD0 beq .L854 5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13347 .loc 1 5399 61 discriminator 1 view .LVU4695 13348 0028 12F0400F tst r2, #64 13349 002c 5CD0 beq .L854 5403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13350 .loc 1 5403 5 is_stmt 1 view .LVU4696 13351 002e 2268 ldr r2, [r4] 13352 .LVL1006: 5403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13353 .loc 1 5403 5 is_stmt 0 view .LVU4697 13354 0030 1368 ldr r3, [r2] 13355 0032 23F04003 bic r3, r3, #64 13356 0036 1360 str r3, [r2] 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13357 .loc 1 5405 5 is_stmt 1 view .LVU4698 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13358 .loc 1 5405 13 is_stmt 0 view .LVU4699 13359 0038 638D ldrh r3, [r4, #42] 13360 003a 9BB2 uxth r3, r3 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13361 .loc 1 5405 8 view .LVU4700 13362 003c 002B cmp r3, #0 13363 003e 45D0 beq .L855 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13364 .loc 1 5408 7 is_stmt 1 view .LVU4701 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13365 .loc 1 5408 35 is_stmt 0 view .LVU4702 13366 0040 2368 ldr r3, [r4] 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13367 .loc 1 5408 45 view .LVU4703 13368 0042 5968 ldr r1, [r3, #4] 13369 .LVL1007: 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13370 .loc 1 5408 18 view .LVU4704 13371 0044 C1F30901 ubfx r1, r1, #0, #10 13372 .LVL1008: 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13373 .loc 1 5411 7 is_stmt 1 view .LVU4705 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13374 .loc 1 5411 15 is_stmt 0 view .LVU4706 ARM GAS /tmp/ccDmmuIk.s page 445 13375 0048 638D ldrh r3, [r4, #42] 13376 004a 9BB2 uxth r3, r3 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13377 .loc 1 5411 10 view .LVU4707 13378 004c FF2B cmp r3, #255 13379 004e 2CD9 bls .L856 5413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 13380 .loc 1 5413 9 is_stmt 1 view .LVU4708 5413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 13381 .loc 1 5413 24 is_stmt 0 view .LVU4709 13382 0050 FF23 movs r3, #255 13383 0052 2385 strh r3, [r4, #40] @ movhi 5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13384 .loc 1 5414 9 is_stmt 1 view .LVU4710 13385 .LVL1009: 5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13386 .loc 1 5414 18 is_stmt 0 view .LVU4711 13387 0054 4FF08073 mov r3, #16777216 13388 .LVL1010: 13389 .L857: 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13390 .loc 1 5430 7 is_stmt 1 view .LVU4712 13391 0058 0022 movs r2, #0 13392 005a 0092 str r2, [sp] 13393 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 13394 0060 2046 mov r0, r4 13395 .LVL1011: 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13396 .loc 1 5430 7 is_stmt 0 view .LVU4713 13397 0062 FFF7FEFF bl I2C_TransferConfig 13398 .LVL1012: 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13399 .loc 1 5433 7 is_stmt 1 view .LVU4714 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13400 .loc 1 5433 11 is_stmt 0 view .LVU4715 13401 0066 638D ldrh r3, [r4, #42] 13402 0068 9BB2 uxth r3, r3 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13403 .loc 1 5433 30 view .LVU4716 13404 006a 228D ldrh r2, [r4, #40] 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13405 .loc 1 5433 23 view .LVU4717 13406 006c 9B1A subs r3, r3, r2 13407 006e 9BB2 uxth r3, r3 13408 0070 6385 strh r3, [r4, #42] @ movhi 5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13409 .loc 1 5436 7 is_stmt 1 view .LVU4718 5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13410 .loc 1 5436 15 is_stmt 0 view .LVU4719 13411 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13412 .loc 1 5436 10 view .LVU4720 13413 0076 222B cmp r3, #34 13414 0078 22D0 beq .L870 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13415 .loc 1 5442 9 is_stmt 1 view .LVU4721 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 446 13416 .loc 1 5442 13 is_stmt 0 view .LVU4722 13417 007a 2268 ldr r2, [r4] 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13418 .loc 1 5442 23 view .LVU4723 13419 007c 1368 ldr r3, [r2] 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13420 .loc 1 5442 29 view .LVU4724 13421 007e 43F48043 orr r3, r3, #16384 13422 0082 1360 str r3, [r2] 13423 0084 0CE0 b .L853 13424 .LVL1013: 13425 .L869: 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13426 .loc 1 5386 5 is_stmt 1 view .LVU4725 13427 0086 0368 ldr r3, [r0] 13428 0088 1022 movs r2, #16 13429 .LVL1014: 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13430 .loc 1 5386 5 is_stmt 0 view .LVU4726 13431 008a DA61 str r2, [r3, #28] 5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13432 .loc 1 5389 5 is_stmt 1 view .LVU4727 5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13433 .loc 1 5389 9 is_stmt 0 view .LVU4728 13434 008c 436C ldr r3, [r0, #68] 5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13435 .loc 1 5389 21 view .LVU4729 13436 008e 43F00403 orr r3, r3, #4 13437 0092 4364 str r3, [r0, #68] 5394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13438 .loc 1 5394 5 is_stmt 1 view .LVU4730 13439 0094 2021 movs r1, #32 13440 .LVL1015: 5394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13441 .loc 1 5394 5 is_stmt 0 view .LVU4731 13442 0096 FFF7FEFF bl I2C_Enable_IRQ 13443 .LVL1016: 5397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13444 .loc 1 5397 5 is_stmt 1 view .LVU4732 13445 009a 2046 mov r0, r4 13446 009c FFF7FEFF bl I2C_Flush_TXDR 13447 .LVL1017: 13448 .L853: 5497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13449 .loc 1 5497 3 view .LVU4733 5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13450 .loc 1 5500 3 view .LVU4734 5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13451 .loc 1 5500 3 view .LVU4735 13452 00a0 0020 movs r0, #0 13453 00a2 84F84000 strb r0, [r4, #64] 5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13454 .loc 1 5500 3 view .LVU4736 5502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13455 .loc 1 5502 3 view .LVU4737 5503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13456 .loc 1 5503 1 is_stmt 0 view .LVU4738 ARM GAS /tmp/ccDmmuIk.s page 447 13457 00a6 02B0 add sp, sp, #8 13458 .LCFI140: 13459 .cfi_remember_state 13460 .cfi_def_cfa_offset 8 13461 @ sp needed 13462 00a8 10BD pop {r4, pc} 13463 .LVL1018: 13464 .L856: 13465 .LCFI141: 13466 .cfi_restore_state 5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13467 .loc 1 5418 9 is_stmt 1 view .LVU4739 5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13468 .loc 1 5418 30 is_stmt 0 view .LVU4740 13469 00aa 638D ldrh r3, [r4, #42] 5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13470 .loc 1 5418 24 view .LVU4741 13471 00ac 2385 strh r3, [r4, #40] @ movhi 5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13472 .loc 1 5419 9 is_stmt 1 view .LVU4742 5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13473 .loc 1 5419 17 is_stmt 0 view .LVU4743 13474 00ae E36A ldr r3, [r4, #44] 5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13475 .loc 1 5419 12 view .LVU4744 13476 00b0 13F5803F cmn r3, #65536 13477 00b4 01D0 beq .L864 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13478 .loc 1 5421 11 is_stmt 1 view .LVU4745 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13479 .loc 1 5421 20 is_stmt 0 view .LVU4746 13480 00b6 E36A ldr r3, [r4, #44] 13481 .LVL1019: 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13482 .loc 1 5421 20 view .LVU4747 13483 00b8 CEE7 b .L857 13484 .LVL1020: 13485 .L864: 5425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13486 .loc 1 5425 20 view .LVU4748 13487 00ba 4FF00073 mov r3, #33554432 13488 00be CBE7 b .L857 13489 .LVL1021: 13490 .L870: 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13491 .loc 1 5438 9 is_stmt 1 view .LVU4749 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13492 .loc 1 5438 13 is_stmt 0 view .LVU4750 13493 00c0 2268 ldr r2, [r4] 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13494 .loc 1 5438 23 view .LVU4751 13495 00c2 1368 ldr r3, [r2] 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13496 .loc 1 5438 29 view .LVU4752 13497 00c4 43F40043 orr r3, r3, #32768 13498 00c8 1360 str r3, [r2] 13499 00ca E9E7 b .L853 ARM GAS /tmp/ccDmmuIk.s page 448 13500 .LVL1022: 13501 .L855: 5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13502 .loc 1 5448 7 is_stmt 1 view .LVU4753 5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13503 .loc 1 5448 11 is_stmt 0 view .LVU4754 13504 00cc 2368 ldr r3, [r4] 13505 00ce 5B68 ldr r3, [r3, #4] 5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13506 .loc 1 5448 10 view .LVU4755 13507 00d0 13F0007F tst r3, #33554432 13508 00d4 03D1 bne .L859 5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13509 .loc 1 5451 9 is_stmt 1 view .LVU4756 13510 00d6 2046 mov r0, r4 13511 .LVL1023: 5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13512 .loc 1 5451 9 is_stmt 0 view .LVU4757 13513 00d8 FFF7FEFF bl I2C_ITMasterSeqCplt 13514 .LVL1024: 5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13515 .loc 1 5451 9 view .LVU4758 13516 00dc E0E7 b .L853 13517 .LVL1025: 13518 .L859: 5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13519 .loc 1 5457 9 is_stmt 1 view .LVU4759 13520 00de 4021 movs r1, #64 13521 .LVL1026: 5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13522 .loc 1 5457 9 is_stmt 0 view .LVU4760 13523 00e0 2046 mov r0, r4 13524 .LVL1027: 5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13525 .loc 1 5457 9 view .LVU4761 13526 00e2 FFF7FEFF bl I2C_ITError 13527 .LVL1028: 13528 00e6 DBE7 b .L853 13529 .LVL1029: 13530 .L854: 5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13531 .loc 1 5461 8 is_stmt 1 view .LVU4762 5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13532 .loc 1 5461 11 is_stmt 0 view .LVU4763 13533 00e8 11F0400F tst r1, #64 13534 00ec 1CD0 beq .L860 5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13535 .loc 1 5461 60 discriminator 1 view .LVU4764 13536 00ee 12F0400F tst r2, #64 13537 00f2 19D0 beq .L860 5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13538 .loc 1 5464 5 is_stmt 1 view .LVU4765 5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13539 .loc 1 5464 13 is_stmt 0 view .LVU4766 13540 00f4 638D ldrh r3, [r4, #42] 13541 00f6 9BB2 uxth r3, r3 5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccDmmuIk.s page 449 13542 .loc 1 5464 8 view .LVU4767 13543 00f8 8BB9 cbnz r3, .L861 5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13544 .loc 1 5466 7 is_stmt 1 view .LVU4768 5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13545 .loc 1 5466 11 is_stmt 0 view .LVU4769 13546 00fa 2368 ldr r3, [r4] 13547 00fc 5A68 ldr r2, [r3, #4] 13548 .LVL1030: 5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13549 .loc 1 5466 10 view .LVU4770 13550 00fe 12F0007F tst r2, #33554432 13551 0102 CDD1 bne .L853 5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13552 .loc 1 5469 9 is_stmt 1 view .LVU4771 5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13553 .loc 1 5469 17 is_stmt 0 view .LVU4772 13554 0104 E26A ldr r2, [r4, #44] 5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13555 .loc 1 5469 12 view .LVU4773 13556 0106 12F5803F cmn r2, #65536 13557 010a 04D1 bne .L862 5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13558 .loc 1 5472 11 is_stmt 1 view .LVU4774 5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13559 .loc 1 5472 25 is_stmt 0 view .LVU4775 13560 010c 5A68 ldr r2, [r3, #4] 5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13561 .loc 1 5472 31 view .LVU4776 13562 010e 42F48042 orr r2, r2, #16384 13563 0112 5A60 str r2, [r3, #4] 13564 0114 C4E7 b .L853 13565 .L862: 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13566 .loc 1 5477 11 is_stmt 1 view .LVU4777 13567 0116 2046 mov r0, r4 13568 .LVL1031: 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13569 .loc 1 5477 11 is_stmt 0 view .LVU4778 13570 0118 FFF7FEFF bl I2C_ITMasterSeqCplt 13571 .LVL1032: 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13572 .loc 1 5477 11 view .LVU4779 13573 011c C0E7 b .L853 13574 .LVL1033: 13575 .L861: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13576 .loc 1 5485 7 is_stmt 1 view .LVU4780 13577 011e 4021 movs r1, #64 13578 .LVL1034: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13579 .loc 1 5485 7 is_stmt 0 view .LVU4781 13580 0120 2046 mov r0, r4 13581 .LVL1035: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13582 .loc 1 5485 7 view .LVU4782 13583 0122 FFF7FEFF bl I2C_ITError ARM GAS /tmp/ccDmmuIk.s page 450 13584 .LVL1036: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13585 .loc 1 5485 7 view .LVU4783 13586 0126 BBE7 b .L853 13587 .LVL1037: 13588 .L860: 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13589 .loc 1 5488 8 is_stmt 1 view .LVU4784 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13590 .loc 1 5488 11 is_stmt 0 view .LVU4785 13591 0128 11F0200F tst r1, #32 13592 012c B8D0 beq .L853 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13593 .loc 1 5488 63 discriminator 1 view .LVU4786 13594 012e 12F0200F tst r2, #32 13595 0132 B5D0 beq .L853 5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13596 .loc 1 5492 5 is_stmt 1 view .LVU4787 13597 0134 2046 mov r0, r4 13598 .LVL1038: 5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13599 .loc 1 5492 5 is_stmt 0 view .LVU4788 13600 0136 FFF7FEFF bl I2C_ITMasterCplt 13601 .LVL1039: 5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13602 .loc 1 5492 5 view .LVU4789 13603 013a B1E7 b .L853 13604 .LVL1040: 13605 .L863: 13606 .LCFI142: 13607 .cfi_def_cfa_offset 0 13608 .cfi_restore 4 13609 .cfi_restore 14 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13610 .loc 1 5380 3 discriminator 1 view .LVU4790 13611 013c 0220 movs r0, #2 13612 .LVL1041: 5503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13613 .loc 1 5503 1 view .LVU4791 13614 013e 7047 bx lr 13615 .cfi_endproc 13616 .LFE381: 13618 .section .text.I2C_DMAError,"ax",%progbits 13619 .align 1 13620 .syntax unified 13621 .thumb 13622 .thumb_func 13624 I2C_DMAError: 13625 .LVL1042: 13626 .LFB399: 6892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13627 .loc 1 6892 1 is_stmt 1 view -0 13628 .cfi_startproc 13629 @ args = 0, pretend = 0, frame = 0 13630 @ frame_needed = 0, uses_anonymous_args = 0 6892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13631 .loc 1 6892 1 is_stmt 0 view .LVU4793 ARM GAS /tmp/ccDmmuIk.s page 451 13632 0000 08B5 push {r3, lr} 13633 .LCFI143: 13634 .cfi_def_cfa_offset 8 13635 .cfi_offset 3, -8 13636 .cfi_offset 14, -4 6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13637 .loc 1 6894 3 is_stmt 1 view .LVU4794 6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13638 .loc 1 6894 22 is_stmt 0 view .LVU4795 13639 0002 806A ldr r0, [r0, #40] 13640 .LVL1043: 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13641 .loc 1 6897 3 is_stmt 1 view .LVU4796 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13642 .loc 1 6897 7 is_stmt 0 view .LVU4797 13643 0004 0268 ldr r2, [r0] 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13644 .loc 1 6897 17 view .LVU4798 13645 0006 5368 ldr r3, [r2, #4] 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13646 .loc 1 6897 23 view .LVU4799 13647 0008 43F40043 orr r3, r3, #32768 13648 000c 5360 str r3, [r2, #4] 6900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13649 .loc 1 6900 3 is_stmt 1 view .LVU4800 13650 000e 1021 movs r1, #16 13651 0010 FFF7FEFF bl I2C_ITError 13652 .LVL1044: 6901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13653 .loc 1 6901 1 is_stmt 0 view .LVU4801 13654 0014 08BD pop {r3, pc} 13655 .cfi_endproc 13656 .LFE399: 13658 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 13659 .align 1 13660 .syntax unified 13661 .thumb 13662 .thumb_func 13664 I2C_DMAMasterTransmitCplt: 13665 .LVL1045: 13666 .LFB395: 6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13667 .loc 1 6732 1 is_stmt 1 view -0 13668 .cfi_startproc 13669 @ args = 0, pretend = 0, frame = 0 13670 @ frame_needed = 0, uses_anonymous_args = 0 6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13671 .loc 1 6732 1 is_stmt 0 view .LVU4803 13672 0000 10B5 push {r4, lr} 13673 .LCFI144: 13674 .cfi_def_cfa_offset 8 13675 .cfi_offset 4, -8 13676 .cfi_offset 14, -4 6734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13677 .loc 1 6734 3 is_stmt 1 view .LVU4804 6734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13678 .loc 1 6734 22 is_stmt 0 view .LVU4805 ARM GAS /tmp/ccDmmuIk.s page 452 13679 0002 846A ldr r4, [r0, #40] 13680 .LVL1046: 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13681 .loc 1 6737 3 is_stmt 1 view .LVU4806 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13682 .loc 1 6737 7 is_stmt 0 view .LVU4807 13683 0004 2268 ldr r2, [r4] 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13684 .loc 1 6737 17 view .LVU4808 13685 0006 1368 ldr r3, [r2] 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13686 .loc 1 6737 23 view .LVU4809 13687 0008 23F48043 bic r3, r3, #16384 13688 000c 1360 str r3, [r2] 6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13689 .loc 1 6740 3 is_stmt 1 view .LVU4810 6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13690 .loc 1 6740 11 is_stmt 0 view .LVU4811 13691 000e 638D ldrh r3, [r4, #42] 13692 0010 9BB2 uxth r3, r3 6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13693 .loc 1 6740 6 view .LVU4812 13694 0012 ABB1 cbz r3, .L880 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13695 .loc 1 6749 5 is_stmt 1 view .LVU4813 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13696 .loc 1 6749 9 is_stmt 0 view .LVU4814 13697 0014 616A ldr r1, [r4, #36] 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13698 .loc 1 6749 27 view .LVU4815 13699 0016 238D ldrh r3, [r4, #40] 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13700 .loc 1 6749 20 view .LVU4816 13701 0018 1944 add r1, r1, r3 13702 001a 6162 str r1, [r4, #36] 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13703 .loc 1 6752 5 is_stmt 1 view .LVU4817 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13704 .loc 1 6752 13 is_stmt 0 view .LVU4818 13705 001c 638D ldrh r3, [r4, #42] 13706 001e 9BB2 uxth r3, r3 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13707 .loc 1 6752 8 view .LVU4819 13708 0020 FF2B cmp r3, #255 13709 0022 12D9 bls .L876 6754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13710 .loc 1 6754 7 is_stmt 1 view .LVU4820 6754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13711 .loc 1 6754 22 is_stmt 0 view .LVU4821 13712 0024 FF23 movs r3, #255 13713 0026 2385 strh r3, [r4, #40] @ movhi 13714 .L877: 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13715 .loc 1 6762 5 is_stmt 1 view .LVU4822 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13716 .loc 1 6762 81 is_stmt 0 view .LVU4823 13717 0028 2268 ldr r2, [r4] ARM GAS /tmp/ccDmmuIk.s page 453 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13718 .loc 1 6762 9 view .LVU4824 13719 002a 238D ldrh r3, [r4, #40] 13720 002c 2832 adds r2, r2, #40 13721 002e A06B ldr r0, [r4, #56] 13722 .LVL1047: 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13723 .loc 1 6762 9 view .LVU4825 13724 0030 FFF7FEFF bl HAL_DMA_Start_IT 13725 .LVL1048: 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13726 .loc 1 6762 8 discriminator 1 view .LVU4826 13727 0034 60B1 cbz r0, .L878 6766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13728 .loc 1 6766 7 is_stmt 1 view .LVU4827 13729 0036 1021 movs r1, #16 13730 0038 2046 mov r0, r4 13731 003a FFF7FEFF bl I2C_ITError 13732 .LVL1049: 13733 .L873: 6774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13734 .loc 1 6774 1 is_stmt 0 view .LVU4828 13735 003e 10BD pop {r4, pc} 13736 .LVL1050: 13737 .L880: 6743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13738 .loc 1 6743 5 is_stmt 1 view .LVU4829 13739 0040 2021 movs r1, #32 13740 0042 2046 mov r0, r4 13741 .LVL1051: 6743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13742 .loc 1 6743 5 is_stmt 0 view .LVU4830 13743 0044 FFF7FEFF bl I2C_Enable_IRQ 13744 .LVL1052: 13745 0048 F9E7 b .L873 13746 .LVL1053: 13747 .L876: 6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13748 .loc 1 6758 7 is_stmt 1 view .LVU4831 6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13749 .loc 1 6758 28 is_stmt 0 view .LVU4832 13750 004a 638D ldrh r3, [r4, #42] 6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13751 .loc 1 6758 22 view .LVU4833 13752 004c 2385 strh r3, [r4, #40] @ movhi 13753 004e EBE7 b .L877 13754 .LVL1054: 13755 .L878: 6771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13756 .loc 1 6771 7 is_stmt 1 view .LVU4834 13757 0050 4021 movs r1, #64 13758 0052 2046 mov r0, r4 13759 0054 FFF7FEFF bl I2C_Enable_IRQ 13760 .LVL1055: 6774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13761 .loc 1 6774 1 is_stmt 0 view .LVU4835 13762 0058 F1E7 b .L873 ARM GAS /tmp/ccDmmuIk.s page 454 13763 .cfi_endproc 13764 .LFE395: 13766 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 13767 .align 1 13768 .syntax unified 13769 .thumb 13770 .thumb_func 13772 I2C_DMAMasterReceiveCplt: 13773 .LVL1056: 13774 .LFB397: 6812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13775 .loc 1 6812 1 is_stmt 1 view -0 13776 .cfi_startproc 13777 @ args = 0, pretend = 0, frame = 0 13778 @ frame_needed = 0, uses_anonymous_args = 0 6812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13779 .loc 1 6812 1 is_stmt 0 view .LVU4837 13780 0000 10B5 push {r4, lr} 13781 .LCFI145: 13782 .cfi_def_cfa_offset 8 13783 .cfi_offset 4, -8 13784 .cfi_offset 14, -4 6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13785 .loc 1 6814 3 is_stmt 1 view .LVU4838 6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13786 .loc 1 6814 22 is_stmt 0 view .LVU4839 13787 0002 846A ldr r4, [r0, #40] 13788 .LVL1057: 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13789 .loc 1 6817 3 is_stmt 1 view .LVU4840 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13790 .loc 1 6817 7 is_stmt 0 view .LVU4841 13791 0004 2268 ldr r2, [r4] 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13792 .loc 1 6817 17 view .LVU4842 13793 0006 1368 ldr r3, [r2] 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13794 .loc 1 6817 23 view .LVU4843 13795 0008 23F40043 bic r3, r3, #32768 13796 000c 1360 str r3, [r2] 6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13797 .loc 1 6820 3 is_stmt 1 view .LVU4844 6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13798 .loc 1 6820 11 is_stmt 0 view .LVU4845 13799 000e 638D ldrh r3, [r4, #42] 13800 0010 9BB2 uxth r3, r3 6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13801 .loc 1 6820 6 view .LVU4846 13802 0012 ABB1 cbz r3, .L888 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13803 .loc 1 6829 5 is_stmt 1 view .LVU4847 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13804 .loc 1 6829 9 is_stmt 0 view .LVU4848 13805 0014 626A ldr r2, [r4, #36] 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13806 .loc 1 6829 27 view .LVU4849 13807 0016 238D ldrh r3, [r4, #40] ARM GAS /tmp/ccDmmuIk.s page 455 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13808 .loc 1 6829 20 view .LVU4850 13809 0018 1A44 add r2, r2, r3 13810 001a 6262 str r2, [r4, #36] 6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13811 .loc 1 6832 5 is_stmt 1 view .LVU4851 6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13812 .loc 1 6832 13 is_stmt 0 view .LVU4852 13813 001c 638D ldrh r3, [r4, #42] 13814 001e 9BB2 uxth r3, r3 6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13815 .loc 1 6832 8 view .LVU4853 13816 0020 FF2B cmp r3, #255 13817 0022 12D9 bls .L884 6834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13818 .loc 1 6834 7 is_stmt 1 view .LVU4854 6834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13819 .loc 1 6834 22 is_stmt 0 view .LVU4855 13820 0024 FF23 movs r3, #255 13821 0026 2385 strh r3, [r4, #40] @ movhi 13822 .L885: 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13823 .loc 1 6842 5 is_stmt 1 view .LVU4856 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13824 .loc 1 6842 55 is_stmt 0 view .LVU4857 13825 0028 2168 ldr r1, [r4] 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13826 .loc 1 6842 9 view .LVU4858 13827 002a 238D ldrh r3, [r4, #40] 13828 002c 2431 adds r1, r1, #36 13829 002e E06B ldr r0, [r4, #60] 13830 .LVL1058: 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13831 .loc 1 6842 9 view .LVU4859 13832 0030 FFF7FEFF bl HAL_DMA_Start_IT 13833 .LVL1059: 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13834 .loc 1 6842 8 discriminator 1 view .LVU4860 13835 0034 60B1 cbz r0, .L886 6846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13836 .loc 1 6846 7 is_stmt 1 view .LVU4861 13837 0036 1021 movs r1, #16 13838 0038 2046 mov r0, r4 13839 003a FFF7FEFF bl I2C_ITError 13840 .LVL1060: 13841 .L881: 6854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13842 .loc 1 6854 1 is_stmt 0 view .LVU4862 13843 003e 10BD pop {r4, pc} 13844 .LVL1061: 13845 .L888: 6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13846 .loc 1 6823 5 is_stmt 1 view .LVU4863 13847 0040 2021 movs r1, #32 13848 0042 2046 mov r0, r4 13849 .LVL1062: 6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccDmmuIk.s page 456 13850 .loc 1 6823 5 is_stmt 0 view .LVU4864 13851 0044 FFF7FEFF bl I2C_Enable_IRQ 13852 .LVL1063: 13853 0048 F9E7 b .L881 13854 .LVL1064: 13855 .L884: 6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13856 .loc 1 6838 7 is_stmt 1 view .LVU4865 6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13857 .loc 1 6838 28 is_stmt 0 view .LVU4866 13858 004a 638D ldrh r3, [r4, #42] 6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13859 .loc 1 6838 22 view .LVU4867 13860 004c 2385 strh r3, [r4, #40] @ movhi 13861 004e EBE7 b .L885 13862 .LVL1065: 13863 .L886: 6851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13864 .loc 1 6851 7 is_stmt 1 view .LVU4868 13865 0050 4021 movs r1, #64 13866 0052 2046 mov r0, r4 13867 0054 FFF7FEFF bl I2C_Enable_IRQ 13868 .LVL1066: 6854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13869 .loc 1 6854 1 is_stmt 0 view .LVU4869 13870 0058 F1E7 b .L881 13871 .cfi_endproc 13872 .LFE397: 13874 .section .text.I2C_Mem_ISR_IT,"ax",%progbits 13875 .align 1 13876 .syntax unified 13877 .thumb 13878 .thumb_func 13880 I2C_Mem_ISR_IT: 13881 .LVL1067: 13882 .LFB379: 5092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 13883 .loc 1 5092 1 is_stmt 1 view -0 13884 .cfi_startproc 13885 @ args = 0, pretend = 0, frame = 0 13886 @ frame_needed = 0, uses_anonymous_args = 0 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 13887 .loc 1 5093 3 view .LVU4871 5094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13888 .loc 1 5094 3 view .LVU4872 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13889 .loc 1 5097 3 view .LVU4873 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13890 .loc 1 5097 3 view .LVU4874 13891 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13892 0004 012B cmp r3, #1 13893 0006 00F0C080 beq .L902 5092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 13894 .loc 1 5092 1 is_stmt 0 view .LVU4875 13895 000a 70B5 push {r4, r5, r6, lr} 13896 .LCFI146: 13897 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccDmmuIk.s page 457 13898 .cfi_offset 4, -16 13899 .cfi_offset 5, -12 13900 .cfi_offset 6, -8 13901 .cfi_offset 14, -4 13902 000c 82B0 sub sp, sp, #8 13903 .LCFI147: 13904 .cfi_def_cfa_offset 24 13905 000e 0446 mov r4, r0 13906 0010 0D46 mov r5, r1 13907 0012 1646 mov r6, r2 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13908 .loc 1 5097 3 is_stmt 1 discriminator 2 view .LVU4876 13909 0014 0123 movs r3, #1 13910 0016 80F84030 strb r3, [r0, #64] 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13911 .loc 1 5097 3 view .LVU4877 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13912 .loc 1 5099 3 view .LVU4878 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13913 .loc 1 5099 6 is_stmt 0 view .LVU4879 13914 001a 11F0100F tst r1, #16 13915 001e 02D0 beq .L891 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13916 .loc 1 5099 58 discriminator 1 view .LVU4880 13917 0020 12F0100F tst r2, #16 13918 0024 22D1 bne .L908 13919 .L891: 5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13920 .loc 1 5113 8 is_stmt 1 view .LVU4881 5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13921 .loc 1 5113 11 is_stmt 0 view .LVU4882 13922 0026 15F0040F tst r5, #4 13923 002a 29D0 beq .L893 5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13924 .loc 1 5113 65 discriminator 1 view .LVU4883 13925 002c 16F0040F tst r6, #4 13926 0030 26D0 beq .L893 5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13927 .loc 1 5117 5 is_stmt 1 view .LVU4884 5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13928 .loc 1 5117 16 is_stmt 0 view .LVU4885 13929 0032 25F00405 bic r5, r5, #4 13930 .LVL1068: 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13931 .loc 1 5120 5 is_stmt 1 view .LVU4886 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13932 .loc 1 5120 36 is_stmt 0 view .LVU4887 13933 0036 2368 ldr r3, [r4] 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13934 .loc 1 5120 46 view .LVU4888 13935 0038 5A6A ldr r2, [r3, #36] 13936 .LVL1069: 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13937 .loc 1 5120 10 view .LVU4889 13938 003a 636A ldr r3, [r4, #36] 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13939 .loc 1 5120 21 view .LVU4890 ARM GAS /tmp/ccDmmuIk.s page 458 13940 003c 1A70 strb r2, [r3] 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13941 .loc 1 5123 5 is_stmt 1 view .LVU4891 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13942 .loc 1 5123 9 is_stmt 0 view .LVU4892 13943 003e 636A ldr r3, [r4, #36] 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13944 .loc 1 5123 19 view .LVU4893 13945 0040 0133 adds r3, r3, #1 13946 0042 6362 str r3, [r4, #36] 5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 13947 .loc 1 5125 5 is_stmt 1 view .LVU4894 5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 13948 .loc 1 5125 9 is_stmt 0 view .LVU4895 13949 0044 238D ldrh r3, [r4, #40] 5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 13950 .loc 1 5125 19 view .LVU4896 13951 0046 013B subs r3, r3, #1 13952 0048 2385 strh r3, [r4, #40] @ movhi 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13953 .loc 1 5126 5 is_stmt 1 view .LVU4897 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13954 .loc 1 5126 9 is_stmt 0 view .LVU4898 13955 004a 638D ldrh r3, [r4, #42] 13956 004c 9BB2 uxth r3, r3 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13957 .loc 1 5126 20 view .LVU4899 13958 004e 013B subs r3, r3, #1 13959 0050 9BB2 uxth r3, r3 13960 0052 6385 strh r3, [r4, #42] @ movhi 13961 .LVL1070: 13962 .L892: 5210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13963 .loc 1 5210 3 is_stmt 1 view .LVU4900 5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13964 .loc 1 5212 3 view .LVU4901 5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13965 .loc 1 5212 6 is_stmt 0 view .LVU4902 13966 0054 15F0200F tst r5, #32 13967 0058 03D0 beq .L901 5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13968 .loc 1 5212 61 discriminator 1 view .LVU4903 13969 005a 16F0200F tst r6, #32 13970 005e 40F08F80 bne .L909 13971 .L901: 5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13972 .loc 1 5220 3 is_stmt 1 view .LVU4904 5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13973 .loc 1 5220 3 view .LVU4905 13974 0062 0020 movs r0, #0 13975 0064 84F84000 strb r0, [r4, #64] 5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13976 .loc 1 5220 3 view .LVU4906 5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13977 .loc 1 5222 3 view .LVU4907 5223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13978 .loc 1 5223 1 is_stmt 0 view .LVU4908 ARM GAS /tmp/ccDmmuIk.s page 459 13979 0068 02B0 add sp, sp, #8 13980 .LCFI148: 13981 .cfi_remember_state 13982 .cfi_def_cfa_offset 16 13983 @ sp needed 13984 006a 70BD pop {r4, r5, r6, pc} 13985 .LVL1071: 13986 .L908: 13987 .LCFI149: 13988 .cfi_restore_state 5103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13989 .loc 1 5103 5 is_stmt 1 view .LVU4909 13990 006c 0368 ldr r3, [r0] 13991 006e 1022 movs r2, #16 13992 .LVL1072: 5103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13993 .loc 1 5103 5 is_stmt 0 view .LVU4910 13994 0070 DA61 str r2, [r3, #28] 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13995 .loc 1 5108 5 is_stmt 1 view .LVU4911 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13996 .loc 1 5108 9 is_stmt 0 view .LVU4912 13997 0072 436C ldr r3, [r0, #68] 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13998 .loc 1 5108 21 view .LVU4913 13999 0074 43F00403 orr r3, r3, #4 14000 0078 4364 str r3, [r0, #68] 5111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14001 .loc 1 5111 5 is_stmt 1 view .LVU4914 14002 007a FFF7FEFF bl I2C_Flush_TXDR 14003 .LVL1073: 5111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14004 .loc 1 5111 5 is_stmt 0 view .LVU4915 14005 007e E9E7 b .L892 14006 .LVL1074: 14007 .L893: 5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14008 .loc 1 5128 8 is_stmt 1 view .LVU4916 5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14009 .loc 1 5128 11 is_stmt 0 view .LVU4917 14010 0080 15F0020F tst r5, #2 14011 0084 1DD0 beq .L894 5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14012 .loc 1 5128 65 discriminator 1 view .LVU4918 14013 0086 16F0020F tst r6, #2 14014 008a 1AD0 beq .L894 5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14015 .loc 1 5131 5 is_stmt 1 view .LVU4919 5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14016 .loc 1 5131 13 is_stmt 0 view .LVU4920 14017 008c 236D ldr r3, [r4, #80] 5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14018 .loc 1 5131 8 view .LVU4921 14019 008e B3F1FF3F cmp r3, #-1 14020 0092 06D0 beq .L910 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14021 .loc 1 5145 7 is_stmt 1 view .LVU4922 ARM GAS /tmp/ccDmmuIk.s page 460 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14022 .loc 1 5145 11 is_stmt 0 view .LVU4923 14023 0094 2368 ldr r3, [r4] 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14024 .loc 1 5145 34 view .LVU4924 14025 0096 226D ldr r2, [r4, #80] 14026 .LVL1075: 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14027 .loc 1 5145 28 view .LVU4925 14028 0098 9A62 str r2, [r3, #40] 5148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14029 .loc 1 5148 7 is_stmt 1 view .LVU4926 5148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14030 .loc 1 5148 24 is_stmt 0 view .LVU4927 14031 009a 4FF0FF33 mov r3, #-1 14032 009e 2365 str r3, [r4, #80] 14033 00a0 D8E7 b .L892 14034 .LVL1076: 14035 .L910: 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14036 .loc 1 5134 7 is_stmt 1 view .LVU4928 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14037 .loc 1 5134 35 is_stmt 0 view .LVU4929 14038 00a2 626A ldr r2, [r4, #36] 14039 .LVL1077: 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14040 .loc 1 5134 11 view .LVU4930 14041 00a4 2368 ldr r3, [r4] 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14042 .loc 1 5134 30 view .LVU4931 14043 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14044 .loc 1 5134 28 view .LVU4932 14045 00a8 9A62 str r2, [r3, #40] 5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14046 .loc 1 5137 7 is_stmt 1 view .LVU4933 5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14047 .loc 1 5137 11 is_stmt 0 view .LVU4934 14048 00aa 636A ldr r3, [r4, #36] 5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14049 .loc 1 5137 21 view .LVU4935 14050 00ac 0133 adds r3, r3, #1 14051 00ae 6362 str r3, [r4, #36] 5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14052 .loc 1 5139 7 is_stmt 1 view .LVU4936 5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14053 .loc 1 5139 11 is_stmt 0 view .LVU4937 14054 00b0 238D ldrh r3, [r4, #40] 5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14055 .loc 1 5139 21 view .LVU4938 14056 00b2 013B subs r3, r3, #1 14057 00b4 2385 strh r3, [r4, #40] @ movhi 5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14058 .loc 1 5140 7 is_stmt 1 view .LVU4939 5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14059 .loc 1 5140 11 is_stmt 0 view .LVU4940 14060 00b6 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccDmmuIk.s page 461 14061 00b8 9BB2 uxth r3, r3 5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14062 .loc 1 5140 22 view .LVU4941 14063 00ba 013B subs r3, r3, #1 14064 00bc 9BB2 uxth r3, r3 14065 00be 6385 strh r3, [r4, #42] @ movhi 14066 00c0 C8E7 b .L892 14067 .LVL1078: 14068 .L894: 5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14069 .loc 1 5151 8 is_stmt 1 view .LVU4942 5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14070 .loc 1 5151 11 is_stmt 0 view .LVU4943 14071 00c2 15F0800F tst r5, #128 14072 00c6 2AD0 beq .L896 5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14073 .loc 1 5151 64 discriminator 1 view .LVU4944 14074 00c8 16F0400F tst r6, #64 14075 00cc 27D0 beq .L896 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14076 .loc 1 5154 5 is_stmt 1 view .LVU4945 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14077 .loc 1 5154 14 is_stmt 0 view .LVU4946 14078 00ce 638D ldrh r3, [r4, #42] 14079 00d0 9BB2 uxth r3, r3 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14080 .loc 1 5154 8 view .LVU4947 14081 00d2 FBB1 cbz r3, .L897 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14082 .loc 1 5154 41 discriminator 1 view .LVU4948 14083 00d4 238D ldrh r3, [r4, #40] 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14084 .loc 1 5154 33 discriminator 1 view .LVU4949 14085 00d6 EBB9 cbnz r3, .L897 5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14086 .loc 1 5156 7 is_stmt 1 view .LVU4950 5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14087 .loc 1 5156 15 is_stmt 0 view .LVU4951 14088 00d8 638D ldrh r3, [r4, #42] 14089 00da 9BB2 uxth r3, r3 5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14090 .loc 1 5156 10 view .LVU4952 14091 00dc FF2B cmp r3, #255 14092 00de 0BD9 bls .L898 5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14093 .loc 1 5158 9 is_stmt 1 view .LVU4953 5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14094 .loc 1 5158 24 is_stmt 0 view .LVU4954 14095 00e0 FF22 movs r2, #255 14096 .LVL1079: 5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14097 .loc 1 5158 24 view .LVU4955 14098 00e2 2285 strh r2, [r4, #40] @ movhi 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14099 .loc 1 5159 9 is_stmt 1 view .LVU4956 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14100 .loc 1 5159 48 is_stmt 0 view .LVU4957 ARM GAS /tmp/ccDmmuIk.s page 462 14101 00e4 E16C ldr r1, [r4, #76] 14102 .LVL1080: 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14103 .loc 1 5159 9 view .LVU4958 14104 00e6 0023 movs r3, #0 14105 00e8 0093 str r3, [sp] 14106 00ea 4FF08073 mov r3, #16777216 14107 00ee 89B2 uxth r1, r1 14108 00f0 2046 mov r0, r4 14109 .LVL1081: 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14110 .loc 1 5159 9 view .LVU4959 14111 00f2 FFF7FEFF bl I2C_TransferConfig 14112 .LVL1082: 14113 00f6 ADE7 b .L892 14114 .LVL1083: 14115 .L898: 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14116 .loc 1 5164 9 is_stmt 1 view .LVU4960 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14117 .loc 1 5164 30 is_stmt 0 view .LVU4961 14118 00f8 628D ldrh r2, [r4, #42] 14119 .LVL1084: 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14120 .loc 1 5164 30 view .LVU4962 14121 00fa 92B2 uxth r2, r2 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14122 .loc 1 5164 24 view .LVU4963 14123 00fc 2285 strh r2, [r4, #40] @ movhi 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14124 .loc 1 5165 9 is_stmt 1 view .LVU4964 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14125 .loc 1 5165 48 is_stmt 0 view .LVU4965 14126 00fe E16C ldr r1, [r4, #76] 14127 .LVL1085: 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14128 .loc 1 5165 9 view .LVU4966 14129 0100 0023 movs r3, #0 14130 0102 0093 str r3, [sp] 14131 0104 4FF00073 mov r3, #33554432 14132 0108 D2B2 uxtb r2, r2 14133 010a 89B2 uxth r1, r1 14134 010c 2046 mov r0, r4 14135 .LVL1086: 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14136 .loc 1 5165 9 view .LVU4967 14137 010e FFF7FEFF bl I2C_TransferConfig 14138 .LVL1087: 14139 0112 9FE7 b .L892 14140 .LVL1088: 14141 .L897: 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14142 .loc 1 5173 7 is_stmt 1 view .LVU4968 14143 0114 4021 movs r1, #64 14144 .LVL1089: 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14145 .loc 1 5173 7 is_stmt 0 view .LVU4969 ARM GAS /tmp/ccDmmuIk.s page 463 14146 0116 2046 mov r0, r4 14147 .LVL1090: 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14148 .loc 1 5173 7 view .LVU4970 14149 0118 FFF7FEFF bl I2C_ITError 14150 .LVL1091: 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14151 .loc 1 5173 7 view .LVU4971 14152 011c 9AE7 b .L892 14153 .LVL1092: 14154 .L896: 5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14155 .loc 1 5176 8 is_stmt 1 view .LVU4972 5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14156 .loc 1 5176 11 is_stmt 0 view .LVU4973 14157 011e 15F0400F tst r5, #64 14158 0122 97D0 beq .L892 5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14159 .loc 1 5176 63 discriminator 1 view .LVU4974 14160 0124 16F0400F tst r6, #64 14161 0128 94D0 beq .L892 5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14162 .loc 1 5180 5 is_stmt 1 view .LVU4975 14163 012a 0121 movs r1, #1 14164 .LVL1093: 5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14165 .loc 1 5180 5 is_stmt 0 view .LVU4976 14166 012c 2046 mov r0, r4 14167 .LVL1094: 5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14168 .loc 1 5180 5 view .LVU4977 14169 012e FFF7FEFF bl I2C_Disable_IRQ 14170 .LVL1095: 5183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14171 .loc 1 5183 5 is_stmt 1 view .LVU4978 14172 0132 0221 movs r1, #2 14173 0134 2046 mov r0, r4 14174 0136 FFF7FEFF bl I2C_Enable_IRQ 14175 .LVL1096: 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14176 .loc 1 5185 5 view .LVU4979 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14177 .loc 1 5185 13 is_stmt 0 view .LVU4980 14178 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14179 .loc 1 5185 8 view .LVU4981 14180 013e 222B cmp r3, #34 14181 0140 0FD0 beq .L903 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14182 .loc 1 5093 12 view .LVU4982 14183 0142 1348 ldr r0, .L911 14184 .L899: 14185 .LVL1097: 5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14186 .loc 1 5190 5 is_stmt 1 view .LVU4983 5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14187 .loc 1 5190 13 is_stmt 0 view .LVU4984 ARM GAS /tmp/ccDmmuIk.s page 464 14188 0144 638D ldrh r3, [r4, #42] 14189 0146 9BB2 uxth r3, r3 5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14190 .loc 1 5190 8 view .LVU4985 14191 0148 FF2B cmp r3, #255 14192 014a 0CD9 bls .L900 5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14193 .loc 1 5192 7 is_stmt 1 view .LVU4986 5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14194 .loc 1 5192 22 is_stmt 0 view .LVU4987 14195 014c FF22 movs r2, #255 14196 014e 2285 strh r2, [r4, #40] @ movhi 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14197 .loc 1 5195 7 is_stmt 1 view .LVU4988 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14198 .loc 1 5195 46 is_stmt 0 view .LVU4989 14199 0150 E16C ldr r1, [r4, #76] 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14200 .loc 1 5195 7 view .LVU4990 14201 0152 0090 str r0, [sp] 14202 0154 4FF08073 mov r3, #16777216 14203 0158 89B2 uxth r1, r1 14204 015a 2046 mov r0, r4 14205 .LVL1098: 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14206 .loc 1 5195 7 view .LVU4991 14207 015c FFF7FEFF bl I2C_TransferConfig 14208 .LVL1099: 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14209 .loc 1 5195 7 view .LVU4992 14210 0160 78E7 b .L892 14211 .LVL1100: 14212 .L903: 5187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14213 .loc 1 5187 17 view .LVU4993 14214 0162 0C48 ldr r0, .L911+4 14215 0164 EEE7 b .L899 14216 .LVL1101: 14217 .L900: 5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14218 .loc 1 5200 7 is_stmt 1 view .LVU4994 5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14219 .loc 1 5200 28 is_stmt 0 view .LVU4995 14220 0166 628D ldrh r2, [r4, #42] 14221 0168 92B2 uxth r2, r2 5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14222 .loc 1 5200 22 view .LVU4996 14223 016a 2285 strh r2, [r4, #40] @ movhi 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14224 .loc 1 5203 7 is_stmt 1 view .LVU4997 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14225 .loc 1 5203 46 is_stmt 0 view .LVU4998 14226 016c E16C ldr r1, [r4, #76] 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14227 .loc 1 5203 7 view .LVU4999 14228 016e 0090 str r0, [sp] 14229 0170 4FF00073 mov r3, #33554432 ARM GAS /tmp/ccDmmuIk.s page 465 14230 0174 D2B2 uxtb r2, r2 14231 0176 89B2 uxth r1, r1 14232 0178 2046 mov r0, r4 14233 .LVL1102: 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14234 .loc 1 5203 7 view .LVU5000 14235 017a FFF7FEFF bl I2C_TransferConfig 14236 .LVL1103: 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14237 .loc 1 5203 7 view .LVU5001 14238 017e 69E7 b .L892 14239 .LVL1104: 14240 .L909: 5216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14241 .loc 1 5216 5 is_stmt 1 view .LVU5002 14242 0180 2946 mov r1, r5 14243 0182 2046 mov r0, r4 14244 0184 FFF7FEFF bl I2C_ITMasterCplt 14245 .LVL1105: 14246 0188 6BE7 b .L901 14247 .LVL1106: 14248 .L902: 14249 .LCFI150: 14250 .cfi_def_cfa_offset 0 14251 .cfi_restore 4 14252 .cfi_restore 5 14253 .cfi_restore 6 14254 .cfi_restore 14 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14255 .loc 1 5097 3 is_stmt 0 discriminator 1 view .LVU5003 14256 018a 0220 movs r0, #2 14257 .LVL1107: 5223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14258 .loc 1 5223 1 view .LVU5004 14259 018c 7047 bx lr 14260 .L912: 14261 018e 00BF .align 2 14262 .L911: 14263 0190 00200080 .word -2147475456 14264 0194 00240080 .word -2147474432 14265 .cfi_endproc 14266 .LFE379: 14268 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 14269 .align 1 14270 .global HAL_I2C_ER_IRQHandler 14271 .syntax unified 14272 .thumb 14273 .thumb_func 14275 HAL_I2C_ER_IRQHandler: 14276 .LVL1108: 14277 .LFB364: 4658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14278 .loc 1 4658 1 is_stmt 1 view -0 14279 .cfi_startproc 14280 @ args = 0, pretend = 0, frame = 0 14281 @ frame_needed = 0, uses_anonymous_args = 0 4658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); ARM GAS /tmp/ccDmmuIk.s page 466 14282 .loc 1 4658 1 is_stmt 0 view .LVU5006 14283 0000 10B5 push {r4, lr} 14284 .LCFI151: 14285 .cfi_def_cfa_offset 8 14286 .cfi_offset 4, -8 14287 .cfi_offset 14, -4 4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14288 .loc 1 4659 3 is_stmt 1 view .LVU5007 4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14289 .loc 1 4659 24 is_stmt 0 view .LVU5008 14290 0002 0268 ldr r2, [r0] 4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14291 .loc 1 4659 12 view .LVU5009 14292 0004 9369 ldr r3, [r2, #24] 14293 .LVL1109: 4660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 14294 .loc 1 4660 3 is_stmt 1 view .LVU5010 4660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 14295 .loc 1 4660 12 is_stmt 0 view .LVU5011 14296 0006 1168 ldr r1, [r2] 14297 .LVL1110: 4661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14298 .loc 1 4661 3 is_stmt 1 view .LVU5012 4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14299 .loc 1 4664 3 view .LVU5013 4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14300 .loc 1 4664 6 is_stmt 0 view .LVU5014 14301 0008 13F4807F tst r3, #256 14302 000c 09D0 beq .L914 4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14303 .loc 1 4664 57 discriminator 1 view .LVU5015 14304 000e 11F0800F tst r1, #128 14305 0012 06D0 beq .L914 4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14306 .loc 1 4667 5 is_stmt 1 view .LVU5016 4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14307 .loc 1 4667 9 is_stmt 0 view .LVU5017 14308 0014 446C ldr r4, [r0, #68] 4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14309 .loc 1 4667 21 view .LVU5018 14310 0016 44F00104 orr r4, r4, #1 14311 001a 4464 str r4, [r0, #68] 4670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14312 .loc 1 4670 5 is_stmt 1 view .LVU5019 14313 001c 4FF48074 mov r4, #256 14314 0020 D461 str r4, [r2, #28] 14315 .L914: 4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14316 .loc 1 4674 3 view .LVU5020 4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14317 .loc 1 4674 6 is_stmt 0 view .LVU5021 14318 0022 13F4806F tst r3, #1024 14319 0026 0AD0 beq .L915 4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14320 .loc 1 4674 56 discriminator 1 view .LVU5022 14321 0028 11F0800F tst r1, #128 14322 002c 07D0 beq .L915 ARM GAS /tmp/ccDmmuIk.s page 467 4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14323 .loc 1 4677 5 is_stmt 1 view .LVU5023 4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14324 .loc 1 4677 9 is_stmt 0 view .LVU5024 14325 002e 426C ldr r2, [r0, #68] 4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14326 .loc 1 4677 21 view .LVU5025 14327 0030 42F00802 orr r2, r2, #8 14328 0034 4264 str r2, [r0, #68] 4680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14329 .loc 1 4680 5 is_stmt 1 view .LVU5026 14330 0036 0268 ldr r2, [r0] 14331 0038 4FF48064 mov r4, #1024 14332 003c D461 str r4, [r2, #28] 14333 .L915: 4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14334 .loc 1 4684 3 view .LVU5027 4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14335 .loc 1 4684 6 is_stmt 0 view .LVU5028 14336 003e 13F4007F tst r3, #512 14337 0042 0AD0 beq .L916 4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14338 .loc 1 4684 57 discriminator 1 view .LVU5029 14339 0044 11F0800F tst r1, #128 14340 0048 07D0 beq .L916 4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14341 .loc 1 4687 5 is_stmt 1 view .LVU5030 4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14342 .loc 1 4687 9 is_stmt 0 view .LVU5031 14343 004a 436C ldr r3, [r0, #68] 14344 .LVL1111: 4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14345 .loc 1 4687 21 view .LVU5032 14346 004c 43F00203 orr r3, r3, #2 14347 0050 4364 str r3, [r0, #68] 4690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14348 .loc 1 4690 5 is_stmt 1 view .LVU5033 14349 0052 0368 ldr r3, [r0] 14350 0054 4FF40072 mov r2, #512 14351 0058 DA61 str r2, [r3, #28] 14352 .L916: 4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14353 .loc 1 4694 3 view .LVU5034 4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14354 .loc 1 4694 12 is_stmt 0 view .LVU5035 14355 005a 416C ldr r1, [r0, #68] 14356 .LVL1112: 4697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14357 .loc 1 4697 3 is_stmt 1 view .LVU5036 4697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14358 .loc 1 4697 6 is_stmt 0 view .LVU5037 14359 005c 11F00B0F tst r1, #11 14360 0060 00D1 bne .L919 14361 .LVL1113: 14362 .L913: 4701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14363 .loc 1 4701 1 view .LVU5038 ARM GAS /tmp/ccDmmuIk.s page 468 14364 0062 10BD pop {r4, pc} 14365 .LVL1114: 14366 .L919: 4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14367 .loc 1 4699 5 is_stmt 1 view .LVU5039 14368 0064 FFF7FEFF bl I2C_ITError 14369 .LVL1115: 4701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14370 .loc 1 4701 1 is_stmt 0 view .LVU5040 14371 0068 FBE7 b .L913 14372 .cfi_endproc 14373 .LFE364: 14375 .section .text.I2C_DMAAbort,"ax",%progbits 14376 .align 1 14377 .syntax unified 14378 .thumb 14379 .thumb_func 14381 I2C_DMAAbort: 14382 .LVL1116: 14383 .LFB400: 6911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14384 .loc 1 6911 1 is_stmt 1 view -0 14385 .cfi_startproc 14386 @ args = 0, pretend = 0, frame = 0 14387 @ frame_needed = 0, uses_anonymous_args = 0 6911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14388 .loc 1 6911 1 is_stmt 0 view .LVU5042 14389 0000 08B5 push {r3, lr} 14390 .LCFI152: 14391 .cfi_def_cfa_offset 8 14392 .cfi_offset 3, -8 14393 .cfi_offset 14, -4 6913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14394 .loc 1 6913 3 is_stmt 1 view .LVU5043 6913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14395 .loc 1 6913 22 is_stmt 0 view .LVU5044 14396 0002 806A ldr r0, [r0, #40] 14397 .LVL1117: 6916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14398 .loc 1 6916 3 is_stmt 1 view .LVU5045 6916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14399 .loc 1 6916 11 is_stmt 0 view .LVU5046 14400 0004 836B ldr r3, [r0, #56] 6916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14401 .loc 1 6916 6 view .LVU5047 14402 0006 0BB1 cbz r3, .L921 6918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14403 .loc 1 6918 5 is_stmt 1 view .LVU5048 6918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14404 .loc 1 6918 37 is_stmt 0 view .LVU5049 14405 0008 0022 movs r2, #0 14406 000a 9A63 str r2, [r3, #56] 14407 .L921: 6920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14408 .loc 1 6920 3 is_stmt 1 view .LVU5050 6920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14409 .loc 1 6920 11 is_stmt 0 view .LVU5051 ARM GAS /tmp/ccDmmuIk.s page 469 14410 000c C36B ldr r3, [r0, #60] 6920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14411 .loc 1 6920 6 view .LVU5052 14412 000e 0BB1 cbz r3, .L922 6922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14413 .loc 1 6922 5 is_stmt 1 view .LVU5053 6922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14414 .loc 1 6922 37 is_stmt 0 view .LVU5054 14415 0010 0022 movs r2, #0 14416 0012 9A63 str r2, [r3, #56] 14417 .L922: 6925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14418 .loc 1 6925 3 is_stmt 1 view .LVU5055 14419 0014 FFF7FEFF bl I2C_TreatErrorCallback 14420 .LVL1118: 6926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14421 .loc 1 6926 1 is_stmt 0 view .LVU5056 14422 0018 08BD pop {r3, pc} 14423 .cfi_endproc 14424 .LFE400: 14426 .section .text.HAL_I2C_GetState,"ax",%progbits 14427 .align 1 14428 .global HAL_I2C_GetState 14429 .syntax unified 14430 .thumb 14431 .thumb_func 14433 HAL_I2C_GetState: 14434 .LVL1119: 14435 .LFB375: 4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return I2C handle state */ 14436 .loc 1 4892 1 is_stmt 1 view -0 14437 .cfi_startproc 14438 @ args = 0, pretend = 0, frame = 0 14439 @ frame_needed = 0, uses_anonymous_args = 0 14440 @ link register save eliminated. 4894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14441 .loc 1 4894 3 view .LVU5058 4894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14442 .loc 1 4894 14 is_stmt 0 view .LVU5059 14443 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 14444 .LVL1120: 4895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14445 .loc 1 4895 1 view .LVU5060 14446 0004 7047 bx lr 14447 .cfi_endproc 14448 .LFE375: 14450 .section .text.HAL_I2C_GetMode,"ax",%progbits 14451 .align 1 14452 .global HAL_I2C_GetMode 14453 .syntax unified 14454 .thumb 14455 .thumb_func 14457 HAL_I2C_GetMode: 14458 .LVL1121: 14459 .LFB376: 4904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->Mode; 14460 .loc 1 4904 1 is_stmt 1 view -0 ARM GAS /tmp/ccDmmuIk.s page 470 14461 .cfi_startproc 14462 @ args = 0, pretend = 0, frame = 0 14463 @ frame_needed = 0, uses_anonymous_args = 0 14464 @ link register save eliminated. 4905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14465 .loc 1 4905 3 view .LVU5062 4905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14466 .loc 1 4905 14 is_stmt 0 view .LVU5063 14467 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 14468 .LVL1122: 4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14469 .loc 1 4906 1 view .LVU5064 14470 0004 7047 bx lr 14471 .cfi_endproc 14472 .LFE376: 14474 .section .text.HAL_I2C_GetError,"ax",%progbits 14475 .align 1 14476 .global HAL_I2C_GetError 14477 .syntax unified 14478 .thumb 14479 .thumb_func 14481 HAL_I2C_GetError: 14482 .LVL1123: 14483 .LFB377: 4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->ErrorCode; 14484 .loc 1 4915 1 is_stmt 1 view -0 14485 .cfi_startproc 14486 @ args = 0, pretend = 0, frame = 0 14487 @ frame_needed = 0, uses_anonymous_args = 0 14488 @ link register save eliminated. 4916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14489 .loc 1 4916 3 view .LVU5066 4916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14490 .loc 1 4916 14 is_stmt 0 view .LVU5067 14491 0000 406C ldr r0, [r0, #68] 14492 .LVL1124: 4917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14493 .loc 1 4917 1 view .LVU5068 14494 0002 7047 bx lr 14495 .cfi_endproc 14496 .LFE377: 14498 .text 14499 .Letext0: 14500 .file 2 "/home/fra/bin/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/mach 14501 .file 3 "/home/fra/bin/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/sys/ 14502 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 14503 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" 14504 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" 14505 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" 14506 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" 14507 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" ARM GAS /tmp/ccDmmuIk.s page 471 DEFINED SYMBOLS *ABS*:00000000 stm32g4xx_hal_i2c.c /tmp/ccDmmuIk.s:21 .text.I2C_Flush_TXDR:00000000 $t /tmp/ccDmmuIk.s:26 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR /tmp/ccDmmuIk.s:64 .text.I2C_TransferConfig:00000000 $t /tmp/ccDmmuIk.s:69 .text.I2C_TransferConfig:00000000 I2C_TransferConfig /tmp/ccDmmuIk.s:127 .text.I2C_Enable_IRQ:00000000 $t /tmp/ccDmmuIk.s:132 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ /tmp/ccDmmuIk.s:295 .text.I2C_Enable_IRQ:00000090 $d /tmp/ccDmmuIk.s:13307 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA /tmp/ccDmmuIk.s:13009 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA /tmp/ccDmmuIk.s:12633 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA /tmp/ccDmmuIk.s:302 .text.I2C_Disable_IRQ:00000000 $t /tmp/ccDmmuIk.s:307 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ /tmp/ccDmmuIk.s:430 .text.I2C_ConvertOtherXferOptions:00000000 $t /tmp/ccDmmuIk.s:435 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions /tmp/ccDmmuIk.s:476 .text.I2C_IsErrorOccurred:00000000 $t /tmp/ccDmmuIk.s:481 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred /tmp/ccDmmuIk.s:758 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t /tmp/ccDmmuIk.s:763 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccDmmuIk.s:861 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t /tmp/ccDmmuIk.s:866 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout /tmp/ccDmmuIk.s:978 .text.I2C_RequestMemoryWrite:00000000 $t /tmp/ccDmmuIk.s:983 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite /tmp/ccDmmuIk.s:1102 .text.I2C_RequestMemoryWrite:00000078 $d /tmp/ccDmmuIk.s:1107 .text.I2C_RequestMemoryRead:00000000 $t /tmp/ccDmmuIk.s:1112 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead /tmp/ccDmmuIk.s:1231 .text.I2C_RequestMemoryRead:00000074 $d /tmp/ccDmmuIk.s:1236 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t /tmp/ccDmmuIk.s:1241 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccDmmuIk.s:1339 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t /tmp/ccDmmuIk.s:1344 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccDmmuIk.s:1509 .text.HAL_I2C_MspInit:00000000 $t /tmp/ccDmmuIk.s:1515 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit /tmp/ccDmmuIk.s:1530 .text.HAL_I2C_Init:00000000 $t /tmp/ccDmmuIk.s:1536 .text.HAL_I2C_Init:00000000 HAL_I2C_Init /tmp/ccDmmuIk.s:1732 .text.HAL_I2C_MspDeInit:00000000 $t /tmp/ccDmmuIk.s:1738 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit /tmp/ccDmmuIk.s:1753 .text.HAL_I2C_DeInit:00000000 $t /tmp/ccDmmuIk.s:1759 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit /tmp/ccDmmuIk.s:1824 .text.HAL_I2C_Master_Transmit:00000000 $t /tmp/ccDmmuIk.s:1830 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit /tmp/ccDmmuIk.s:2188 .text.HAL_I2C_Master_Transmit:000001a0 $d /tmp/ccDmmuIk.s:2193 .text.HAL_I2C_Master_Receive:00000000 $t /tmp/ccDmmuIk.s:2199 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive /tmp/ccDmmuIk.s:2506 .text.HAL_I2C_Master_Receive:00000174 $d /tmp/ccDmmuIk.s:2511 .text.HAL_I2C_Slave_Transmit:00000000 $t /tmp/ccDmmuIk.s:2517 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit /tmp/ccDmmuIk.s:2968 .text.HAL_I2C_Slave_Receive:00000000 $t /tmp/ccDmmuIk.s:2974 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive /tmp/ccDmmuIk.s:3322 .text.HAL_I2C_Master_Transmit_IT:00000000 $t /tmp/ccDmmuIk.s:3328 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT /tmp/ccDmmuIk.s:3525 .text.HAL_I2C_Master_Transmit_IT:000000b8 $d /tmp/ccDmmuIk.s:12242 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT /tmp/ccDmmuIk.s:3532 .text.HAL_I2C_Master_Receive_IT:00000000 $t /tmp/ccDmmuIk.s:3538 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT /tmp/ccDmmuIk.s:3689 .text.HAL_I2C_Master_Receive_IT:0000008c $d ARM GAS /tmp/ccDmmuIk.s page 472 /tmp/ccDmmuIk.s:3696 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t /tmp/ccDmmuIk.s:3702 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT /tmp/ccDmmuIk.s:3845 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d /tmp/ccDmmuIk.s:11655 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT /tmp/ccDmmuIk.s:3851 .text.HAL_I2C_Slave_Receive_IT:00000000 $t /tmp/ccDmmuIk.s:3857 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT /tmp/ccDmmuIk.s:3959 .text.HAL_I2C_Slave_Receive_IT:0000005c $d /tmp/ccDmmuIk.s:3965 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t /tmp/ccDmmuIk.s:3971 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA /tmp/ccDmmuIk.s:4317 .text.HAL_I2C_Master_Transmit_DMA:00000158 $d /tmp/ccDmmuIk.s:13664 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt /tmp/ccDmmuIk.s:13624 .text.I2C_DMAError:00000000 I2C_DMAError /tmp/ccDmmuIk.s:4327 .text.HAL_I2C_Master_Receive_DMA:00000000 $t /tmp/ccDmmuIk.s:4333 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA /tmp/ccDmmuIk.s:4633 .text.HAL_I2C_Master_Receive_DMA:00000138 $d /tmp/ccDmmuIk.s:13772 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt /tmp/ccDmmuIk.s:4643 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t /tmp/ccDmmuIk.s:4649 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccDmmuIk.s:4954 .text.HAL_I2C_Slave_Transmit_DMA:0000012c $d /tmp/ccDmmuIk.s:10354 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt /tmp/ccDmmuIk.s:4962 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t /tmp/ccDmmuIk.s:4968 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA /tmp/ccDmmuIk.s:5190 .text.HAL_I2C_Slave_Receive_DMA:000000e0 $d /tmp/ccDmmuIk.s:10406 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt /tmp/ccDmmuIk.s:5198 .text.HAL_I2C_Mem_Write:00000000 $t /tmp/ccDmmuIk.s:5204 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write /tmp/ccDmmuIk.s:5560 .text.HAL_I2C_Mem_Read:00000000 $t /tmp/ccDmmuIk.s:5566 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read /tmp/ccDmmuIk.s:5922 .text.HAL_I2C_Mem_Read:000001a8 $d /tmp/ccDmmuIk.s:5927 .text.HAL_I2C_Mem_Write_IT:00000000 $t /tmp/ccDmmuIk.s:5933 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT /tmp/ccDmmuIk.s:6109 .text.HAL_I2C_Mem_Write_IT:000000ac $d /tmp/ccDmmuIk.s:13880 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT /tmp/ccDmmuIk.s:6116 .text.HAL_I2C_Mem_Read_IT:00000000 $t /tmp/ccDmmuIk.s:6122 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT /tmp/ccDmmuIk.s:6295 .text.HAL_I2C_Mem_Read_IT:000000a8 $d /tmp/ccDmmuIk.s:6302 .text.HAL_I2C_Mem_Write_DMA:00000000 $t /tmp/ccDmmuIk.s:6308 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA /tmp/ccDmmuIk.s:6592 .text.HAL_I2C_Mem_Write_DMA:00000120 $d /tmp/ccDmmuIk.s:6601 .text.HAL_I2C_Mem_Read_DMA:00000000 $t /tmp/ccDmmuIk.s:6607 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA /tmp/ccDmmuIk.s:6893 .text.HAL_I2C_Mem_Read_DMA:00000120 $d /tmp/ccDmmuIk.s:6902 .text.HAL_I2C_IsDeviceReady:00000000 $t /tmp/ccDmmuIk.s:6908 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady /tmp/ccDmmuIk.s:7204 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t /tmp/ccDmmuIk.s:7210 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccDmmuIk.s:7475 .text.HAL_I2C_Master_Seq_Transmit_IT:00000100 $d /tmp/ccDmmuIk.s:7481 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t /tmp/ccDmmuIk.s:7487 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/ccDmmuIk.s:7908 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001c8 $d /tmp/ccDmmuIk.s:7917 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t /tmp/ccDmmuIk.s:7923 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccDmmuIk.s:8117 .text.HAL_I2C_Master_Seq_Receive_IT:000000ac $d /tmp/ccDmmuIk.s:8123 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t /tmp/ccDmmuIk.s:8129 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA /tmp/ccDmmuIk.s:8461 .text.HAL_I2C_Master_Seq_Receive_DMA:0000015c $d /tmp/ccDmmuIk.s:8470 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t ARM GAS /tmp/ccDmmuIk.s page 473 /tmp/ccDmmuIk.s:8476 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccDmmuIk.s:8686 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d4 $d /tmp/ccDmmuIk.s:14381 .text.I2C_DMAAbort:00000000 I2C_DMAAbort /tmp/ccDmmuIk.s:8692 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t /tmp/ccDmmuIk.s:8698 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccDmmuIk.s:9087 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000198 $d /tmp/ccDmmuIk.s:9095 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t /tmp/ccDmmuIk.s:9101 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccDmmuIk.s:9311 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d4 $d /tmp/ccDmmuIk.s:9317 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t /tmp/ccDmmuIk.s:9323 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccDmmuIk.s:9709 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000194 $d /tmp/ccDmmuIk.s:9717 .text.HAL_I2C_EnableListen_IT:00000000 $t /tmp/ccDmmuIk.s:9723 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT /tmp/ccDmmuIk.s:9769 .text.HAL_I2C_EnableListen_IT:00000024 $d /tmp/ccDmmuIk.s:9774 .text.HAL_I2C_DisableListen_IT:00000000 $t /tmp/ccDmmuIk.s:9780 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT /tmp/ccDmmuIk.s:9845 .text.HAL_I2C_Master_Abort_IT:00000000 $t /tmp/ccDmmuIk.s:9851 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT /tmp/ccDmmuIk.s:9996 .text.HAL_I2C_Master_Abort_IT:00000084 $d /tmp/ccDmmuIk.s:10001 .text.HAL_I2C_EV_IRQHandler:00000000 $t /tmp/ccDmmuIk.s:10007 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler /tmp/ccDmmuIk.s:10045 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t /tmp/ccDmmuIk.s:10051 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback /tmp/ccDmmuIk.s:10066 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t /tmp/ccDmmuIk.s:10072 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback /tmp/ccDmmuIk.s:10087 .text.I2C_ITMasterSeqCplt:00000000 $t /tmp/ccDmmuIk.s:10092 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt /tmp/ccDmmuIk.s:10176 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t /tmp/ccDmmuIk.s:10182 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccDmmuIk.s:10197 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t /tmp/ccDmmuIk.s:10203 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccDmmuIk.s:10218 .text.I2C_ITSlaveSeqCplt:00000000 $t /tmp/ccDmmuIk.s:10223 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt /tmp/ccDmmuIk.s:10349 .text.I2C_DMASlaveTransmitCplt:00000000 $t /tmp/ccDmmuIk.s:10401 .text.I2C_DMASlaveReceiveCplt:00000000 $t /tmp/ccDmmuIk.s:10462 .text.HAL_I2C_AddrCallback:00000000 $t /tmp/ccDmmuIk.s:10468 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback /tmp/ccDmmuIk.s:10485 .text.I2C_ITAddrCplt:00000000 $t /tmp/ccDmmuIk.s:10490 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt /tmp/ccDmmuIk.s:10650 .text.HAL_I2C_ListenCpltCallback:00000000 $t /tmp/ccDmmuIk.s:10656 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback /tmp/ccDmmuIk.s:10671 .text.I2C_ITListenCplt:00000000 $t /tmp/ccDmmuIk.s:10676 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt /tmp/ccDmmuIk.s:10780 .text.I2C_ITListenCplt:00000064 $d /tmp/ccDmmuIk.s:10785 .text.HAL_I2C_MemTxCpltCallback:00000000 $t /tmp/ccDmmuIk.s:10791 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback /tmp/ccDmmuIk.s:10806 .text.HAL_I2C_MemRxCpltCallback:00000000 $t /tmp/ccDmmuIk.s:10812 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback /tmp/ccDmmuIk.s:10827 .text.HAL_I2C_ErrorCallback:00000000 $t /tmp/ccDmmuIk.s:10833 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback /tmp/ccDmmuIk.s:10848 .text.HAL_I2C_AbortCpltCallback:00000000 $t /tmp/ccDmmuIk.s:10854 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback /tmp/ccDmmuIk.s:10869 .text.I2C_TreatErrorCallback:00000000 $t /tmp/ccDmmuIk.s:10874 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback /tmp/ccDmmuIk.s:10930 .text.I2C_ITError:00000000 $t /tmp/ccDmmuIk.s:10935 .text.I2C_ITError:00000000 I2C_ITError ARM GAS /tmp/ccDmmuIk.s page 474 /tmp/ccDmmuIk.s:11213 .text.I2C_ITError:00000124 $d /tmp/ccDmmuIk.s:11220 .text.I2C_ITSlaveCplt:00000000 $t /tmp/ccDmmuIk.s:11225 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt /tmp/ccDmmuIk.s:11272 .text.I2C_ITSlaveCplt:0000001e $d /tmp/ccDmmuIk.s:11282 .text.I2C_ITSlaveCplt:00000028 $t /tmp/ccDmmuIk.s:11645 .text.I2C_ITSlaveCplt:000001e4 $d /tmp/ccDmmuIk.s:11650 .text.I2C_Slave_ISR_IT:00000000 $t /tmp/ccDmmuIk.s:11968 .text.I2C_ITMasterCplt:00000000 $t /tmp/ccDmmuIk.s:11973 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt /tmp/ccDmmuIk.s:12237 .text.I2C_Master_ISR_IT:00000000 $t /tmp/ccDmmuIk.s:12628 .text.I2C_Mem_ISR_DMA:00000000 $t /tmp/ccDmmuIk.s:12998 .text.I2C_Mem_ISR_DMA:00000198 $d /tmp/ccDmmuIk.s:13004 .text.I2C_Slave_ISR_DMA:00000000 $t /tmp/ccDmmuIk.s:13148 .text.I2C_Slave_ISR_DMA:00000094 $d /tmp/ccDmmuIk.s:13159 .text.I2C_Slave_ISR_DMA:0000009e $t /tmp/ccDmmuIk.s:13302 .text.I2C_Master_ISR_DMA:00000000 $t /tmp/ccDmmuIk.s:13619 .text.I2C_DMAError:00000000 $t /tmp/ccDmmuIk.s:13659 .text.I2C_DMAMasterTransmitCplt:00000000 $t /tmp/ccDmmuIk.s:13767 .text.I2C_DMAMasterReceiveCplt:00000000 $t /tmp/ccDmmuIk.s:13875 .text.I2C_Mem_ISR_IT:00000000 $t /tmp/ccDmmuIk.s:14263 .text.I2C_Mem_ISR_IT:00000190 $d /tmp/ccDmmuIk.s:14269 .text.HAL_I2C_ER_IRQHandler:00000000 $t /tmp/ccDmmuIk.s:14275 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler /tmp/ccDmmuIk.s:14376 .text.I2C_DMAAbort:00000000 $t /tmp/ccDmmuIk.s:14427 .text.HAL_I2C_GetState:00000000 $t /tmp/ccDmmuIk.s:14433 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState /tmp/ccDmmuIk.s:14451 .text.HAL_I2C_GetMode:00000000 $t /tmp/ccDmmuIk.s:14457 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode /tmp/ccDmmuIk.s:14475 .text.HAL_I2C_GetError:00000000 $t /tmp/ccDmmuIk.s:14481 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState