ARM GAS /tmp/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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/ccclMPzv.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, .L24 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, .L24+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, .L24+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/ccclMPzv.s page 132 159 0018 11D1 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 01D0 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: 181 .L10: 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) 182 .loc 1 7330 5 is_stmt 1 view .LVU45 183 .loc 1 7330 8 is_stmt 0 view .LVU46 184 0030 1029 cmp r1, #16 185 0032 06D0 beq .L20 186 .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) 187 .loc 1 7336 5 is_stmt 1 view .LVU47 188 .loc 1 7336 8 is_stmt 0 view .LVU48 189 0034 2029 cmp r1, #32 190 0036 1BD1 bne .L12 ARM GAS /tmp/ccclMPzv.s page 133 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; 191 .loc 1 7339 7 is_stmt 1 view .LVU49 192 .loc 1 7339 14 is_stmt 0 view .LVU50 193 0038 43F02003 orr r3, r3, #32 194 .LVL11: 195 .loc 1 7339 14 view .LVU51 196 003c 18E0 b .L12 197 .LVL12: 198 .L18: 7315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 199 .loc 1 7315 14 view .LVU52 200 003e B823 movs r3, #184 201 0040 ECE7 b .L8 202 .LVL13: 203 .L20: 7333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 204 .loc 1 7333 7 is_stmt 1 view .LVU53 7333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 205 .loc 1 7333 14 is_stmt 0 view .LVU54 206 0042 43F09003 orr r3, r3, #144 207 .LVL14: 7333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 208 .loc 1 7333 14 view .LVU55 209 0046 F5E7 b .L11 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 is_stmt 1 view .LVU56 213 .loc 1 7345 8 is_stmt 0 view .LVU57 214 0048 11F4004F tst r1, #32768 215 004c 15D1 bne .L19 7306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 216 .loc 1 7306 12 view .LVU58 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 .LVU59 221 .loc 1 7351 8 is_stmt 0 view .LVU60 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 */ 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 .LVU61 ARM GAS /tmp/ccclMPzv.s page 134 225 .loc 1 7354 14 is_stmt 0 view .LVU62 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 .LVU63 230 .loc 1 7357 8 is_stmt 0 view .LVU64 231 005a 11F0020F tst r1, #2 232 005e 01D0 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 .LVU65 234 .loc 1 7360 14 is_stmt 0 view .LVU66 235 0060 43F0F403 orr r3, r3, #244 236 .LVL18: 237 .L15: 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) 238 .loc 1 7363 5 is_stmt 1 view .LVU67 239 .loc 1 7363 8 is_stmt 0 view .LVU68 240 0064 1029 cmp r1, #16 241 0066 0AD0 beq .L21 242 .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) 243 .loc 1 7369 5 is_stmt 1 view .LVU69 244 .loc 1 7369 8 is_stmt 0 view .LVU70 245 0068 2029 cmp r1, #32 246 006a 0BD0 beq .L22 247 .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) 248 .loc 1 7375 5 is_stmt 1 view .LVU71 249 .loc 1 7375 8 is_stmt 0 view .LVU72 250 006c 4029 cmp r1, #64 251 006e 0CD0 beq .L23 252 .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 */ ARM GAS /tmp/ccclMPzv.s page 135 7384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* all interrupts requested done */ 7385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 253 .loc 1 7385 3 is_stmt 1 view .LVU73 254 0070 0168 ldr r1, [r0] 255 .LVL19: 256 .loc 1 7385 3 is_stmt 0 view .LVU74 257 0072 0A68 ldr r2, [r1] 258 0074 1343 orrs r3, r3, r2 259 .LVL20: 260 .loc 1 7385 3 view .LVU75 261 0076 0B60 str r3, [r1] 7386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 262 .loc 1 7386 1 view .LVU76 263 0078 7047 bx lr 264 .LVL21: 265 .L19: 7348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 266 .loc 1 7348 14 view .LVU77 267 007a B823 movs r3, #184 268 007c E8E7 b .L13 269 .LVL22: 270 .L21: 7366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 271 .loc 1 7366 7 is_stmt 1 view .LVU78 7366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 272 .loc 1 7366 14 is_stmt 0 view .LVU79 273 007e 43F09003 orr r3, r3, #144 274 .LVL23: 7366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 275 .loc 1 7366 14 view .LVU80 276 0082 F1E7 b .L16 277 .L22: 7372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 278 .loc 1 7372 7 is_stmt 1 view .LVU81 7372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 279 .loc 1 7372 14 is_stmt 0 view .LVU82 280 0084 43F06003 orr r3, r3, #96 281 .LVL24: 7372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 282 .loc 1 7372 14 view .LVU83 283 0088 F0E7 b .L17 284 .L23: 7378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 285 .loc 1 7378 7 is_stmt 1 view .LVU84 7378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 286 .loc 1 7378 14 is_stmt 0 view .LVU85 287 008a 43F04003 orr r3, r3, #64 288 .LVL25: 7378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 289 .loc 1 7378 14 view .LVU86 290 008e EFE7 b .L12 291 .L25: 292 .align 2 293 .L24: 294 0090 00000000 .word I2C_Master_ISR_DMA 295 0094 00000000 .word I2C_Slave_ISR_DMA 296 0098 00000000 .word I2C_Mem_ISR_DMA ARM GAS /tmp/ccclMPzv.s page 136 297 .cfi_endproc 298 .LFE407: 300 .section .text.I2C_Disable_IRQ,"ax",%progbits 301 .align 1 302 .syntax unified 303 .thumb 304 .thumb_func 306 I2C_Disable_IRQ: 307 .LVL26: 308 .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 **** { 309 .loc 1 7396 1 is_stmt 1 view -0 310 .cfi_startproc 311 @ args = 0, pretend = 0, frame = 0 312 @ frame_needed = 0, uses_anonymous_args = 0 313 @ link register save eliminated. 7397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpisr = 0U; 314 .loc 1 7397 3 view .LVU88 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) 315 .loc 1 7399 3 view .LVU89 316 .loc 1 7399 6 is_stmt 0 view .LVU90 317 0000 11F0010F tst r1, #1 318 0004 09D0 beq .L33 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; 319 .loc 1 7402 5 is_stmt 1 view .LVU91 320 .LVL27: 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) 321 .loc 1 7404 5 view .LVU92 322 .loc 1 7404 24 is_stmt 0 view .LVU93 323 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 324 .loc 1 7404 8 view .LVU94 325 000a 03F02803 and r3, r3, #40 326 000e 282B cmp r3, #40 327 0010 01D0 beq .L36 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; 328 .loc 1 7407 14 view .LVU95 329 0012 F223 movs r3, #242 330 0014 02E0 b .L27 331 .L36: 7402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 332 .loc 1 7402 12 view .LVU96 333 0016 4223 movs r3, #66 ARM GAS /tmp/ccclMPzv.s page 137 334 0018 00E0 b .L27 335 .LVL28: 336 .L33: 7397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 337 .loc 1 7397 12 view .LVU97 338 001a 0023 movs r3, #0 339 .LVL29: 340 .L27: 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) 341 .loc 1 7411 3 is_stmt 1 view .LVU98 342 .loc 1 7411 6 is_stmt 0 view .LVU99 343 001c 11F0020F tst r1, #2 344 0020 09D0 beq .L28 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; 345 .loc 1 7414 5 is_stmt 1 view .LVU100 346 .loc 1 7414 12 is_stmt 0 view .LVU101 347 0022 43F0440C orr ip, r3, #68 348 .LVL30: 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) 349 .loc 1 7416 5 is_stmt 1 view .LVU102 350 .loc 1 7416 24 is_stmt 0 view .LVU103 351 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 352 .loc 1 7416 8 view .LVU104 353 002a 02F02802 and r2, r2, #40 354 002e 282A cmp r2, #40 355 0030 10D0 beq .L35 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; 356 .loc 1 7419 7 is_stmt 1 view .LVU105 357 .loc 1 7419 14 is_stmt 0 view .LVU106 358 0032 43F0F403 orr r3, r3, #244 359 .LVL31: 360 .L28: 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) 361 .loc 1 7423 3 is_stmt 1 view .LVU107 362 .loc 1 7423 6 is_stmt 0 view .LVU108 363 0036 11F4004F tst r1, #32768 364 003a 0DD1 bne .L37 365 .L29: 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 **** } 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 .LVU109 367 .loc 1 7429 6 is_stmt 0 view .LVU110 ARM GAS /tmp/ccclMPzv.s page 138 368 003c 1029 cmp r1, #16 369 003e 0ED0 beq .L38 370 .L30: 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; 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) 371 .loc 1 7435 3 is_stmt 1 view .LVU111 372 .loc 1 7435 6 is_stmt 0 view .LVU112 373 0040 2029 cmp r1, #32 374 0042 0FD0 beq .L39 375 .L31: 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) 376 .loc 1 7441 3 is_stmt 1 view .LVU113 377 .loc 1 7441 6 is_stmt 0 view .LVU114 378 0044 4029 cmp r1, #64 379 0046 10D0 beq .L40 380 .L32: 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 **** 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); 381 .loc 1 7450 3 is_stmt 1 view .LVU115 382 0048 0168 ldr r1, [r0] 383 .LVL32: 384 .loc 1 7450 3 is_stmt 0 view .LVU116 385 004a 0A68 ldr r2, [r1] 386 004c 22EA0303 bic r3, r2, r3 387 .LVL33: 388 .loc 1 7450 3 view .LVU117 389 0050 0B60 str r3, [r1] 7451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 390 .loc 1 7451 1 view .LVU118 391 0052 7047 bx lr 392 .LVL34: 393 .L35: 7414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 394 .loc 1 7414 12 view .LVU119 395 0054 6346 mov r3, ip 396 0056 EEE7 b .L28 397 .LVL35: 398 .L37: 7426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 399 .loc 1 7426 5 is_stmt 1 view .LVU120 7426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 139 400 .loc 1 7426 12 is_stmt 0 view .LVU121 401 0058 43F0B803 orr r3, r3, #184 402 .LVL36: 7426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 403 .loc 1 7426 12 view .LVU122 404 005c EEE7 b .L29 405 .L38: 7432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 406 .loc 1 7432 5 is_stmt 1 view .LVU123 7432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 407 .loc 1 7432 12 is_stmt 0 view .LVU124 408 005e 43F09003 orr r3, r3, #144 409 .LVL37: 7432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 410 .loc 1 7432 12 view .LVU125 411 0062 EDE7 b .L30 412 .L39: 7438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 413 .loc 1 7438 5 is_stmt 1 view .LVU126 7438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 414 .loc 1 7438 12 is_stmt 0 view .LVU127 415 0064 43F02003 orr r3, r3, #32 416 .LVL38: 7438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 417 .loc 1 7438 12 view .LVU128 418 0068 ECE7 b .L31 419 .L40: 7444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 420 .loc 1 7444 5 is_stmt 1 view .LVU129 7444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 421 .loc 1 7444 12 is_stmt 0 view .LVU130 422 006a 43F04003 orr r3, r3, #64 423 .LVL39: 7444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 424 .loc 1 7444 12 view .LVU131 425 006e EBE7 b .L32 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 .LVL40: 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 440 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccclMPzv.s page 140 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 .LVU133 444 .loc 1 7463 11 is_stmt 0 view .LVU134 445 0000 C36A ldr r3, [r0, #44] 446 .loc 1 7463 6 view .LVU135 447 0002 AA2B cmp r3, #170 448 0004 04D0 beq .L44 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 .LVU136 450 .loc 1 7471 16 is_stmt 0 view .LVU137 451 0006 C36A ldr r3, [r0, #44] 452 .loc 1 7471 11 view .LVU138 453 0008 B3F52A4F cmp r3, #43520 454 000c 03D0 beq .L45 455 .L41: 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 .LVU139 457 000e 7047 bx lr 458 .L44: 7465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 459 .loc 1 7465 5 is_stmt 1 view .LVU140 7465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 460 .loc 1 7465 23 is_stmt 0 view .LVU141 461 0010 0023 movs r3, #0 462 0012 C362 str r3, [r0, #44] 463 0014 7047 bx lr 464 .L45: 7473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 465 .loc 1 7473 5 is_stmt 1 view .LVU142 7473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 466 .loc 1 7473 23 is_stmt 0 view .LVU143 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 .LVU144 470 .loc 1 7479 1 is_stmt 0 view .LVU145 471 001c F7E7 b .L41 472 .cfi_endproc ARM GAS /tmp/ccclMPzv.s page 141 473 .LFE409: 475 .section .text.I2C_IsErrorOccurred,"ax",%progbits 476 .align 1 477 .syntax unified 478 .thumb 479 .thumb_func 481 I2C_IsErrorOccurred: 482 .LVL41: 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 .LVU147 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 .LVU148 500 .LVL42: 7139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 501 .loc 1 7139 3 view .LVU149 7139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t error_code = 0; 502 .loc 1 7139 27 is_stmt 0 view .LVU150 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 .LVU151 505 0008 9E69 ldr r6, [r3, #24] 506 .LVL43: 7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 507 .loc 1 7140 3 is_stmt 1 view .LVU152 7141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmp1; 508 .loc 1 7141 3 view .LVU153 7142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 509 .loc 1 7142 3 view .LVU154 7143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 510 .loc 1 7143 3 view .LVU155 7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 511 .loc 1 7145 3 view .LVU156 7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 512 .loc 1 7145 6 is_stmt 0 view .LVU157 513 000a 16F01006 ands r6, r6, #16 514 .LVL44: 7145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 515 .loc 1 7145 6 view .LVU158 516 000e 7CD0 beq .L63 517 0010 0D46 mov r5, r1 518 0012 9046 mov r8, r2 ARM GAS /tmp/ccclMPzv.s page 142 7148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 519 .loc 1 7148 5 is_stmt 1 view .LVU159 520 0014 1022 movs r2, #16 521 .LVL45: 7148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 522 .loc 1 7148 5 is_stmt 0 view .LVU160 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 .LVU161 7140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 525 .loc 1 7140 12 is_stmt 0 view .LVU162 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 .LVU163 528 001a 3746 mov r7, r6 529 .LVL46: 530 .L49: 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 531 .loc 1 7152 64 is_stmt 1 view .LVU164 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 532 .loc 1 7152 13 is_stmt 0 view .LVU165 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 .LVU166 536 0020 10F0200F tst r0, #32 537 0024 30D1 bne .L55 7152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 538 .loc 1 7152 64 discriminator 1 view .LVU167 539 0026 7FBB cbnz r7, .L55 7155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 540 .loc 1 7155 7 is_stmt 1 view .LVU168 7155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 541 .loc 1 7155 10 is_stmt 0 view .LVU169 542 0028 B5F1FF3F cmp r5, #-1 543 002c F6D0 beq .L49 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 544 .loc 1 7157 9 is_stmt 1 view .LVU170 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 545 .loc 1 7157 15 is_stmt 0 view .LVU171 546 002e FFF7FEFF bl HAL_GetTick 547 .LVL47: 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 548 .loc 1 7157 29 discriminator 1 view .LVU172 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 .LVU173 551 0036 A842 cmp r0, r5 552 0038 01D8 bhi .L50 7157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 553 .loc 1 7157 53 discriminator 1 view .LVU174 554 003a 002D cmp r5, #0 555 003c EED1 bne .L49 556 .L50: 7159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; 557 .loc 1 7159 11 is_stmt 1 view .LVU175 7159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = hi2c->Mode; ARM GAS /tmp/ccclMPzv.s page 143 558 .loc 1 7159 33 is_stmt 0 view .LVU176 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 .LVU177 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 .LVU178 563 0042 03F48043 and r3, r3, #16384 564 .LVL48: 7160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 565 .loc 1 7160 11 is_stmt 1 view .LVU179 7160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 566 .loc 1 7160 16 is_stmt 0 view .LVU180 567 0046 94F84220 ldrb r2, [r4, #66] @ zero_extendqisi2 568 004a D2B2 uxtb r2, r2 569 .LVL49: 7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 570 .loc 1 7163 11 is_stmt 1 view .LVU181 7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 571 .loc 1 7163 16 is_stmt 0 view .LVU182 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 .LVU183 574 004e 10F4004F tst r0, #32768 575 0052 02D0 beq .L53 7163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 576 .loc 1 7163 66 discriminator 1 view .LVU184 577 0054 0BB9 cbnz r3, .L53 7164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 578 .loc 1 7164 38 view .LVU185 579 0056 202A cmp r2, #32 580 0058 0ED1 bne .L65 581 .LVL50: 582 .L53: 7174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 583 .loc 1 7174 59 is_stmt 1 view .LVU186 7174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 584 .loc 1 7174 18 is_stmt 0 view .LVU187 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 .LVU188 588 005e 13F0200F tst r3, #32 589 0062 DBD1 bne .L49 7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 590 .loc 1 7177 13 is_stmt 1 view .LVU189 7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 591 .loc 1 7177 18 is_stmt 0 view .LVU190 592 0064 FFF7FEFF bl HAL_GetTick 593 .LVL51: 7177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 594 .loc 1 7177 32 discriminator 1 view .LVU191 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 .LVU192 597 006c 1928 cmp r0, #25 598 006e F4D9 bls .L53 ARM GAS /tmp/ccclMPzv.s page 144 7179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 599 .loc 1 7179 15 is_stmt 1 view .LVU193 7179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 600 .loc 1 7179 26 is_stmt 0 view .LVU194 601 0070 46F02006 orr r6, r6, #32 602 .LVL52: 7181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 603 .loc 1 7181 15 is_stmt 1 view .LVU195 7183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 604 .loc 1 7183 15 view .LVU196 7181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 605 .loc 1 7181 22 is_stmt 0 view .LVU197 606 0074 0127 movs r7, #1 7183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 607 .loc 1 7183 15 view .LVU198 608 0076 D1E7 b .L49 609 .LVL53: 610 .L65: 7168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 611 .loc 1 7168 13 is_stmt 1 view .LVU199 7168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 612 .loc 1 7168 27 is_stmt 0 view .LVU200 613 0078 4B68 ldr r3, [r1, #4] 614 .LVL54: 7168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 615 .loc 1 7168 33 view .LVU201 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 .LVU202 7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 619 .loc 1 7171 25 is_stmt 0 view .LVU203 620 0080 FFF7FEFF bl HAL_GetTick 621 .LVL55: 7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 622 .loc 1 7171 25 view .LVU204 623 0084 8046 mov r8, r0 624 .LVL56: 7171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 625 .loc 1 7171 25 view .LVU205 626 0086 E8E7 b .L53 627 .LVL57: 628 .L55: 7191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 629 .loc 1 7191 5 is_stmt 1 view .LVU206 7191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 630 .loc 1 7191 8 is_stmt 0 view .LVU207 631 0088 0FB9 cbnz r7, .L57 7194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 632 .loc 1 7194 7 is_stmt 1 view .LVU208 633 008a 2022 movs r2, #32 634 008c DA61 str r2, [r3, #28] 635 .L57: 7197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 636 .loc 1 7197 5 view .LVU209 7197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 637 .loc 1 7197 16 is_stmt 0 view .LVU210 ARM GAS /tmp/ccclMPzv.s page 145 638 008e 46F00406 orr r6, r6, #4 639 .LVL58: 7199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 640 .loc 1 7199 5 is_stmt 1 view .LVU211 7199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 641 .loc 1 7199 12 is_stmt 0 view .LVU212 642 0092 0125 movs r5, #1 643 .LVL59: 644 .L47: 7203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 645 .loc 1 7203 3 is_stmt 1 view .LVU213 7203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 646 .loc 1 7203 16 is_stmt 0 view .LVU214 647 0094 2268 ldr r2, [r4] 7203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 648 .loc 1 7203 10 view .LVU215 649 0096 9369 ldr r3, [r2, #24] 650 .LVL60: 7207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 651 .loc 1 7207 3 is_stmt 1 view .LVU216 7207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 652 .loc 1 7207 6 is_stmt 0 view .LVU217 653 0098 13F4807F tst r3, #256 654 009c 05D0 beq .L58 7209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 655 .loc 1 7209 5 is_stmt 1 view .LVU218 7209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 656 .loc 1 7209 16 is_stmt 0 view .LVU219 657 009e 46F00106 orr r6, r6, #1 658 .LVL61: 7212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 659 .loc 1 7212 5 is_stmt 1 view .LVU220 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 .LVU221 663 .LVL62: 7214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 664 .loc 1 7214 12 is_stmt 0 view .LVU222 665 00a8 0125 movs r5, #1 666 .LVL63: 667 .L58: 7218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 668 .loc 1 7218 3 is_stmt 1 view .LVU223 7218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 669 .loc 1 7218 6 is_stmt 0 view .LVU224 670 00aa 13F4806F tst r3, #1024 671 00ae 06D0 beq .L59 7220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 672 .loc 1 7220 5 is_stmt 1 view .LVU225 7220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 673 .loc 1 7220 16 is_stmt 0 view .LVU226 674 00b0 46F00806 orr r6, r6, #8 675 .LVL64: 7223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 676 .loc 1 7223 5 is_stmt 1 view .LVU227 677 00b4 2268 ldr r2, [r4] ARM GAS /tmp/ccclMPzv.s page 146 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 .LVU228 681 .LVL65: 7225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 682 .loc 1 7225 12 is_stmt 0 view .LVU229 683 00bc 0125 movs r5, #1 684 .LVL66: 685 .L59: 7229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 686 .loc 1 7229 3 is_stmt 1 view .LVU230 7229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 687 .loc 1 7229 6 is_stmt 0 view .LVU231 688 00be 13F4007F tst r3, #512 689 00c2 24D0 beq .L60 7231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 690 .loc 1 7231 5 is_stmt 1 view .LVU232 7231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 691 .loc 1 7231 16 is_stmt 0 view .LVU233 692 00c4 46F00206 orr r6, r6, #2 693 .LVL67: 7234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 694 .loc 1 7234 5 is_stmt 1 view .LVU234 695 00c8 2368 ldr r3, [r4] 696 .LVL68: 7234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 697 .loc 1 7234 5 is_stmt 0 view .LVU235 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 .LVU236 701 .LVL69: 7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 702 .loc 1 7239 3 view .LVU237 7236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 703 .loc 1 7236 12 is_stmt 0 view .LVU238 704 00d0 0125 movs r5, #1 705 .LVL70: 706 .L61: 7242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 707 .loc 1 7242 5 is_stmt 1 view .LVU239 708 00d2 2046 mov r0, r4 709 00d4 FFF7FEFF bl I2C_Flush_TXDR 710 .LVL71: 7245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 711 .loc 1 7245 5 view .LVU240 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 .LVU241 7247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccclMPzv.s page 147 720 .loc 1 7247 9 is_stmt 0 view .LVU242 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 .LVU243 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 .LVU244 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 .LVU245 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 .LVU246 7249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 730 .loc 1 7249 16 is_stmt 0 view .LVU247 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 .LVU248 7252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 734 .loc 1 7252 5 view .LVU249 735 0100 84F84030 strb r3, [r4, #64] 736 .L62: 7252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 737 .loc 1 7252 5 discriminator 1 view .LVU250 7255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 738 .loc 1 7255 3 view .LVU251 7256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 739 .loc 1 7256 1 is_stmt 0 view .LVU252 740 0104 2846 mov r0, r5 741 0106 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 742 .LVL72: 743 .L63: 7138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 744 .loc 1 7138 21 view .LVU253 745 010a 0025 movs r5, #0 746 010c C2E7 b .L47 747 .LVL73: 748 .L60: 7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 749 .loc 1 7239 3 is_stmt 1 view .LVU254 7239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 750 .loc 1 7239 6 is_stmt 0 view .LVU255 751 010e 002D cmp r5, #0 752 0110 F8D0 beq .L62 753 0112 DEE7 b .L61 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 .LVL74: 765 .LFB402: ARM GAS /tmp/ccclMPzv.s page 148 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 .LVU257 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 .LVU258 782 .LVL75: 783 .L69: 6983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 784 .loc 1 6983 50 view .LVU259 6983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 785 .loc 1 6983 10 is_stmt 0 view .LVU260 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 .LVU261 789 000c 13F0020F tst r3, #2 790 0010 22D1 bne .L74 6986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 791 .loc 1 6986 5 is_stmt 1 view .LVU262 6986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 792 .loc 1 6986 9 is_stmt 0 view .LVU263 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 .LVL76: 6986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 798 .loc 1 6986 8 discriminator 1 view .LVU264 799 001c F0B9 cbnz r0, .L72 6992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 800 .loc 1 6992 5 is_stmt 1 view .LVU265 6992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 801 .loc 1 6992 8 is_stmt 0 view .LVU266 802 001e B5F1FF3F cmp r5, #-1 803 0022 F1D0 beq .L69 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 804 .loc 1 6994 7 is_stmt 1 view .LVU267 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 805 .loc 1 6994 13 is_stmt 0 view .LVU268 806 0024 FFF7FEFF bl HAL_GetTick 807 .LVL77: 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 808 .loc 1 6994 27 discriminator 1 view .LVU269 ARM GAS /tmp/ccclMPzv.s page 149 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 .LVU270 811 002a A842 cmp r0, r5 812 002c 01D8 bhi .L70 6994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 813 .loc 1 6994 51 discriminator 1 view .LVU271 814 002e 002D cmp r5, #0 815 0030 EAD1 bne .L69 816 .L70: 6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 817 .loc 1 6996 9 is_stmt 1 view .LVU272 6996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 818 .loc 1 6996 14 is_stmt 0 view .LVU273 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 .LVU274 822 0036 13F0020F tst r3, #2 823 003a E5D1 bne .L69 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 .LVU275 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 .LVU276 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 .LVU277 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 .LVU278 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 .LVU279 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 .LVU280 7000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 835 .loc 1 7000 22 is_stmt 0 view .LVU281 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 .LVU282 7003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 839 .loc 1 7003 11 view .LVU283 840 0050 84F84030 strb r3, [r4, #64] 7003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 841 .loc 1 7003 11 view .LVU284 7005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 842 .loc 1 7005 11 view .LVU285 7005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 843 .loc 1 7005 18 is_stmt 0 view .LVU286 844 0054 0120 movs r0, #1 845 0056 00E0 b .L68 846 .L74: 7010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 847 .loc 1 7010 10 view .LVU287 ARM GAS /tmp/ccclMPzv.s page 150 848 0058 0020 movs r0, #0 849 .L68: 7011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 850 .loc 1 7011 1 view .LVU288 851 005a 70BD pop {r4, r5, r6, pc} 852 .LVL78: 853 .L72: 6988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 854 .loc 1 6988 14 view .LVU289 855 005c 0120 movs r0, #1 856 005e FCE7 b .L68 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 .LVL79: 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 .LVU291 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 .LVU292 891 .LVL80: 892 .L78: 6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 893 .loc 1 6943 41 view .LVU293 6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 894 .loc 1 6943 10 is_stmt 0 view .LVU294 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 899 001a 0123 moveq r3, #1 ARM GAS /tmp/ccclMPzv.s page 151 900 001c 0023 movne r3, #0 6943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 901 .loc 1 6943 41 view .LVU295 902 001e BB42 cmp r3, r7 903 0020 27D1 bne .L83 6946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 904 .loc 1 6946 5 is_stmt 1 view .LVU296 6946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 905 .loc 1 6946 9 is_stmt 0 view .LVU297 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 .LVL81: 6946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 911 .loc 1 6946 8 discriminator 1 view .LVU298 912 002c 20BB cbnz r0, .L81 6952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 913 .loc 1 6952 5 is_stmt 1 view .LVU299 6952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 914 .loc 1 6952 8 is_stmt 0 view .LVU300 915 002e B6F1FF3F cmp r6, #-1 916 0032 EDD0 beq .L78 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 917 .loc 1 6954 7 is_stmt 1 view .LVU301 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 918 .loc 1 6954 13 is_stmt 0 view .LVU302 919 0034 FFF7FEFF bl HAL_GetTick 920 .LVL82: 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 921 .loc 1 6954 27 discriminator 1 view .LVU303 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 .LVU304 924 003c B042 cmp r0, r6 925 003e 01D8 bhi .L79 6954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 926 .loc 1 6954 51 discriminator 1 view .LVU305 927 0040 002E cmp r6, #0 928 0042 E5D1 bne .L78 929 .L79: 6956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 930 .loc 1 6956 9 is_stmt 1 view .LVU306 6956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 931 .loc 1 6956 14 is_stmt 0 view .LVU307 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 .LVU308 939 0052 BB42 cmp r3, r7 940 0054 DCD1 bne .L78 6958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 941 .loc 1 6958 11 is_stmt 1 view .LVU309 ARM GAS /tmp/ccclMPzv.s page 152 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 .LVU310 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 .LVU311 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 .LVU312 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 .LVU313 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 .LVU314 6960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 952 .loc 1 6960 22 is_stmt 0 view .LVU315 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 .LVU316 6963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 956 .loc 1 6963 11 view .LVU317 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 .LVU318 6964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 959 .loc 1 6964 11 view .LVU319 6964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 960 .loc 1 6964 18 is_stmt 0 view .LVU320 961 006e 0120 movs r0, #1 962 0070 00E0 b .L77 963 .L83: 6969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 964 .loc 1 6969 10 view .LVU321 965 0072 0020 movs r0, #0 966 .L77: 6970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 967 .loc 1 6970 1 view .LVU322 968 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 969 .LVL83: 970 .L81: 6948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 971 .loc 1 6948 14 view .LVU323 972 0078 0120 movs r0, #1 973 007a FBE7 b .L77 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 .LVL84: 985 .LFB384: 5808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI ARM GAS /tmp/ccclMPzv.s page 153 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 .LVU325 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 .LVU326 1009 0010 194B ldr r3, .L93 1010 .LVL85: 5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1011 .loc 1 5809 3 is_stmt 0 view .LVU327 1012 0012 0093 str r3, [sp] 1013 0014 4FF08073 mov r3, #16777216 1014 0018 EAB2 uxtb r2, r5 1015 .LVL86: 5809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1016 .loc 1 5809 3 view .LVU328 1017 001a FFF7FEFF bl I2C_TransferConfig 1018 .LVL87: 5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1019 .loc 1 5812 3 is_stmt 1 view .LVU329 5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1020 .loc 1 5812 7 is_stmt 0 view .LVU330 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 .LVL88: 5812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1026 .loc 1 5812 6 discriminator 1 view .LVU331 1027 0028 F8B9 cbnz r0, .L88 5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1028 .loc 1 5818 3 is_stmt 1 view .LVU332 5818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1029 .loc 1 5818 6 is_stmt 0 view .LVU333 1030 002a 012D cmp r5, #1 1031 002c 0ED1 bne .L86 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1032 .loc 1 5821 5 is_stmt 1 view .LVU334 ARM GAS /tmp/ccclMPzv.s page 154 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1033 .loc 1 5821 9 is_stmt 0 view .LVU335 1034 002e 2368 ldr r3, [r4] 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1035 .loc 1 5821 28 view .LVU336 1036 0030 5FFA88F2 uxtb r2, r8 5821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1037 .loc 1 5821 26 view .LVU337 1038 0034 9A62 str r2, [r3, #40] 1039 .L87: 5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1040 .loc 1 5840 3 is_stmt 1 view .LVU338 5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1041 .loc 1 5840 7 is_stmt 0 view .LVU339 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 .LVL89: 5840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1049 .loc 1 5840 6 discriminator 1 view .LVU340 1050 0044 A8B9 cbnz r0, .L92 1051 .L85: 5846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1052 .loc 1 5846 1 view .LVU341 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 .LVL90: 1060 .L86: 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 .LVU342 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1064 .loc 1 5827 9 is_stmt 0 view .LVU343 1065 004c 2368 ldr r3, [r4] 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1066 .loc 1 5827 28 view .LVU344 1067 004e 4FEA1822 lsr r2, r8, #8 5827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1068 .loc 1 5827 26 view .LVU345 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 .LVU346 5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1071 .loc 1 5830 9 is_stmt 0 view .LVU347 1072 0054 3A46 mov r2, r7 1073 0056 3146 mov r1, r6 1074 0058 2046 mov r0, r4 1075 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1076 .LVL91: ARM GAS /tmp/ccclMPzv.s page 155 5830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1077 .loc 1 5830 8 discriminator 1 view .LVU348 1078 005e 30B9 cbnz r0, .L89 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1079 .loc 1 5836 5 is_stmt 1 view .LVU349 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1080 .loc 1 5836 9 is_stmt 0 view .LVU350 1081 0060 2368 ldr r3, [r4] 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1082 .loc 1 5836 28 view .LVU351 1083 0062 5FFA88F2 uxtb r2, r8 5836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1084 .loc 1 5836 26 view .LVU352 1085 0066 9A62 str r2, [r3, #40] 1086 0068 E5E7 b .L87 1087 .L88: 5814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1088 .loc 1 5814 12 view .LVU353 1089 006a 0120 movs r0, #1 1090 006c EBE7 b .L85 1091 .L89: 5832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1092 .loc 1 5832 14 view .LVU354 1093 006e 0120 movs r0, #1 1094 0070 E9E7 b .L85 1095 .L92: 5842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1096 .loc 1 5842 12 view .LVU355 1097 0072 0120 movs r0, #1 1098 0074 E7E7 b .L85 1099 .L94: 1100 0076 00BF .align 2 1101 .L93: 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 .LVL92: 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 .LVU357 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 1125 .cfi_offset 6, -16 ARM GAS /tmp/ccclMPzv.s page 156 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 .LVU358 1138 0010 184B ldr r3, .L104 1139 .LVL93: 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1140 .loc 1 5864 3 is_stmt 0 view .LVU359 1141 0012 0093 str r3, [sp] 1142 0014 0023 movs r3, #0 1143 0016 EAB2 uxtb r2, r5 1144 .LVL94: 5864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1145 .loc 1 5864 3 view .LVU360 1146 0018 FFF7FEFF bl I2C_TransferConfig 1147 .LVL95: 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1148 .loc 1 5867 3 is_stmt 1 view .LVU361 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1149 .loc 1 5867 7 is_stmt 0 view .LVU362 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 .LVL96: 5867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1155 .loc 1 5867 6 discriminator 1 view .LVU363 1156 0026 F8B9 cbnz r0, .L99 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1157 .loc 1 5873 3 is_stmt 1 view .LVU364 5873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1158 .loc 1 5873 6 is_stmt 0 view .LVU365 1159 0028 012D cmp r5, #1 1160 002a 0ED1 bne .L97 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1161 .loc 1 5876 5 is_stmt 1 view .LVU366 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1162 .loc 1 5876 9 is_stmt 0 view .LVU367 1163 002c 2368 ldr r3, [r4] 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1164 .loc 1 5876 28 view .LVU368 1165 002e 5FFA88F2 uxtb r2, r8 5876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1166 .loc 1 5876 26 view .LVU369 1167 0032 9A62 str r2, [r3, #40] 1168 .L98: 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1169 .loc 1 5895 3 is_stmt 1 view .LVU370 ARM GAS /tmp/ccclMPzv.s page 157 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1170 .loc 1 5895 7 is_stmt 0 view .LVU371 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 .LVL97: 5895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1178 .loc 1 5895 6 discriminator 1 view .LVU372 1179 0042 A8B9 cbnz r0, .L103 1180 .L96: 5901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1181 .loc 1 5901 1 view .LVU373 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 .LVL98: 1189 .L97: 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 .LVU374 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1193 .loc 1 5882 9 is_stmt 0 view .LVU375 1194 004a 2368 ldr r3, [r4] 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1195 .loc 1 5882 28 view .LVU376 1196 004c 4FEA1822 lsr r2, r8, #8 5882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1197 .loc 1 5882 26 view .LVU377 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 .LVU378 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1200 .loc 1 5885 9 is_stmt 0 view .LVU379 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 .LVL99: 5885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1206 .loc 1 5885 8 discriminator 1 view .LVU380 1207 005c 30B9 cbnz r0, .L100 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1208 .loc 1 5891 5 is_stmt 1 view .LVU381 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1209 .loc 1 5891 9 is_stmt 0 view .LVU382 1210 005e 2368 ldr r3, [r4] 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1211 .loc 1 5891 28 view .LVU383 1212 0060 5FFA88F2 uxtb r2, r8 5891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 158 1213 .loc 1 5891 26 view .LVU384 1214 0064 9A62 str r2, [r3, #40] 1215 0066 E5E7 b .L98 1216 .L99: 5869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1217 .loc 1 5869 12 view .LVU385 1218 0068 0120 movs r0, #1 1219 006a EBE7 b .L96 1220 .L100: 5887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1221 .loc 1 5887 14 view .LVU386 1222 006c 0120 movs r0, #1 1223 006e E9E7 b .L96 1224 .L103: 5897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1225 .loc 1 5897 12 view .LVU387 1226 0070 0120 movs r0, #1 1227 0072 E7E7 b .L96 1228 .L105: 1229 .align 2 1230 .L104: 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 .LVL100: 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 .LVU389 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 .LVU390 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1260 .loc 1 7024 9 is_stmt 0 view .LVU391 1261 0008 04E0 b .L107 1262 .LVL101: 1263 .L109: 7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 159 1264 .loc 1 7035 7 is_stmt 1 view .LVU392 7035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1265 .loc 1 7035 12 is_stmt 0 view .LVU393 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 .LVU394 1269 000e 13F0200F tst r3, #32 1270 0012 12D0 beq .L113 1271 .L107: 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1272 .loc 1 7024 51 is_stmt 1 view .LVU395 7024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1273 .loc 1 7024 10 is_stmt 0 view .LVU396 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 .LVU397 1277 0018 13F0200F tst r3, #32 1278 001c 1BD1 bne .L114 7027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1279 .loc 1 7027 5 is_stmt 1 view .LVU398 7027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1280 .loc 1 7027 9 is_stmt 0 view .LVU399 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 .LVL102: 7027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1286 .loc 1 7027 8 discriminator 1 view .LVU400 1287 0028 B8B9 cbnz r0, .L111 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1288 .loc 1 7033 5 is_stmt 1 view .LVU401 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1289 .loc 1 7033 11 is_stmt 0 view .LVU402 1290 002a FFF7FEFF bl HAL_GetTick 1291 .LVL103: 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1292 .loc 1 7033 25 discriminator 1 view .LVU403 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 .LVU404 1295 0030 A842 cmp r0, r5 1296 0032 EAD8 bhi .L109 7033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1297 .loc 1 7033 49 discriminator 1 view .LVU405 1298 0034 002D cmp r5, #0 1299 0036 EDD1 bne .L107 1300 0038 E7E7 b .L109 1301 .L113: 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 .LVU406 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 .LVU407 1304 003a 636C ldr r3, [r4, #68] 7037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccclMPzv.s page 160 1305 .loc 1 7037 25 view .LVU408 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 .LVU409 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 .LVU410 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 .LVU411 7039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1313 .loc 1 7039 20 is_stmt 0 view .LVU412 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 .LVU413 7042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1317 .loc 1 7042 9 view .LVU414 1318 004e 84F84030 strb r3, [r4, #64] 7042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1319 .loc 1 7042 9 view .LVU415 7044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1320 .loc 1 7044 9 view .LVU416 7044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1321 .loc 1 7044 16 is_stmt 0 view .LVU417 1322 0052 0120 movs r0, #1 1323 0054 00E0 b .L108 1324 .L114: 7048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1325 .loc 1 7048 10 view .LVU418 1326 0056 0020 movs r0, #0 1327 .L108: 7049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1328 .loc 1 7049 1 view .LVU419 1329 0058 70BD pop {r4, r5, r6, pc} 1330 .LVL104: 1331 .L111: 7029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1332 .loc 1 7029 14 view .LVU420 1333 005a 0120 movs r0, #1 1334 005c FCE7 b .L108 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 .LVL105: 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 1350 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccclMPzv.s page 161 7061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1351 .loc 1 7061 1 is_stmt 0 view .LVU422 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 .LVU423 1365 .LVL106: 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1366 .loc 1 7064 3 view .LVU424 7062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1367 .loc 1 7062 21 is_stmt 0 view .LVU425 1368 0008 0025 movs r5, #0 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1369 .loc 1 7064 9 view .LVU426 1370 000a 18E0 b .L116 1371 .LVL107: 1372 .L119: 7106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1373 .loc 1 7106 9 is_stmt 1 view .LVU427 7106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1374 .loc 1 7106 25 is_stmt 0 view .LVU428 1375 000c 0023 movs r3, #0 1376 000e 6364 str r3, [r4, #68] 1377 .LVL108: 1378 .L118: 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1379 .loc 1 7111 5 is_stmt 1 view .LVU429 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1380 .loc 1 7111 12 is_stmt 0 view .LVU430 1381 0010 FFF7FEFF bl HAL_GetTick 1382 .LVL109: 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1383 .loc 1 7111 26 discriminator 1 view .LVU431 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 .LVU432 1386 0016 B042 cmp r0, r6 1387 0018 00D8 bhi .L120 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1388 .loc 1 7111 50 discriminator 2 view .LVU433 1389 001a 86B9 cbnz r6, .L116 1390 .L120: 7111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1391 .loc 1 7111 70 discriminator 3 view .LVU434 1392 001c 7DB9 cbnz r5, .L116 7113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1393 .loc 1 7113 7 is_stmt 1 view .LVU435 ARM GAS /tmp/ccclMPzv.s page 162 7113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1394 .loc 1 7113 12 is_stmt 0 view .LVU436 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 .LVU437 1398 0022 13F0040F tst r3, #4 1399 0026 0AD1 bne .L116 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 .LVU438 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 .LVU439 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 .LVU440 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 .LVU441 7116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1407 .loc 1 7116 21 is_stmt 0 view .LVU442 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 .LVU443 7119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1411 .loc 1 7119 9 view .LVU444 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 .LVU445 7121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1415 .loc 1 7121 9 view .LVU446 1416 .LVL110: 7121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1417 .loc 1 7121 16 is_stmt 0 view .LVU447 1418 003c 0125 movs r5, #1 1419 .LVL111: 1420 .L116: 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1421 .loc 1 7064 61 is_stmt 1 view .LVU448 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1422 .loc 1 7064 11 is_stmt 0 view .LVU449 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 .LVU450 1426 0042 13F0040F tst r3, #4 1427 0046 2ED1 bne .L122 7064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1428 .loc 1 7064 61 discriminator 1 view .LVU451 1429 0048 6DBB cbnz r5, .L122 7067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1430 .loc 1 7067 5 is_stmt 1 view .LVU452 7067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1431 .loc 1 7067 9 is_stmt 0 view .LVU453 1432 004a 3A46 mov r2, r7 ARM GAS /tmp/ccclMPzv.s page 163 1433 004c 3146 mov r1, r6 1434 004e 2046 mov r0, r4 1435 0050 FFF7FEFF bl I2C_IsErrorOccurred 1436 .LVL112: 7067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1437 .loc 1 7067 8 discriminator 1 view .LVU454 1438 0054 00B1 cbz r0, .L117 7069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1439 .loc 1 7069 14 view .LVU455 1440 0056 0125 movs r5, #1 1441 .LVL113: 1442 .L117: 7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1443 .loc 1 7073 5 is_stmt 1 view .LVU456 7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1444 .loc 1 7073 10 is_stmt 0 view .LVU457 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 .LVU458 1448 005c 12F0200F tst r2, #32 1449 0060 D6D0 beq .L118 7073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1450 .loc 1 7073 59 discriminator 1 view .LVU459 1451 0062 002D cmp r5, #0 1452 0064 D4D1 bne .L118 7077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1453 .loc 1 7077 7 is_stmt 1 view .LVU460 7077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1454 .loc 1 7077 12 is_stmt 0 view .LVU461 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 .LVU462 7085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1457 .loc 1 7085 7 view .LVU463 7085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1458 .loc 1 7085 11 is_stmt 0 view .LVU464 1459 0068 9A69 ldr r2, [r3, #24] 7085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1460 .loc 1 7085 10 view .LVU465 1461 006a 12F0100F tst r2, #16 1462 006e CDD0 beq .L119 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 .LVU466 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 .LVU467 7088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1467 .loc 1 7088 25 is_stmt 0 view .LVU468 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 .LVU469 1471 0078 2368 ldr r3, [r4] 1472 007a 2022 movs r2, #32 1473 007c DA61 str r2, [r3, #28] ARM GAS /tmp/ccclMPzv.s page 164 7094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1474 .loc 1 7094 9 view .LVU470 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 .LVU471 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 .LVU472 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 .LVU473 7097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1486 .loc 1 7097 20 is_stmt 0 view .LVU474 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 .LVU475 7100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1490 .loc 1 7100 9 view .LVU476 1491 009e 84F84030 strb r3, [r4, #64] 7100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1492 .loc 1 7100 9 view .LVU477 7102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1493 .loc 1 7102 9 view .LVU478 1494 .LVL114: 7102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1495 .loc 1 7102 16 is_stmt 0 view .LVU479 1496 00a2 0125 movs r5, #1 1497 00a4 B4E7 b .L118 1498 .LVL115: 1499 .L122: 7125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1500 .loc 1 7125 3 is_stmt 1 view .LVU480 7126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1501 .loc 1 7126 1 is_stmt 0 view .LVU481 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 .LVU482 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 .LVL116: 1517 .LFB331: 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1518 .loc 1 697 1 is_stmt 1 view -0 ARM GAS /tmp/ccclMPzv.s page 165 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 .LVU484 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1524 .loc 1 704 1 is_stmt 0 view .LVU485 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 .LVL117: 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 .LVU487 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1544 .loc 1 538 6 is_stmt 0 view .LVU488 1545 0000 0028 cmp r0, #0 1546 0002 5FD0 beq .L134 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1547 .loc 1 536 1 view .LVU489 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 .LVU490 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 .LVU491 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 .LVU492 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 .LVU493 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 .LVU494 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 .LVU495 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 .LVU496 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1561 .loc 1 551 3 view .LVU497 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1562 .loc 1 553 3 view .LVU498 ARM GAS /tmp/ccclMPzv.s page 166 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1563 .loc 1 553 11 is_stmt 0 view .LVU499 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 .LVU500 1566 000c 002B cmp r3, #0 1567 000e 48D0 beq .L139 1568 .LVL118: 1569 .L129: 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1570 .loc 1 584 3 is_stmt 1 view .LVU501 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1571 .loc 1 584 15 is_stmt 0 view .LVU502 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 .LVU503 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 .LVU504 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1580 .loc 1 591 39 is_stmt 0 view .LVU505 1581 0020 6368 ldr r3, [r4, #4] 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1582 .loc 1 591 7 view .LVU506 1583 0022 2268 ldr r2, [r4] 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1584 .loc 1 591 47 view .LVU507 1585 0024 23F07063 bic r3, r3, #251658240 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1586 .loc 1 591 27 view .LVU508 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 .LVU509 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1589 .loc 1 595 7 is_stmt 0 view .LVU510 1590 002a 2268 ldr r2, [r4] 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1591 .loc 1 595 17 view .LVU511 1592 002c 9368 ldr r3, [r2, #8] 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1593 .loc 1 595 24 view .LVU512 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 .LVU513 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1597 .loc 1 598 17 is_stmt 0 view .LVU514 1598 0034 E368 ldr r3, [r4, #12] 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1599 .loc 1 598 6 view .LVU515 1600 0036 012B cmp r3, #1 1601 0038 38D0 beq .L140 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 167 1602 .loc 1 604 5 is_stmt 1 view .LVU516 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1603 .loc 1 604 75 is_stmt 0 view .LVU517 1604 003a A368 ldr r3, [r4, #8] 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1605 .loc 1 604 9 view .LVU518 1606 003c 2268 ldr r2, [r4] 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1607 .loc 1 604 63 view .LVU519 1608 003e 43F40443 orr r3, r3, #33792 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1609 .loc 1 604 26 view .LVU520 1610 0042 9360 str r3, [r2, #8] 1611 .L131: 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1612 .loc 1 609 3 is_stmt 1 view .LVU521 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1613 .loc 1 609 17 is_stmt 0 view .LVU522 1614 0044 E368 ldr r3, [r4, #12] 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1615 .loc 1 609 6 view .LVU523 1616 0046 022B cmp r3, #2 1617 0048 36D0 beq .L141 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1618 .loc 1 616 5 is_stmt 1 view .LVU524 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 .L133: 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1624 .loc 1 619 3 view .LVU525 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1625 .loc 1 619 7 is_stmt 0 view .LVU526 1626 0054 2268 ldr r2, [r4] 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1627 .loc 1 619 17 view .LVU527 1628 0056 5368 ldr r3, [r2, #4] 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1629 .loc 1 619 23 view .LVU528 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 .LVU529 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1634 .loc 1 623 7 is_stmt 0 view .LVU530 1635 0062 2268 ldr r2, [r4] 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1636 .loc 1 623 17 view .LVU531 1637 0064 D368 ldr r3, [r2, #12] 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1638 .loc 1 623 24 view .LVU532 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)); 1641 .loc 1 626 3 is_stmt 1 view .LVU533 ARM GAS /tmp/ccclMPzv.s page 168 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1642 .loc 1 626 37 is_stmt 0 view .LVU534 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 .LVU535 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 .LVU536 1647 0070 1343 orrs r3, r3, r2 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1648 .loc 1 627 38 view .LVU537 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 .LVU538 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 .LVU539 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 .LVU540 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 .LVU541 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1657 .loc 1 631 36 is_stmt 0 view .LVU542 1658 007c E369 ldr r3, [r4, #28] 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1659 .loc 1 631 65 view .LVU543 1660 007e 216A ldr r1, [r4, #32] 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1661 .loc 1 631 7 view .LVU544 1662 0080 2268 ldr r2, [r4] 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1663 .loc 1 631 53 view .LVU545 1664 0082 0B43 orrs r3, r3, r1 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1665 .loc 1 631 23 view .LVU546 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 .LVU547 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 .LVU548 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 .LVU549 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 .LVU550 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1677 .loc 1 637 15 is_stmt 0 view .LVU551 1678 0094 2023 movs r3, #32 1679 0096 84F84130 strb r3, [r4, #65] 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccclMPzv.s page 169 1680 .loc 1 638 3 is_stmt 1 view .LVU552 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 .LVU553 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 .LVU554 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1684 .loc 1 639 14 is_stmt 0 view .LVU555 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 .LVU556 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1687 .loc 1 642 1 is_stmt 0 view .LVU557 1688 00a0 10BD pop {r4, pc} 1689 .LVL119: 1690 .L139: 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1691 .loc 1 556 5 is_stmt 1 view .LVU558 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1692 .loc 1 556 16 is_stmt 0 view .LVU559 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 .LVU560 1695 00a6 FFF7FEFF bl HAL_I2C_MspInit 1696 .LVL120: 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 .LVU561 1698 00aa B1E7 b .L129 1699 .L140: 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1700 .loc 1 600 5 is_stmt 1 view .LVU562 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1701 .loc 1 600 56 is_stmt 0 view .LVU563 1702 00ac A368 ldr r3, [r4, #8] 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1703 .loc 1 600 9 view .LVU564 1704 00ae 2268 ldr r2, [r4] 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1705 .loc 1 600 44 view .LVU565 1706 00b0 43F40043 orr r3, r3, #32768 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1707 .loc 1 600 26 view .LVU566 1708 00b4 9360 str r3, [r2, #8] 1709 00b6 C5E7 b .L131 1710 .L141: 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1711 .loc 1 611 5 is_stmt 1 view .LVU567 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 .L133 1717 .LVL121: 1718 .L134: 1719 .LCFI16: 1720 .cfi_def_cfa_offset 0 1721 .cfi_restore 4 ARM GAS /tmp/ccclMPzv.s page 170 1722 .cfi_restore 14 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1723 .loc 1 540 12 is_stmt 0 view .LVU568 1724 00c4 0120 movs r0, #1 1725 .LVL122: 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1726 .loc 1 642 1 view .LVU569 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 .LVL123: 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 .LVU571 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1747 .loc 1 720 1 is_stmt 0 view .LVU572 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 .LVL124: 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 .LVU574 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1767 .loc 1 653 6 is_stmt 0 view .LVU575 1768 0000 A8B1 cbz r0, .L145 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1769 .loc 1 651 1 view .LVU576 1770 0002 10B5 push {r4, lr} 1771 .LCFI17: 1772 .cfi_def_cfa_offset 8 1773 .cfi_offset 4, -8 ARM GAS /tmp/ccclMPzv.s page 171 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 .LVU577 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1777 .loc 1 661 3 view .LVU578 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1778 .loc 1 661 15 is_stmt 0 view .LVU579 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 .LVU580 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 .LVU581 1787 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1788 .LVL125: 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1789 .loc 1 679 3 view .LVU582 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 .LVU583 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 .LVU584 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1794 .loc 1 680 15 is_stmt 0 view .LVU585 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 .LVU586 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 .LVU587 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 .LVU588 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1800 .loc 1 682 14 is_stmt 0 view .LVU589 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 .LVU590 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1803 .loc 1 685 3 view .LVU591 1804 0028 84F84000 strb r0, [r4, #64] 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1805 .loc 1 685 3 view .LVU592 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1806 .loc 1 687 3 view .LVU593 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1807 .loc 1 688 1 is_stmt 0 view .LVU594 1808 002c 10BD pop {r4, pc} 1809 .LVL126: 1810 .L145: 1811 .LCFI18: 1812 .cfi_def_cfa_offset 0 ARM GAS /tmp/ccclMPzv.s page 172 1813 .cfi_restore 4 1814 .cfi_restore 14 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1815 .loc 1 655 12 view .LVU595 1816 002e 0120 movs r0, #1 1817 .LVL127: 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1818 .loc 1 688 1 view .LVU596 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 .LVL128: 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 .LVU598 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 .LVU599 1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1855 .loc 1 1123 3 view .LVU600 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1856 .loc 1 1125 3 view .LVU601 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1857 .loc 1 1125 11 is_stmt 0 view .LVU602 1858 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1859 .LVL129: 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1860 .loc 1 1125 11 view .LVU603 1861 000e C9B2 uxtb r1, r1 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 173 1862 .loc 1 1125 6 view .LVU604 1863 0010 2029 cmp r1, #32 1864 0012 40F0B780 bne .L160 1865 0016 0446 mov r4, r0 1866 0018 9046 mov r8, r2 1867 001a 9946 mov r9, r3 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1868 .loc 1 1128 5 is_stmt 1 view .LVU605 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1869 .loc 1 1128 5 view .LVU606 1870 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1871 .LVL130: 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1872 .loc 1 1128 5 is_stmt 0 view .LVU607 1873 0020 012B cmp r3, #1 1874 0022 00F0B380 beq .L161 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1875 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU608 1876 0026 4FF0010A mov r10, #1 1877 002a 80F840A0 strb r10, [r0, #64] 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1878 .loc 1 1128 5 discriminator 2 view .LVU609 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1879 .loc 1 1131 5 view .LVU610 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1880 .loc 1 1131 17 is_stmt 0 view .LVU611 1881 002e FFF7FEFF bl HAL_GetTick 1882 .LVL131: 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1883 .loc 1 1131 17 view .LVU612 1884 0032 0546 mov r5, r0 1885 .LVL132: 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1886 .loc 1 1133 5 is_stmt 1 view .LVU613 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1887 .loc 1 1133 9 is_stmt 0 view .LVU614 1888 0034 0090 str r0, [sp] 1889 0036 1923 movs r3, #25 1890 0038 5246 mov r2, r10 1891 003a 4FF40041 mov r1, #32768 1892 003e 2046 mov r0, r4 1893 .LVL133: 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1894 .loc 1 1133 9 view .LVU615 1895 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1896 .LVL134: 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1897 .loc 1 1133 8 discriminator 1 view .LVU616 1898 0044 0028 cmp r0, #0 1899 0046 40F0A380 bne .L162 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1900 .loc 1 1138 5 is_stmt 1 view .LVU617 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1901 .loc 1 1138 21 is_stmt 0 view .LVU618 1902 004a 2123 movs r3, #33 1903 004c 84F84130 strb r3, [r4, #65] 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccclMPzv.s page 174 1904 .loc 1 1139 5 is_stmt 1 view .LVU619 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1905 .loc 1 1139 21 is_stmt 0 view .LVU620 1906 0050 1023 movs r3, #16 1907 0052 84F84230 strb r3, [r4, #66] 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1908 .loc 1 1140 5 is_stmt 1 view .LVU621 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1909 .loc 1 1140 21 is_stmt 0 view .LVU622 1910 0056 0023 movs r3, #0 1911 0058 6364 str r3, [r4, #68] 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1912 .loc 1 1143 5 is_stmt 1 view .LVU623 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 1913 .loc 1 1143 21 is_stmt 0 view .LVU624 1914 005a C4F82480 str r8, [r4, #36] 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1915 .loc 1 1144 5 is_stmt 1 view .LVU625 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 1916 .loc 1 1144 21 is_stmt 0 view .LVU626 1917 005e A4F82A90 strh r9, [r4, #42] @ movhi 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1918 .loc 1 1145 5 is_stmt 1 view .LVU627 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1919 .loc 1 1145 21 is_stmt 0 view .LVU628 1920 0062 6363 str r3, [r4, #52] 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1921 .loc 1 1147 5 is_stmt 1 view .LVU629 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1922 .loc 1 1147 13 is_stmt 0 view .LVU630 1923 0064 638D ldrh r3, [r4, #42] 1924 0066 9BB2 uxth r3, r3 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1925 .loc 1 1147 8 view .LVU631 1926 0068 FF2B cmp r3, #255 1927 006a 1ED9 bls .L152 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1928 .loc 1 1149 7 is_stmt 1 view .LVU632 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1929 .loc 1 1149 22 is_stmt 0 view .LVU633 1930 006c FF23 movs r3, #255 1931 006e 2385 strh r3, [r4, #40] @ movhi 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1932 .loc 1 1150 7 is_stmt 1 view .LVU634 1933 .LVL135: 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1934 .loc 1 1150 16 is_stmt 0 view .LVU635 1935 0070 4FF08073 mov r3, #16777216 1936 .LVL136: 1937 .L153: 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1938 .loc 1 1158 5 is_stmt 1 view .LVU636 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1939 .loc 1 1158 13 is_stmt 0 view .LVU637 1940 0074 228D ldrh r2, [r4, #40] 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 1941 .loc 1 1158 8 view .LVU638 ARM GAS /tmp/ccclMPzv.s page 175 1942 0076 EAB1 cbz r2, .L154 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1943 .loc 1 1162 7 is_stmt 1 view .LVU639 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1944 .loc 1 1162 11 is_stmt 0 view .LVU640 1945 0078 2268 ldr r2, [r4] 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1946 .loc 1 1162 30 view .LVU641 1947 007a 98F80010 ldrb r1, [r8] @ zero_extendqisi2 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1948 .loc 1 1162 28 view .LVU642 1949 007e 9162 str r1, [r2, #40] 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1950 .loc 1 1165 7 is_stmt 1 view .LVU643 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1951 .loc 1 1165 11 is_stmt 0 view .LVU644 1952 0080 626A ldr r2, [r4, #36] 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1953 .loc 1 1165 21 view .LVU645 1954 0082 0132 adds r2, r2, #1 1955 0084 6262 str r2, [r4, #36] 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1956 .loc 1 1167 7 is_stmt 1 view .LVU646 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1957 .loc 1 1167 11 is_stmt 0 view .LVU647 1958 0086 628D ldrh r2, [r4, #42] 1959 0088 92B2 uxth r2, r2 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 1960 .loc 1 1167 22 view .LVU648 1961 008a 013A subs r2, r2, #1 1962 008c 92B2 uxth r2, r2 1963 008e 6285 strh r2, [r4, #42] @ movhi 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1964 .loc 1 1168 7 is_stmt 1 view .LVU649 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1965 .loc 1 1168 11 is_stmt 0 view .LVU650 1966 0090 228D ldrh r2, [r4, #40] 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 1967 .loc 1 1168 21 view .LVU651 1968 0092 013A subs r2, r2, #1 1969 0094 92B2 uxth r2, r2 1970 0096 2285 strh r2, [r4, #40] @ movhi 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1971 .loc 1 1172 7 is_stmt 1 view .LVU652 1972 0098 0132 adds r2, r2, #1 1973 009a 4149 ldr r1, .L168 1974 009c 0091 str r1, [sp] 1975 009e D2B2 uxtb r2, r2 1976 00a0 3946 mov r1, r7 1977 00a2 2046 mov r0, r4 1978 00a4 FFF7FEFF bl I2C_TransferConfig 1979 .LVL137: 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1980 .loc 1 1172 7 is_stmt 0 view .LVU653 1981 00a8 18E0 b .L156 1982 .LVL138: 1983 .L152: ARM GAS /tmp/ccclMPzv.s page 176 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1984 .loc 1 1154 7 is_stmt 1 view .LVU654 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1985 .loc 1 1154 28 is_stmt 0 view .LVU655 1986 00aa 638D ldrh r3, [r4, #42] 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1987 .loc 1 1154 22 view .LVU656 1988 00ac 2385 strh r3, [r4, #40] @ movhi 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1989 .loc 1 1155 7 is_stmt 1 view .LVU657 1990 .LVL139: 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 1991 .loc 1 1155 16 is_stmt 0 view .LVU658 1992 00ae 4FF00073 mov r3, #33554432 1993 00b2 DFE7 b .L153 1994 .LVL140: 1995 .L154: 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1996 .loc 1 1179 7 is_stmt 1 view .LVU659 1997 00b4 3A49 ldr r1, .L168 1998 00b6 0091 str r1, [sp] 1999 00b8 D2B2 uxtb r2, r2 2000 00ba 3946 mov r1, r7 2001 00bc 2046 mov r0, r4 2002 00be FFF7FEFF bl I2C_TransferConfig 2003 .LVL141: 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2004 .loc 1 1179 7 is_stmt 0 view .LVU660 2005 00c2 0BE0 b .L156 2006 .L158: 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2007 .loc 1 1215 11 is_stmt 1 view .LVU661 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2008 .loc 1 1215 32 is_stmt 0 view .LVU662 2009 00c4 628D ldrh r2, [r4, #42] 2010 00c6 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, 2011 .loc 1 1215 26 view .LVU663 2012 00c8 2285 strh r2, [r4, #40] @ movhi 1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2013 .loc 1 1216 11 is_stmt 1 view .LVU664 2014 00ca 0023 movs r3, #0 2015 00cc 0093 str r3, [sp] 2016 00ce 4FF00073 mov r3, #33554432 2017 00d2 D2B2 uxtb r2, r2 2018 00d4 3946 mov r1, r7 2019 00d6 2046 mov r0, r4 2020 00d8 FFF7FEFF bl I2C_TransferConfig 2021 .LVL142: 2022 .L156: 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2023 .loc 1 1183 28 view .LVU665 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2024 .loc 1 1183 16 is_stmt 0 view .LVU666 2025 00dc 638D ldrh r3, [r4, #42] 2026 00de 9BB2 uxth r3, r3 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 177 2027 .loc 1 1183 28 view .LVU667 2028 00e0 002B cmp r3, #0 2029 00e2 33D0 beq .L167 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2030 .loc 1 1186 7 is_stmt 1 view .LVU668 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2031 .loc 1 1186 11 is_stmt 0 view .LVU669 2032 00e4 2A46 mov r2, r5 2033 00e6 3146 mov r1, r6 2034 00e8 2046 mov r0, r4 2035 00ea FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2036 .LVL143: 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2037 .loc 1 1186 10 discriminator 1 view .LVU670 2038 00ee 0028 cmp r0, #0 2039 00f0 50D1 bne .L163 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2040 .loc 1 1191 7 is_stmt 1 view .LVU671 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2041 .loc 1 1191 35 is_stmt 0 view .LVU672 2042 00f2 626A ldr r2, [r4, #36] 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2043 .loc 1 1191 11 view .LVU673 2044 00f4 2368 ldr r3, [r4] 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2045 .loc 1 1191 30 view .LVU674 2046 00f6 1278 ldrb r2, [r2] @ zero_extendqisi2 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2047 .loc 1 1191 28 view .LVU675 2048 00f8 9A62 str r2, [r3, #40] 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2049 .loc 1 1194 7 is_stmt 1 view .LVU676 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2050 .loc 1 1194 11 is_stmt 0 view .LVU677 2051 00fa 636A ldr r3, [r4, #36] 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2052 .loc 1 1194 21 view .LVU678 2053 00fc 0133 adds r3, r3, #1 2054 00fe 6362 str r3, [r4, #36] 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2055 .loc 1 1196 7 is_stmt 1 view .LVU679 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2056 .loc 1 1196 11 is_stmt 0 view .LVU680 2057 0100 638D ldrh r3, [r4, #42] 2058 0102 9BB2 uxth r3, r3 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 2059 .loc 1 1196 22 view .LVU681 2060 0104 013B subs r3, r3, #1 2061 0106 9BB2 uxth r3, r3 2062 0108 6385 strh r3, [r4, #42] @ movhi 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2063 .loc 1 1197 7 is_stmt 1 view .LVU682 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2064 .loc 1 1197 11 is_stmt 0 view .LVU683 2065 010a 238D ldrh r3, [r4, #40] 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2066 .loc 1 1197 21 view .LVU684 ARM GAS /tmp/ccclMPzv.s page 178 2067 010c 013B subs r3, r3, #1 2068 010e 9BB2 uxth r3, r3 2069 0110 2385 strh r3, [r4, #40] @ movhi 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2070 .loc 1 1199 7 is_stmt 1 view .LVU685 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2071 .loc 1 1199 16 is_stmt 0 view .LVU686 2072 0112 628D ldrh r2, [r4, #42] 2073 0114 92B2 uxth r2, r2 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2074 .loc 1 1199 10 view .LVU687 2075 0116 002A cmp r2, #0 2076 0118 E0D0 beq .L156 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2077 .loc 1 1199 35 discriminator 1 view .LVU688 2078 011a 002B cmp r3, #0 2079 011c DED1 bne .L156 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2080 .loc 1 1202 9 is_stmt 1 view .LVU689 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2081 .loc 1 1202 13 is_stmt 0 view .LVU690 2082 011e 0095 str r5, [sp] 2083 0120 3346 mov r3, r6 2084 0122 0022 movs r2, #0 2085 0124 8021 movs r1, #128 2086 0126 2046 mov r0, r4 2087 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2088 .LVL144: 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2089 .loc 1 1202 12 discriminator 1 view .LVU691 2090 012c A0BB cbnz r0, .L164 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2091 .loc 1 1207 9 is_stmt 1 view .LVU692 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2092 .loc 1 1207 17 is_stmt 0 view .LVU693 2093 012e 638D ldrh r3, [r4, #42] 2094 0130 9BB2 uxth r3, r3 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2095 .loc 1 1207 12 view .LVU694 2096 0132 FF2B cmp r3, #255 2097 0134 C6D9 bls .L158 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2098 .loc 1 1209 11 is_stmt 1 view .LVU695 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2099 .loc 1 1209 26 is_stmt 0 view .LVU696 2100 0136 FF22 movs r2, #255 2101 0138 2285 strh r2, [r4, #40] @ movhi 1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2102 .loc 1 1210 11 is_stmt 1 view .LVU697 2103 013a 0023 movs r3, #0 2104 013c 0093 str r3, [sp] 2105 013e 4FF08073 mov r3, #16777216 2106 0142 3946 mov r1, r7 2107 0144 2046 mov r0, r4 2108 0146 FFF7FEFF bl I2C_TransferConfig 2109 .LVL145: 2110 014a C7E7 b .L156 ARM GAS /tmp/ccclMPzv.s page 179 2111 .L167: 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2112 .loc 1 1224 5 view .LVU698 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2113 .loc 1 1224 9 is_stmt 0 view .LVU699 2114 014c 2A46 mov r2, r5 2115 014e 3146 mov r1, r6 2116 0150 2046 mov r0, r4 2117 0152 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2118 .LVL146: 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2119 .loc 1 1224 8 discriminator 1 view .LVU700 2120 0156 08BB cbnz r0, .L165 1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2121 .loc 1 1230 5 is_stmt 1 view .LVU701 2122 0158 2368 ldr r3, [r4] 2123 015a 2022 movs r2, #32 2124 015c DA61 str r2, [r3, #28] 1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2125 .loc 1 1233 5 view .LVU702 2126 015e 2168 ldr r1, [r4] 2127 0160 4B68 ldr r3, [r1, #4] 2128 0162 23F0FF73 bic r3, r3, #33423360 2129 0166 23F48B33 bic r3, r3, #71168 2130 016a 23F4FF73 bic r3, r3, #510 2131 016e 23F00103 bic r3, r3, #1 2132 0172 4B60 str r3, [r1, #4] 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2133 .loc 1 1235 5 view .LVU703 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2134 .loc 1 1235 17 is_stmt 0 view .LVU704 2135 0174 84F84120 strb r2, [r4, #65] 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2136 .loc 1 1236 5 is_stmt 1 view .LVU705 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2137 .loc 1 1236 17 is_stmt 0 view .LVU706 2138 0178 0023 movs r3, #0 2139 017a 84F84230 strb r3, [r4, #66] 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2140 .loc 1 1239 5 is_stmt 1 view .LVU707 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2141 .loc 1 1239 5 view .LVU708 2142 017e 84F84030 strb r3, [r4, #64] 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2143 .loc 1 1239 5 view .LVU709 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2144 .loc 1 1241 5 view .LVU710 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2145 .loc 1 1241 12 is_stmt 0 view .LVU711 2146 0182 00E0 b .L151 2147 .LVL147: 2148 .L160: 1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2149 .loc 1 1245 12 view .LVU712 2150 0184 0220 movs r0, #2 2151 .LVL148: 2152 .L151: ARM GAS /tmp/ccclMPzv.s page 180 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2153 .loc 1 1247 1 view .LVU713 2154 0186 02B0 add sp, sp, #8 2155 .LCFI21: 2156 .cfi_remember_state 2157 .cfi_def_cfa_offset 32 2158 @ sp needed 2159 0188 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2160 .LVL149: 2161 .L161: 2162 .LCFI22: 2163 .cfi_restore_state 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2164 .loc 1 1128 5 discriminator 1 view .LVU714 2165 018c 0220 movs r0, #2 2166 .LVL150: 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2167 .loc 1 1128 5 discriminator 1 view .LVU715 2168 018e FAE7 b .L151 2169 .LVL151: 2170 .L162: 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2171 .loc 1 1135 14 view .LVU716 2172 0190 0120 movs r0, #1 2173 0192 F8E7 b .L151 2174 .LVL152: 2175 .L163: 1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2176 .loc 1 1188 16 view .LVU717 2177 0194 0120 movs r0, #1 2178 0196 F6E7 b .L151 2179 .L164: 1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2180 .loc 1 1204 18 view .LVU718 2181 0198 0120 movs r0, #1 2182 019a F4E7 b .L151 2183 .L165: 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2184 .loc 1 1226 14 view .LVU719 2185 019c 0120 movs r0, #1 2186 019e F2E7 b .L151 2187 .L169: 2188 .align 2 2189 .L168: 2190 01a0 00200080 .word -2147475456 2191 .cfi_endproc 2192 .LFE333: 2194 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2195 .align 1 2196 .global HAL_I2C_Master_Receive 2197 .syntax unified 2198 .thumb 2199 .thumb_func 2201 HAL_I2C_Master_Receive: 2202 .LVL153: 2203 .LFB334: 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; ARM GAS /tmp/ccclMPzv.s page 181 2204 .loc 1 1262 1 is_stmt 1 view -0 2205 .cfi_startproc 2206 @ args = 4, pretend = 0, frame = 0 2207 @ frame_needed = 0, uses_anonymous_args = 0 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2208 .loc 1 1262 1 is_stmt 0 view .LVU721 2209 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2210 .LCFI23: 2211 .cfi_def_cfa_offset 32 2212 .cfi_offset 4, -32 2213 .cfi_offset 5, -28 2214 .cfi_offset 6, -24 2215 .cfi_offset 7, -20 2216 .cfi_offset 8, -16 2217 .cfi_offset 9, -12 2218 .cfi_offset 10, -8 2219 .cfi_offset 14, -4 2220 0004 82B0 sub sp, sp, #8 2221 .LCFI24: 2222 .cfi_def_cfa_offset 40 2223 0006 0F46 mov r7, r1 2224 0008 0A9E ldr r6, [sp, #40] 1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2225 .loc 1 1263 3 is_stmt 1 view .LVU722 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2226 .loc 1 1265 3 view .LVU723 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2227 .loc 1 1265 11 is_stmt 0 view .LVU724 2228 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 2229 .LVL154: 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2230 .loc 1 1265 11 view .LVU725 2231 000e C9B2 uxtb r1, r1 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2232 .loc 1 1265 6 view .LVU726 2233 0010 2029 cmp r1, #32 2234 0012 40F0A280 bne .L178 2235 0016 0446 mov r4, r0 2236 0018 9046 mov r8, r2 2237 001a 9946 mov r9, r3 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2238 .loc 1 1268 5 is_stmt 1 view .LVU727 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2239 .loc 1 1268 5 view .LVU728 2240 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2241 .LVL155: 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2242 .loc 1 1268 5 is_stmt 0 view .LVU729 2243 0020 012B cmp r3, #1 2244 0022 00F09E80 beq .L179 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2245 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU730 2246 0026 4FF0010A mov r10, #1 2247 002a 80F840A0 strb r10, [r0, #64] 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2248 .loc 1 1268 5 discriminator 2 view .LVU731 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 182 2249 .loc 1 1271 5 view .LVU732 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2250 .loc 1 1271 17 is_stmt 0 view .LVU733 2251 002e FFF7FEFF bl HAL_GetTick 2252 .LVL156: 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2253 .loc 1 1271 17 view .LVU734 2254 0032 0546 mov r5, r0 2255 .LVL157: 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2256 .loc 1 1273 5 is_stmt 1 view .LVU735 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2257 .loc 1 1273 9 is_stmt 0 view .LVU736 2258 0034 0090 str r0, [sp] 2259 0036 1923 movs r3, #25 2260 0038 5246 mov r2, r10 2261 003a 4FF40041 mov r1, #32768 2262 003e 2046 mov r0, r4 2263 .LVL158: 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2264 .loc 1 1273 9 view .LVU737 2265 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2266 .LVL159: 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2267 .loc 1 1273 8 discriminator 1 view .LVU738 2268 0044 0028 cmp r0, #0 2269 0046 40F08E80 bne .L180 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2270 .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; 2271 .loc 1 1278 21 is_stmt 0 view .LVU740 2272 004a 2223 movs r3, #34 2273 004c 84F84130 strb r3, [r4, #65] 1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2274 .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; 2275 .loc 1 1279 21 is_stmt 0 view .LVU742 2276 0050 1023 movs r3, #16 2277 0052 84F84230 strb r3, [r4, #66] 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2278 .loc 1 1280 5 is_stmt 1 view .LVU743 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2279 .loc 1 1280 21 is_stmt 0 view .LVU744 2280 0056 0023 movs r3, #0 2281 0058 6364 str r3, [r4, #68] 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2282 .loc 1 1283 5 is_stmt 1 view .LVU745 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2283 .loc 1 1283 21 is_stmt 0 view .LVU746 2284 005a C4F82480 str r8, [r4, #36] 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2285 .loc 1 1284 5 is_stmt 1 view .LVU747 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2286 .loc 1 1284 21 is_stmt 0 view .LVU748 2287 005e A4F82A90 strh r9, [r4, #42] @ movhi 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2288 .loc 1 1285 5 is_stmt 1 view .LVU749 ARM GAS /tmp/ccclMPzv.s page 183 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2289 .loc 1 1285 21 is_stmt 0 view .LVU750 2290 0062 6363 str r3, [r4, #52] 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2291 .loc 1 1289 5 is_stmt 1 view .LVU751 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2292 .loc 1 1289 13 is_stmt 0 view .LVU752 2293 0064 638D ldrh r3, [r4, #42] 2294 0066 9BB2 uxth r3, r3 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2295 .loc 1 1289 8 view .LVU753 2296 0068 FF2B cmp r3, #255 2297 006a 0AD9 bls .L172 1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2298 .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, 2299 .loc 1 1291 22 is_stmt 0 view .LVU755 2300 006c FF22 movs r2, #255 2301 006e 2285 strh r2, [r4, #40] @ movhi 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2302 .loc 1 1292 7 is_stmt 1 view .LVU756 2303 0070 414B ldr r3, .L186 2304 0072 0093 str r3, [sp] 2305 0074 4FF08073 mov r3, #16777216 2306 0078 3946 mov r1, r7 2307 007a 2046 mov r0, r4 2308 007c FFF7FEFF bl I2C_TransferConfig 2309 .LVL160: 2310 0080 18E0 b .L174 2311 .L172: 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 7 view .LVU757 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2313 .loc 1 1297 28 is_stmt 0 view .LVU758 2314 0082 628D ldrh r2, [r4, #42] 2315 0084 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, 2316 .loc 1 1297 22 view .LVU759 2317 0086 2285 strh r2, [r4, #40] @ movhi 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2318 .loc 1 1298 7 is_stmt 1 view .LVU760 2319 0088 3B4B ldr r3, .L186 2320 008a 0093 str r3, [sp] 2321 008c 4FF00073 mov r3, #33554432 2322 0090 D2B2 uxtb r2, r2 2323 0092 3946 mov r1, r7 2324 0094 2046 mov r0, r4 2325 0096 FFF7FEFF bl I2C_TransferConfig 2326 .LVL161: 2327 009a 0BE0 b .L174 2328 .L176: 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 11 view .LVU761 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2330 .loc 1 1335 32 is_stmt 0 view .LVU762 2331 009c 628D ldrh r2, [r4, #42] 2332 009e 92B2 uxth r2, r2 ARM GAS /tmp/ccclMPzv.s page 184 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2333 .loc 1 1335 26 view .LVU763 2334 00a0 2285 strh r2, [r4, #40] @ movhi 1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2335 .loc 1 1336 11 is_stmt 1 view .LVU764 2336 00a2 0023 movs r3, #0 2337 00a4 0093 str r3, [sp] 2338 00a6 4FF00073 mov r3, #33554432 2339 00aa D2B2 uxtb r2, r2 2340 00ac 3946 mov r1, r7 2341 00ae 2046 mov r0, r4 2342 00b0 FFF7FEFF bl I2C_TransferConfig 2343 .LVL162: 2344 .L174: 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2345 .loc 1 1302 28 view .LVU765 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2346 .loc 1 1302 16 is_stmt 0 view .LVU766 2347 00b4 638D ldrh r3, [r4, #42] 2348 00b6 9BB2 uxth r3, r3 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2349 .loc 1 1302 28 view .LVU767 2350 00b8 002B cmp r3, #0 2351 00ba 32D0 beq .L185 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2352 .loc 1 1305 7 is_stmt 1 view .LVU768 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2353 .loc 1 1305 11 is_stmt 0 view .LVU769 2354 00bc 2A46 mov r2, r5 2355 00be 3146 mov r1, r6 2356 00c0 2046 mov r0, r4 2357 00c2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2358 .LVL163: 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2359 .loc 1 1305 10 discriminator 1 view .LVU770 2360 00c6 0028 cmp r0, #0 2361 00c8 4FD1 bne .L181 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2362 .loc 1 1311 7 is_stmt 1 view .LVU771 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2363 .loc 1 1311 38 is_stmt 0 view .LVU772 2364 00ca 2368 ldr r3, [r4] 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2365 .loc 1 1311 48 view .LVU773 2366 00cc 5A6A ldr r2, [r3, #36] 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2367 .loc 1 1311 12 view .LVU774 2368 00ce 636A ldr r3, [r4, #36] 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2369 .loc 1 1311 23 view .LVU775 2370 00d0 1A70 strb r2, [r3] 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2371 .loc 1 1314 7 is_stmt 1 view .LVU776 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2372 .loc 1 1314 11 is_stmt 0 view .LVU777 2373 00d2 636A ldr r3, [r4, #36] 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 185 2374 .loc 1 1314 21 view .LVU778 2375 00d4 0133 adds r3, r3, #1 2376 00d6 6362 str r3, [r4, #36] 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2377 .loc 1 1316 7 is_stmt 1 view .LVU779 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2378 .loc 1 1316 11 is_stmt 0 view .LVU780 2379 00d8 228D ldrh r2, [r4, #40] 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 2380 .loc 1 1316 21 view .LVU781 2381 00da 013A subs r2, r2, #1 2382 00dc 92B2 uxth r2, r2 2383 00de 2285 strh r2, [r4, #40] @ movhi 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2384 .loc 1 1317 7 is_stmt 1 view .LVU782 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2385 .loc 1 1317 11 is_stmt 0 view .LVU783 2386 00e0 638D ldrh r3, [r4, #42] 2387 00e2 9BB2 uxth r3, r3 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2388 .loc 1 1317 22 view .LVU784 2389 00e4 013B subs r3, r3, #1 2390 00e6 9BB2 uxth r3, r3 2391 00e8 6385 strh r3, [r4, #42] @ movhi 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2392 .loc 1 1319 7 is_stmt 1 view .LVU785 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2393 .loc 1 1319 16 is_stmt 0 view .LVU786 2394 00ea 638D ldrh r3, [r4, #42] 2395 00ec 9BB2 uxth r3, r3 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2396 .loc 1 1319 10 view .LVU787 2397 00ee 002B cmp r3, #0 2398 00f0 E0D0 beq .L174 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2399 .loc 1 1319 35 discriminator 1 view .LVU788 2400 00f2 002A cmp r2, #0 2401 00f4 DED1 bne .L174 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2402 .loc 1 1322 9 is_stmt 1 view .LVU789 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2403 .loc 1 1322 13 is_stmt 0 view .LVU790 2404 00f6 0095 str r5, [sp] 2405 00f8 3346 mov r3, r6 2406 00fa 8021 movs r1, #128 2407 00fc 2046 mov r0, r4 2408 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2409 .LVL164: 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2410 .loc 1 1322 12 discriminator 1 view .LVU791 2411 0102 A0BB cbnz r0, .L182 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2412 .loc 1 1327 9 is_stmt 1 view .LVU792 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2413 .loc 1 1327 17 is_stmt 0 view .LVU793 2414 0104 638D ldrh r3, [r4, #42] 2415 0106 9BB2 uxth r3, r3 ARM GAS /tmp/ccclMPzv.s page 186 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2416 .loc 1 1327 12 view .LVU794 2417 0108 FF2B cmp r3, #255 2418 010a C7D9 bls .L176 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2419 .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, 2420 .loc 1 1329 26 is_stmt 0 view .LVU796 2421 010c FF22 movs r2, #255 2422 010e 2285 strh r2, [r4, #40] @ movhi 1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2423 .loc 1 1330 11 is_stmt 1 view .LVU797 2424 0110 0023 movs r3, #0 2425 0112 0093 str r3, [sp] 2426 0114 4FF08073 mov r3, #16777216 2427 0118 3946 mov r1, r7 2428 011a 2046 mov r0, r4 2429 011c FFF7FEFF bl I2C_TransferConfig 2430 .LVL165: 2431 0120 C8E7 b .L174 2432 .L185: 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2433 .loc 1 1344 5 view .LVU798 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2434 .loc 1 1344 9 is_stmt 0 view .LVU799 2435 0122 2A46 mov r2, r5 2436 0124 3146 mov r1, r6 2437 0126 2046 mov r0, r4 2438 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2439 .LVL166: 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2440 .loc 1 1344 8 discriminator 1 view .LVU800 2441 012c 08BB cbnz r0, .L183 1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2442 .loc 1 1350 5 is_stmt 1 view .LVU801 2443 012e 2368 ldr r3, [r4] 2444 0130 2022 movs r2, #32 2445 0132 DA61 str r2, [r3, #28] 1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2446 .loc 1 1353 5 view .LVU802 2447 0134 2168 ldr r1, [r4] 2448 0136 4B68 ldr r3, [r1, #4] 2449 0138 23F0FF73 bic r3, r3, #33423360 2450 013c 23F48B33 bic r3, r3, #71168 2451 0140 23F4FF73 bic r3, r3, #510 2452 0144 23F00103 bic r3, r3, #1 2453 0148 4B60 str r3, [r1, #4] 1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2454 .loc 1 1355 5 view .LVU803 1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2455 .loc 1 1355 17 is_stmt 0 view .LVU804 2456 014a 84F84120 strb r2, [r4, #65] 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2457 .loc 1 1356 5 is_stmt 1 view .LVU805 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2458 .loc 1 1356 17 is_stmt 0 view .LVU806 2459 014e 0023 movs r3, #0 ARM GAS /tmp/ccclMPzv.s page 187 2460 0150 84F84230 strb r3, [r4, #66] 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2461 .loc 1 1359 5 is_stmt 1 view .LVU807 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2462 .loc 1 1359 5 view .LVU808 2463 0154 84F84030 strb r3, [r4, #64] 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2464 .loc 1 1359 5 view .LVU809 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2465 .loc 1 1361 5 view .LVU810 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2466 .loc 1 1361 12 is_stmt 0 view .LVU811 2467 0158 00E0 b .L171 2468 .LVL167: 2469 .L178: 1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2470 .loc 1 1365 12 view .LVU812 2471 015a 0220 movs r0, #2 2472 .LVL168: 2473 .L171: 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2474 .loc 1 1367 1 view .LVU813 2475 015c 02B0 add sp, sp, #8 2476 .LCFI25: 2477 .cfi_remember_state 2478 .cfi_def_cfa_offset 32 2479 @ sp needed 2480 015e BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2481 .LVL169: 2482 .L179: 2483 .LCFI26: 2484 .cfi_restore_state 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2485 .loc 1 1268 5 discriminator 1 view .LVU814 2486 0162 0220 movs r0, #2 2487 .LVL170: 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2488 .loc 1 1268 5 discriminator 1 view .LVU815 2489 0164 FAE7 b .L171 2490 .LVL171: 2491 .L180: 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2492 .loc 1 1275 14 view .LVU816 2493 0166 0120 movs r0, #1 2494 0168 F8E7 b .L171 2495 .L181: 1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2496 .loc 1 1307 16 view .LVU817 2497 016a 0120 movs r0, #1 2498 016c F6E7 b .L171 2499 .L182: 1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2500 .loc 1 1324 18 view .LVU818 2501 016e 0120 movs r0, #1 2502 0170 F4E7 b .L171 2503 .L183: 1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 188 2504 .loc 1 1346 14 view .LVU819 2505 0172 0120 movs r0, #1 2506 0174 F2E7 b .L171 2507 .L187: 2508 0176 00BF .align 2 2509 .L186: 2510 0178 00240080 .word -2147474432 2511 .cfi_endproc 2512 .LFE334: 2514 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2515 .align 1 2516 .global HAL_I2C_Slave_Transmit 2517 .syntax unified 2518 .thumb 2519 .thumb_func 2521 HAL_I2C_Slave_Transmit: 2522 .LVL172: 2523 .LFB335: 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2524 .loc 1 1380 1 is_stmt 1 view -0 2525 .cfi_startproc 2526 @ args = 0, pretend = 0, frame = 0 2527 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2528 .loc 1 1380 1 is_stmt 0 view .LVU821 2529 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2530 .LCFI27: 2531 .cfi_def_cfa_offset 24 2532 .cfi_offset 4, -24 2533 .cfi_offset 5, -20 2534 .cfi_offset 6, -16 2535 .cfi_offset 7, -12 2536 .cfi_offset 8, -8 2537 .cfi_offset 14, -4 2538 0004 82B0 sub sp, sp, #8 2539 .LCFI28: 2540 .cfi_def_cfa_offset 32 2541 0006 1D46 mov r5, r3 1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t tmpXferCount; 2542 .loc 1 1381 3 is_stmt 1 view .LVU822 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef error; 2543 .loc 1 1382 3 view .LVU823 1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2544 .loc 1 1383 3 view .LVU824 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2545 .loc 1 1385 3 view .LVU825 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2546 .loc 1 1385 11 is_stmt 0 view .LVU826 2547 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2548 .LVL173: 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2549 .loc 1 1385 11 view .LVU827 2550 000c DBB2 uxtb r3, r3 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2551 .loc 1 1385 6 view .LVU828 2552 000e 202B cmp r3, #32 2553 0010 40F0EA80 bne .L204 ARM GAS /tmp/ccclMPzv.s page 189 2554 0014 0446 mov r4, r0 2555 0016 0F46 mov r7, r1 2556 0018 9046 mov r8, r2 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2557 .loc 1 1387 5 is_stmt 1 view .LVU829 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2558 .loc 1 1387 8 is_stmt 0 view .LVU830 2559 001a 0029 cmp r1, #0 2560 001c 57D0 beq .L190 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2561 .loc 1 1387 25 discriminator 1 view .LVU831 2562 001e 002A cmp r2, #0 2563 0020 55D0 beq .L190 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2564 .loc 1 1393 5 is_stmt 1 view .LVU832 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2565 .loc 1 1393 5 view .LVU833 2566 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2567 0026 012B cmp r3, #1 2568 0028 00F0E280 beq .L205 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2569 .loc 1 1393 5 discriminator 2 view .LVU834 2570 002c 0123 movs r3, #1 2571 002e 80F84030 strb r3, [r0, #64] 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2572 .loc 1 1393 5 discriminator 2 view .LVU835 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2573 .loc 1 1396 5 view .LVU836 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2574 .loc 1 1396 17 is_stmt 0 view .LVU837 2575 0032 FFF7FEFF bl HAL_GetTick 2576 .LVL174: 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2577 .loc 1 1396 17 view .LVU838 2578 0036 0646 mov r6, r0 2579 .LVL175: 1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2580 .loc 1 1398 5 is_stmt 1 view .LVU839 1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2581 .loc 1 1398 21 is_stmt 0 view .LVU840 2582 0038 2123 movs r3, #33 2583 003a 84F84130 strb r3, [r4, #65] 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2584 .loc 1 1399 5 is_stmt 1 view .LVU841 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2585 .loc 1 1399 21 is_stmt 0 view .LVU842 2586 003e 2023 movs r3, #32 2587 0040 84F84230 strb r3, [r4, #66] 1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2588 .loc 1 1400 5 is_stmt 1 view .LVU843 1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2589 .loc 1 1400 21 is_stmt 0 view .LVU844 2590 0044 0023 movs r3, #0 2591 0046 6364 str r3, [r4, #68] 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 2592 .loc 1 1403 5 is_stmt 1 view .LVU845 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccclMPzv.s page 190 2593 .loc 1 1403 21 is_stmt 0 view .LVU846 2594 0048 6762 str r7, [r4, #36] 1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2595 .loc 1 1404 5 is_stmt 1 view .LVU847 1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 2596 .loc 1 1404 21 is_stmt 0 view .LVU848 2597 004a A4F82A80 strh r8, [r4, #42] @ movhi 1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2598 .loc 1 1405 5 is_stmt 1 view .LVU849 1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2599 .loc 1 1405 21 is_stmt 0 view .LVU850 2600 004e 6363 str r3, [r4, #52] 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2601 .loc 1 1408 5 is_stmt 1 view .LVU851 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2602 .loc 1 1408 9 is_stmt 0 view .LVU852 2603 0050 2268 ldr r2, [r4] 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2604 .loc 1 1408 19 view .LVU853 2605 0052 5368 ldr r3, [r2, #4] 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2606 .loc 1 1408 25 view .LVU854 2607 0054 23F40043 bic r3, r3, #32768 2608 0058 5360 str r3, [r2, #4] 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2609 .loc 1 1411 5 is_stmt 1 view .LVU855 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2610 .loc 1 1411 19 is_stmt 0 view .LVU856 2611 005a 236A ldr r3, [r4, #32] 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2612 .loc 1 1411 8 view .LVU857 2613 005c B3F5003F cmp r3, #131072 2614 0060 3AD0 beq .L207 2615 .L192: 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2616 .loc 1 1424 5 is_stmt 1 view .LVU858 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2617 .loc 1 1424 9 is_stmt 0 view .LVU859 2618 0062 0096 str r6, [sp] 2619 0064 2B46 mov r3, r5 2620 0066 0022 movs r2, #0 2621 0068 0821 movs r1, #8 2622 006a 2046 mov r0, r4 2623 .LVL176: 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2624 .loc 1 1424 9 view .LVU860 2625 006c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2626 .LVL177: 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2627 .loc 1 1424 8 discriminator 1 view .LVU861 2628 0070 0028 cmp r0, #0 2629 0072 3ED1 bne .L208 1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2630 .loc 1 1436 5 is_stmt 1 view .LVU862 2631 0074 2368 ldr r3, [r4] 2632 0076 0822 movs r2, #8 2633 0078 DA61 str r2, [r3, #28] ARM GAS /tmp/ccclMPzv.s page 191 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2634 .loc 1 1439 5 view .LVU863 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2635 .loc 1 1439 19 is_stmt 0 view .LVU864 2636 007a E368 ldr r3, [r4, #12] 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2637 .loc 1 1439 8 view .LVU865 2638 007c 022B cmp r3, #2 2639 007e 42D0 beq .L209 2640 .L194: 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2641 .loc 1 1458 5 is_stmt 1 view .LVU866 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2642 .loc 1 1458 9 is_stmt 0 view .LVU867 2643 0080 0096 str r6, [sp] 2644 0082 2B46 mov r3, r5 2645 0084 0022 movs r2, #0 2646 0086 4FF48031 mov r1, #65536 2647 008a 2046 mov r0, r4 2648 008c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2649 .LVL178: 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2650 .loc 1 1458 8 discriminator 1 view .LVU868 2651 0090 0028 cmp r0, #0 2652 0092 4ED1 bne .L210 2653 .L196: 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2654 .loc 1 1469 28 is_stmt 1 view .LVU869 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2655 .loc 1 1469 16 is_stmt 0 view .LVU870 2656 0094 628D ldrh r2, [r4, #42] 2657 0096 92B2 uxth r2, r2 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2658 .loc 1 1469 28 view .LVU871 2659 0098 002A cmp r2, #0 2660 009a 5BD0 beq .L211 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2661 .loc 1 1472 7 is_stmt 1 view .LVU872 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2662 .loc 1 1472 11 is_stmt 0 view .LVU873 2663 009c 3246 mov r2, r6 2664 009e 2946 mov r1, r5 2665 00a0 2046 mov r0, r4 2666 00a2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2667 .LVL179: 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2668 .loc 1 1472 10 discriminator 1 view .LVU874 2669 00a6 0028 cmp r0, #0 2670 00a8 4DD1 bne .L212 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2671 .loc 1 1480 7 is_stmt 1 view .LVU875 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2672 .loc 1 1480 35 is_stmt 0 view .LVU876 2673 00aa 626A ldr r2, [r4, #36] 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2674 .loc 1 1480 11 view .LVU877 2675 00ac 2368 ldr r3, [r4] ARM GAS /tmp/ccclMPzv.s page 192 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2676 .loc 1 1480 30 view .LVU878 2677 00ae 1278 ldrb r2, [r2] @ zero_extendqisi2 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2678 .loc 1 1480 28 view .LVU879 2679 00b0 9A62 str r2, [r3, #40] 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2680 .loc 1 1483 7 is_stmt 1 view .LVU880 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2681 .loc 1 1483 11 is_stmt 0 view .LVU881 2682 00b2 636A ldr r3, [r4, #36] 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2683 .loc 1 1483 21 view .LVU882 2684 00b4 0133 adds r3, r3, #1 2685 00b6 6362 str r3, [r4, #36] 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2686 .loc 1 1485 7 is_stmt 1 view .LVU883 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2687 .loc 1 1485 11 is_stmt 0 view .LVU884 2688 00b8 B4F82AC0 ldrh ip, [r4, #42] 2689 00bc 1FFA8CFC uxth ip, ip 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2690 .loc 1 1485 22 view .LVU885 2691 00c0 0CF1FF3C add ip, ip, #-1 2692 00c4 1FFA8CFC uxth ip, ip 2693 00c8 A4F82AC0 strh ip, [r4, #42] @ movhi 2694 00cc E2E7 b .L196 2695 .LVL180: 2696 .L190: 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2697 .loc 1 1389 7 is_stmt 1 view .LVU886 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2698 .loc 1 1389 23 is_stmt 0 view .LVU887 2699 00ce 4FF40073 mov r3, #512 2700 00d2 6364 str r3, [r4, #68] 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2701 .loc 1 1390 7 is_stmt 1 view .LVU888 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2702 .loc 1 1390 15 is_stmt 0 view .LVU889 2703 00d4 0120 movs r0, #1 2704 .LVL181: 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2705 .loc 1 1390 15 view .LVU890 2706 00d6 88E0 b .L189 2707 .LVL182: 2708 .L207: 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2709 .loc 1 1415 7 is_stmt 1 view .LVU891 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2710 .loc 1 1415 35 is_stmt 0 view .LVU892 2711 00d8 626A ldr r2, [r4, #36] 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2712 .loc 1 1415 11 view .LVU893 2713 00da 2368 ldr r3, [r4] 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2714 .loc 1 1415 30 view .LVU894 2715 00dc 1278 ldrb r2, [r2] @ zero_extendqisi2 ARM GAS /tmp/ccclMPzv.s page 193 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2716 .loc 1 1415 28 view .LVU895 2717 00de 9A62 str r2, [r3, #40] 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2718 .loc 1 1418 7 is_stmt 1 view .LVU896 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2719 .loc 1 1418 11 is_stmt 0 view .LVU897 2720 00e0 636A ldr r3, [r4, #36] 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2721 .loc 1 1418 21 view .LVU898 2722 00e2 0133 adds r3, r3, #1 2723 00e4 6362 str r3, [r4, #36] 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2724 .loc 1 1420 7 is_stmt 1 view .LVU899 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2725 .loc 1 1420 11 is_stmt 0 view .LVU900 2726 00e6 638D ldrh r3, [r4, #42] 2727 00e8 9BB2 uxth r3, r3 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2728 .loc 1 1420 22 view .LVU901 2729 00ea 013B subs r3, r3, #1 2730 00ec 9BB2 uxth r3, r3 2731 00ee 6385 strh r3, [r4, #42] @ movhi 2732 00f0 B7E7 b .L192 2733 .LVL183: 2734 .L208: 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2735 .loc 1 1427 7 is_stmt 1 view .LVU902 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2736 .loc 1 1427 11 is_stmt 0 view .LVU903 2737 00f2 2268 ldr r2, [r4] 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2738 .loc 1 1427 21 view .LVU904 2739 00f4 5368 ldr r3, [r2, #4] 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2740 .loc 1 1427 27 view .LVU905 2741 00f6 43F40043 orr r3, r3, #32768 2742 00fa 5360 str r3, [r2, #4] 1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2743 .loc 1 1430 7 is_stmt 1 view .LVU906 2744 00fc 2046 mov r0, r4 2745 00fe FFF7FEFF bl I2C_Flush_TXDR 2746 .LVL184: 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2747 .loc 1 1432 7 view .LVU907 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2748 .loc 1 1432 14 is_stmt 0 view .LVU908 2749 0102 0120 movs r0, #1 2750 0104 71E0 b .L189 2751 .L209: 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2752 .loc 1 1442 7 is_stmt 1 view .LVU909 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2753 .loc 1 1442 11 is_stmt 0 view .LVU910 2754 0106 0096 str r6, [sp] 2755 0108 2B46 mov r3, r5 2756 010a 0022 movs r2, #0 ARM GAS /tmp/ccclMPzv.s page 194 2757 010c 0821 movs r1, #8 2758 010e 2046 mov r0, r4 2759 0110 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2760 .LVL185: 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2761 .loc 1 1442 10 discriminator 1 view .LVU911 2762 0114 18B9 cbnz r0, .L213 1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2763 .loc 1 1454 7 is_stmt 1 view .LVU912 2764 0116 2368 ldr r3, [r4] 2765 0118 0822 movs r2, #8 2766 011a DA61 str r2, [r3, #28] 2767 011c B0E7 b .L194 2768 .L213: 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2769 .loc 1 1445 9 view .LVU913 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2770 .loc 1 1445 13 is_stmt 0 view .LVU914 2771 011e 2268 ldr r2, [r4] 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2772 .loc 1 1445 23 view .LVU915 2773 0120 5368 ldr r3, [r2, #4] 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2774 .loc 1 1445 29 view .LVU916 2775 0122 43F40043 orr r3, r3, #32768 2776 0126 5360 str r3, [r2, #4] 1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2777 .loc 1 1448 9 is_stmt 1 view .LVU917 2778 0128 2046 mov r0, r4 2779 012a FFF7FEFF bl I2C_Flush_TXDR 2780 .LVL186: 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2781 .loc 1 1450 9 view .LVU918 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2782 .loc 1 1450 16 is_stmt 0 view .LVU919 2783 012e 0120 movs r0, #1 2784 0130 5BE0 b .L189 2785 .L210: 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2786 .loc 1 1461 7 is_stmt 1 view .LVU920 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2787 .loc 1 1461 11 is_stmt 0 view .LVU921 2788 0132 2268 ldr r2, [r4] 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2789 .loc 1 1461 21 view .LVU922 2790 0134 5368 ldr r3, [r2, #4] 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2791 .loc 1 1461 27 view .LVU923 2792 0136 43F40043 orr r3, r3, #32768 2793 013a 5360 str r3, [r2, #4] 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2794 .loc 1 1464 7 is_stmt 1 view .LVU924 2795 013c 2046 mov r0, r4 2796 013e FFF7FEFF bl I2C_Flush_TXDR 2797 .LVL187: 1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2798 .loc 1 1466 7 view .LVU925 ARM GAS /tmp/ccclMPzv.s page 195 1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2799 .loc 1 1466 14 is_stmt 0 view .LVU926 2800 0142 0120 movs r0, #1 2801 0144 51E0 b .L189 2802 .L212: 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2803 .loc 1 1475 9 is_stmt 1 view .LVU927 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2804 .loc 1 1475 13 is_stmt 0 view .LVU928 2805 0146 2268 ldr r2, [r4] 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2806 .loc 1 1475 23 view .LVU929 2807 0148 5368 ldr r3, [r2, #4] 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2808 .loc 1 1475 29 view .LVU930 2809 014a 43F40043 orr r3, r3, #32768 2810 014e 5360 str r3, [r2, #4] 1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2811 .loc 1 1476 9 is_stmt 1 view .LVU931 1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2812 .loc 1 1476 16 is_stmt 0 view .LVU932 2813 0150 0120 movs r0, #1 2814 0152 4AE0 b .L189 2815 .L211: 1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2816 .loc 1 1489 5 is_stmt 1 view .LVU933 1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2817 .loc 1 1489 13 is_stmt 0 view .LVU934 2818 0154 0096 str r6, [sp] 2819 0156 2B46 mov r3, r5 2820 0158 1021 movs r1, #16 2821 015a 2046 mov r0, r4 2822 015c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2823 .LVL188: 1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2824 .loc 1 1491 5 is_stmt 1 view .LVU935 1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2825 .loc 1 1491 8 is_stmt 0 view .LVU936 2826 0160 E8B1 cbz r0, .L199 1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2827 .loc 1 1497 7 is_stmt 1 view .LVU937 1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2828 .loc 1 1497 20 is_stmt 0 view .LVU938 2829 0162 638D ldrh r3, [r4, #42] 2830 0164 9BB2 uxth r3, r3 2831 .LVL189: 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2832 .loc 1 1498 7 is_stmt 1 view .LVU939 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2833 .loc 1 1498 16 is_stmt 0 view .LVU940 2834 0166 626C ldr r2, [r4, #68] 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2835 .loc 1 1498 10 view .LVU941 2836 0168 042A cmp r2, #4 2837 016a 11D1 bne .L200 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2838 .loc 1 1498 49 discriminator 1 view .LVU942 ARM GAS /tmp/ccclMPzv.s page 196 2839 016c 83B9 cbnz r3, .L200 1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2840 .loc 1 1501 9 is_stmt 1 view .LVU943 1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2841 .loc 1 1501 25 is_stmt 0 view .LVU944 2842 016e 6364 str r3, [r4, #68] 2843 .LVL190: 2844 .L201: 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2845 .loc 1 1532 5 is_stmt 1 view .LVU945 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2846 .loc 1 1532 9 is_stmt 0 view .LVU946 2847 0170 0096 str r6, [sp] 2848 0172 2B46 mov r3, r5 2849 0174 0122 movs r2, #1 2850 0176 4FF40041 mov r1, #32768 2851 017a 2046 mov r0, r4 2852 017c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2853 .LVL191: 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2854 .loc 1 1532 8 discriminator 1 view .LVU947 2855 0180 20B3 cbz r0, .L203 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2856 .loc 1 1535 7 is_stmt 1 view .LVU948 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2857 .loc 1 1535 11 is_stmt 0 view .LVU949 2858 0182 2268 ldr r2, [r4] 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2859 .loc 1 1535 21 view .LVU950 2860 0184 5368 ldr r3, [r2, #4] 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2861 .loc 1 1535 27 view .LVU951 2862 0186 43F40043 orr r3, r3, #32768 2863 018a 5360 str r3, [r2, #4] 1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2864 .loc 1 1536 7 is_stmt 1 view .LVU952 1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2865 .loc 1 1536 14 is_stmt 0 view .LVU953 2866 018c 0120 movs r0, #1 2867 018e 2CE0 b .L189 2868 .LVL192: 2869 .L200: 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2870 .loc 1 1506 9 is_stmt 1 view .LVU954 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2871 .loc 1 1506 13 is_stmt 0 view .LVU955 2872 0190 2268 ldr r2, [r4] 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2873 .loc 1 1506 23 view .LVU956 2874 0192 5368 ldr r3, [r2, #4] 2875 .LVL193: 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 2876 .loc 1 1506 29 view .LVU957 2877 0194 43F40043 orr r3, r3, #32768 2878 0198 5360 str r3, [r2, #4] 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2879 .loc 1 1507 9 is_stmt 1 view .LVU958 ARM GAS /tmp/ccclMPzv.s page 197 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2880 .loc 1 1507 16 is_stmt 0 view .LVU959 2881 019a 0120 movs r0, #1 2882 .LVL194: 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2883 .loc 1 1507 16 view .LVU960 2884 019c 25E0 b .L189 2885 .LVL195: 2886 .L199: 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2887 .loc 1 1513 7 is_stmt 1 view .LVU961 2888 019e 2046 mov r0, r4 2889 .LVL196: 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2890 .loc 1 1513 7 is_stmt 0 view .LVU962 2891 01a0 FFF7FEFF bl I2C_Flush_TXDR 2892 .LVL197: 1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2893 .loc 1 1516 7 is_stmt 1 view .LVU963 2894 01a4 2368 ldr r3, [r4] 2895 01a6 1022 movs r2, #16 2896 01a8 DA61 str r2, [r3, #28] 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2897 .loc 1 1519 7 view .LVU964 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2898 .loc 1 1519 11 is_stmt 0 view .LVU965 2899 01aa 3246 mov r2, r6 2900 01ac 2946 mov r1, r5 2901 01ae 2046 mov r0, r4 2902 01b0 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2903 .LVL198: 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 2904 .loc 1 1519 10 discriminator 1 view .LVU966 2905 01b4 18B9 cbnz r0, .L214 1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2906 .loc 1 1528 7 is_stmt 1 view .LVU967 2907 01b6 2368 ldr r3, [r4] 2908 01b8 2022 movs r2, #32 2909 01ba DA61 str r2, [r3, #28] 2910 01bc D8E7 b .L201 2911 .L214: 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2912 .loc 1 1522 9 view .LVU968 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2913 .loc 1 1522 13 is_stmt 0 view .LVU969 2914 01be 2268 ldr r2, [r4] 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2915 .loc 1 1522 23 view .LVU970 2916 01c0 5368 ldr r3, [r2, #4] 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2917 .loc 1 1522 29 view .LVU971 2918 01c2 43F40043 orr r3, r3, #32768 2919 01c6 5360 str r3, [r2, #4] 1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2920 .loc 1 1524 9 is_stmt 1 view .LVU972 1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2921 .loc 1 1524 16 is_stmt 0 view .LVU973 ARM GAS /tmp/ccclMPzv.s page 198 2922 01c8 0120 movs r0, #1 2923 01ca 0EE0 b .L189 2924 .L203: 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2925 .loc 1 1540 5 is_stmt 1 view .LVU974 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2926 .loc 1 1540 9 is_stmt 0 view .LVU975 2927 01cc 2268 ldr r2, [r4] 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2928 .loc 1 1540 19 view .LVU976 2929 01ce 5368 ldr r3, [r2, #4] 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2930 .loc 1 1540 25 view .LVU977 2931 01d0 43F40043 orr r3, r3, #32768 2932 01d4 5360 str r3, [r2, #4] 1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2933 .loc 1 1542 5 is_stmt 1 view .LVU978 1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2934 .loc 1 1542 17 is_stmt 0 view .LVU979 2935 01d6 2023 movs r3, #32 2936 01d8 84F84130 strb r3, [r4, #65] 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2937 .loc 1 1543 5 is_stmt 1 view .LVU980 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2938 .loc 1 1543 17 is_stmt 0 view .LVU981 2939 01dc 0023 movs r3, #0 2940 01de 84F84230 strb r3, [r4, #66] 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2941 .loc 1 1546 5 is_stmt 1 view .LVU982 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2942 .loc 1 1546 5 view .LVU983 2943 01e2 84F84030 strb r3, [r4, #64] 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2944 .loc 1 1546 5 view .LVU984 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2945 .loc 1 1548 5 view .LVU985 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2946 .loc 1 1548 12 is_stmt 0 view .LVU986 2947 01e6 00E0 b .L189 2948 .LVL199: 2949 .L204: 1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 2950 .loc 1 1552 12 view .LVU987 2951 01e8 0220 movs r0, #2 2952 .LVL200: 2953 .L189: 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2954 .loc 1 1554 1 view .LVU988 2955 01ea 02B0 add sp, sp, #8 2956 .LCFI29: 2957 .cfi_remember_state 2958 .cfi_def_cfa_offset 24 2959 @ sp needed 2960 01ec BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2961 .LVL201: 2962 .L205: 2963 .LCFI30: ARM GAS /tmp/ccclMPzv.s page 199 2964 .cfi_restore_state 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2965 .loc 1 1393 5 discriminator 1 view .LVU989 2966 01f0 0220 movs r0, #2 2967 .LVL202: 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 2968 .loc 1 1393 5 discriminator 1 view .LVU990 2969 01f2 FAE7 b .L189 2970 .cfi_endproc 2971 .LFE335: 2973 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2974 .align 1 2975 .global HAL_I2C_Slave_Receive 2976 .syntax unified 2977 .thumb 2978 .thumb_func 2980 HAL_I2C_Slave_Receive: 2981 .LVL203: 2982 .LFB336: 1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2983 .loc 1 1567 1 is_stmt 1 view -0 2984 .cfi_startproc 2985 @ args = 0, pretend = 0, frame = 0 2986 @ frame_needed = 0, uses_anonymous_args = 0 1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 2987 .loc 1 1567 1 is_stmt 0 view .LVU992 2988 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2989 .LCFI31: 2990 .cfi_def_cfa_offset 24 2991 .cfi_offset 4, -24 2992 .cfi_offset 5, -20 2993 .cfi_offset 6, -16 2994 .cfi_offset 7, -12 2995 .cfi_offset 8, -8 2996 .cfi_offset 14, -4 2997 0004 82B0 sub sp, sp, #8 2998 .LCFI32: 2999 .cfi_def_cfa_offset 32 3000 0006 1D46 mov r5, r3 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3001 .loc 1 1568 3 is_stmt 1 view .LVU993 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3002 .loc 1 1570 3 view .LVU994 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3003 .loc 1 1570 11 is_stmt 0 view .LVU995 3004 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3005 .LVL204: 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3006 .loc 1 1570 11 view .LVU996 3007 000c DBB2 uxtb r3, r3 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3008 .loc 1 1570 6 view .LVU997 3009 000e 202B cmp r3, #32 3010 0010 40F0AF80 bne .L226 3011 0014 0446 mov r4, r0 3012 0016 0E46 mov r6, r1 3013 0018 9046 mov r8, r2 ARM GAS /tmp/ccclMPzv.s page 200 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3014 .loc 1 1572 5 is_stmt 1 view .LVU998 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3015 .loc 1 1572 8 is_stmt 0 view .LVU999 3016 001a 61B3 cbz r1, .L217 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3017 .loc 1 1572 25 discriminator 1 view .LVU1000 3018 001c 5AB3 cbz r2, .L217 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3019 .loc 1 1578 5 is_stmt 1 view .LVU1001 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3020 .loc 1 1578 5 view .LVU1002 3021 001e 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3022 0022 012B cmp r3, #1 3023 0024 00F0A980 beq .L227 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3024 .loc 1 1578 5 discriminator 2 view .LVU1003 3025 0028 0123 movs r3, #1 3026 002a 80F84030 strb r3, [r0, #64] 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3027 .loc 1 1578 5 discriminator 2 view .LVU1004 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3028 .loc 1 1581 5 view .LVU1005 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3029 .loc 1 1581 17 is_stmt 0 view .LVU1006 3030 002e FFF7FEFF bl HAL_GetTick 3031 .LVL205: 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3032 .loc 1 1581 17 view .LVU1007 3033 0032 0746 mov r7, r0 3034 .LVL206: 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3035 .loc 1 1583 5 is_stmt 1 view .LVU1008 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3036 .loc 1 1583 21 is_stmt 0 view .LVU1009 3037 0034 2223 movs r3, #34 3038 0036 84F84130 strb r3, [r4, #65] 1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3039 .loc 1 1584 5 is_stmt 1 view .LVU1010 1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3040 .loc 1 1584 21 is_stmt 0 view .LVU1011 3041 003a 2023 movs r3, #32 3042 003c 84F84230 strb r3, [r4, #66] 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3043 .loc 1 1585 5 is_stmt 1 view .LVU1012 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3044 .loc 1 1585 21 is_stmt 0 view .LVU1013 3045 0040 0022 movs r2, #0 3046 0042 6264 str r2, [r4, #68] 1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3047 .loc 1 1588 5 is_stmt 1 view .LVU1014 1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3048 .loc 1 1588 21 is_stmt 0 view .LVU1015 3049 0044 6662 str r6, [r4, #36] 1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3050 .loc 1 1589 5 is_stmt 1 view .LVU1016 1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccclMPzv.s page 201 3051 .loc 1 1589 21 is_stmt 0 view .LVU1017 3052 0046 A4F82A80 strh r8, [r4, #42] @ movhi 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 3053 .loc 1 1590 5 is_stmt 1 view .LVU1018 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 3054 .loc 1 1590 26 is_stmt 0 view .LVU1019 3055 004a 638D ldrh r3, [r4, #42] 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 3056 .loc 1 1590 20 view .LVU1020 3057 004c 2385 strh r3, [r4, #40] @ movhi 1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3058 .loc 1 1591 5 is_stmt 1 view .LVU1021 1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3059 .loc 1 1591 21 is_stmt 0 view .LVU1022 3060 004e 6263 str r2, [r4, #52] 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3061 .loc 1 1594 5 is_stmt 1 view .LVU1023 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3062 .loc 1 1594 9 is_stmt 0 view .LVU1024 3063 0050 2168 ldr r1, [r4] 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3064 .loc 1 1594 19 view .LVU1025 3065 0052 4B68 ldr r3, [r1, #4] 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3066 .loc 1 1594 25 view .LVU1026 3067 0054 23F40043 bic r3, r3, #32768 3068 0058 4B60 str r3, [r1, #4] 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3069 .loc 1 1597 5 is_stmt 1 view .LVU1027 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3070 .loc 1 1597 9 is_stmt 0 view .LVU1028 3071 005a 0090 str r0, [sp] 3072 005c 2B46 mov r3, r5 3073 005e 0821 movs r1, #8 3074 0060 2046 mov r0, r4 3075 .LVL207: 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3076 .loc 1 1597 9 view .LVU1029 3077 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3078 .LVL208: 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3079 .loc 1 1597 8 discriminator 1 view .LVU1030 3080 0066 58B1 cbz r0, .L219 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3081 .loc 1 1600 7 is_stmt 1 view .LVU1031 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3082 .loc 1 1600 11 is_stmt 0 view .LVU1032 3083 0068 2268 ldr r2, [r4] 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3084 .loc 1 1600 21 view .LVU1033 3085 006a 5368 ldr r3, [r2, #4] 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3086 .loc 1 1600 27 view .LVU1034 3087 006c 43F40043 orr r3, r3, #32768 3088 0070 5360 str r3, [r2, #4] 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3089 .loc 1 1601 7 is_stmt 1 view .LVU1035 ARM GAS /tmp/ccclMPzv.s page 202 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3090 .loc 1 1601 14 is_stmt 0 view .LVU1036 3091 0072 0120 movs r0, #1 3092 0074 7EE0 b .L216 3093 .LVL209: 3094 .L217: 1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3095 .loc 1 1574 7 is_stmt 1 view .LVU1037 1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3096 .loc 1 1574 23 is_stmt 0 view .LVU1038 3097 0076 4FF40073 mov r3, #512 3098 007a 6364 str r3, [r4, #68] 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3099 .loc 1 1575 7 is_stmt 1 view .LVU1039 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3100 .loc 1 1575 15 is_stmt 0 view .LVU1040 3101 007c 0120 movs r0, #1 3102 .LVL210: 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3103 .loc 1 1575 15 view .LVU1041 3104 007e 79E0 b .L216 3105 .LVL211: 3106 .L219: 1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3107 .loc 1 1605 5 is_stmt 1 view .LVU1042 3108 0080 2368 ldr r3, [r4] 3109 0082 0822 movs r2, #8 3110 0084 DA61 str r2, [r3, #28] 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3111 .loc 1 1608 5 view .LVU1043 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3112 .loc 1 1608 9 is_stmt 0 view .LVU1044 3113 0086 0097 str r7, [sp] 3114 0088 2B46 mov r3, r5 3115 008a 0122 movs r2, #1 3116 008c 4FF48031 mov r1, #65536 3117 0090 2046 mov r0, r4 3118 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3119 .LVL212: 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3120 .loc 1 1608 8 discriminator 1 view .LVU1045 3121 0096 D0B1 cbz r0, .L220 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3122 .loc 1 1611 7 is_stmt 1 view .LVU1046 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3123 .loc 1 1611 11 is_stmt 0 view .LVU1047 3124 0098 2268 ldr r2, [r4] 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3125 .loc 1 1611 21 view .LVU1048 3126 009a 5368 ldr r3, [r2, #4] 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3127 .loc 1 1611 27 view .LVU1049 3128 009c 43F40043 orr r3, r3, #32768 3129 00a0 5360 str r3, [r2, #4] 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3130 .loc 1 1612 7 is_stmt 1 view .LVU1050 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 203 3131 .loc 1 1612 14 is_stmt 0 view .LVU1051 3132 00a2 0120 movs r0, #1 3133 00a4 66E0 b .L216 3134 .L221: 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3135 .loc 1 1640 7 is_stmt 1 view .LVU1052 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3136 .loc 1 1640 38 is_stmt 0 view .LVU1053 3137 00a6 2368 ldr r3, [r4] 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3138 .loc 1 1640 48 view .LVU1054 3139 00a8 5A6A ldr r2, [r3, #36] 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3140 .loc 1 1640 12 view .LVU1055 3141 00aa 636A ldr r3, [r4, #36] 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3142 .loc 1 1640 23 view .LVU1056 3143 00ac 1A70 strb r2, [r3] 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3144 .loc 1 1643 7 is_stmt 1 view .LVU1057 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3145 .loc 1 1643 11 is_stmt 0 view .LVU1058 3146 00ae 636A ldr r3, [r4, #36] 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3147 .loc 1 1643 21 view .LVU1059 3148 00b0 0133 adds r3, r3, #1 3149 00b2 6362 str r3, [r4, #36] 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3150 .loc 1 1645 7 is_stmt 1 view .LVU1060 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3151 .loc 1 1645 11 is_stmt 0 view .LVU1061 3152 00b4 B4F82AC0 ldrh ip, [r4, #42] 3153 00b8 1FFA8CFC uxth ip, ip 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3154 .loc 1 1645 22 view .LVU1062 3155 00bc 0CF1FF3C add ip, ip, #-1 3156 00c0 1FFA8CFC uxth ip, ip 3157 00c4 A4F82AC0 strh ip, [r4, #42] @ movhi 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3158 .loc 1 1646 7 is_stmt 1 view .LVU1063 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3159 .loc 1 1646 11 is_stmt 0 view .LVU1064 3160 00c8 238D ldrh r3, [r4, #40] 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3161 .loc 1 1646 21 view .LVU1065 3162 00ca 013B subs r3, r3, #1 3163 00cc 2385 strh r3, [r4, #40] @ movhi 3164 .L220: 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3165 .loc 1 1615 28 is_stmt 1 view .LVU1066 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3166 .loc 1 1615 16 is_stmt 0 view .LVU1067 3167 00ce 638D ldrh r3, [r4, #42] 3168 00d0 9BB2 uxth r3, r3 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3169 .loc 1 1615 28 view .LVU1068 3170 00d2 03B3 cbz r3, .L229 ARM GAS /tmp/ccclMPzv.s page 204 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3171 .loc 1 1618 7 is_stmt 1 view .LVU1069 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3172 .loc 1 1618 11 is_stmt 0 view .LVU1070 3173 00d4 3A46 mov r2, r7 3174 00d6 2946 mov r1, r5 3175 00d8 2046 mov r0, r4 3176 00da FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 3177 .LVL213: 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3178 .loc 1 1618 10 discriminator 1 view .LVU1071 3179 00de 0028 cmp r0, #0 3180 00e0 E1D0 beq .L221 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3181 .loc 1 1621 9 is_stmt 1 view .LVU1072 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3182 .loc 1 1621 13 is_stmt 0 view .LVU1073 3183 00e2 2268 ldr r2, [r4] 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3184 .loc 1 1621 23 view .LVU1074 3185 00e4 5368 ldr r3, [r2, #4] 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3186 .loc 1 1621 29 view .LVU1075 3187 00e6 43F40043 orr r3, r3, #32768 3188 00ea 5360 str r3, [r2, #4] 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3189 .loc 1 1624 9 is_stmt 1 view .LVU1076 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3190 .loc 1 1624 13 is_stmt 0 view .LVU1077 3191 00ec 2368 ldr r3, [r4] 3192 00ee 9A69 ldr r2, [r3, #24] 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3193 .loc 1 1624 12 view .LVU1078 3194 00f0 12F0040F tst r2, #4 3195 00f4 0DD0 beq .L222 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3196 .loc 1 1627 11 is_stmt 1 view .LVU1079 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3197 .loc 1 1627 52 is_stmt 0 view .LVU1080 3198 00f6 5A6A ldr r2, [r3, #36] 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3199 .loc 1 1627 16 view .LVU1081 3200 00f8 636A ldr r3, [r4, #36] 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3201 .loc 1 1627 27 view .LVU1082 3202 00fa 1A70 strb r2, [r3] 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3203 .loc 1 1630 11 is_stmt 1 view .LVU1083 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3204 .loc 1 1630 15 is_stmt 0 view .LVU1084 3205 00fc 636A ldr r3, [r4, #36] 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3206 .loc 1 1630 25 view .LVU1085 3207 00fe 0133 adds r3, r3, #1 3208 0100 6362 str r3, [r4, #36] 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3209 .loc 1 1632 11 is_stmt 1 view .LVU1086 ARM GAS /tmp/ccclMPzv.s page 205 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3210 .loc 1 1632 15 is_stmt 0 view .LVU1087 3211 0102 638D ldrh r3, [r4, #42] 3212 0104 9BB2 uxth r3, r3 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3213 .loc 1 1632 26 view .LVU1088 3214 0106 013B subs r3, r3, #1 3215 0108 9BB2 uxth r3, r3 3216 010a 6385 strh r3, [r4, #42] @ movhi 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3217 .loc 1 1633 11 is_stmt 1 view .LVU1089 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3218 .loc 1 1633 15 is_stmt 0 view .LVU1090 3219 010c 238D ldrh r3, [r4, #40] 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3220 .loc 1 1633 25 view .LVU1091 3221 010e 013B subs r3, r3, #1 3222 0110 2385 strh r3, [r4, #40] @ movhi 3223 .L222: 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3224 .loc 1 1636 9 is_stmt 1 view .LVU1092 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3225 .loc 1 1636 16 is_stmt 0 view .LVU1093 3226 0112 0120 movs r0, #1 3227 0114 2EE0 b .L216 3228 .L229: 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3229 .loc 1 1650 5 is_stmt 1 view .LVU1094 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3230 .loc 1 1650 9 is_stmt 0 view .LVU1095 3231 0116 3A46 mov r2, r7 3232 0118 2946 mov r1, r5 3233 011a 2046 mov r0, r4 3234 011c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 3235 .LVL214: 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3236 .loc 1 1650 8 discriminator 1 view .LVU1096 3237 0120 30B1 cbz r0, .L224 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3238 .loc 1 1653 7 is_stmt 1 view .LVU1097 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3239 .loc 1 1653 11 is_stmt 0 view .LVU1098 3240 0122 2268 ldr r2, [r4] 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3241 .loc 1 1653 21 view .LVU1099 3242 0124 5368 ldr r3, [r2, #4] 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3243 .loc 1 1653 27 view .LVU1100 3244 0126 43F40043 orr r3, r3, #32768 3245 012a 5360 str r3, [r2, #4] 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3246 .loc 1 1654 7 is_stmt 1 view .LVU1101 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3247 .loc 1 1654 14 is_stmt 0 view .LVU1102 3248 012c 0120 movs r0, #1 3249 012e 21E0 b .L216 3250 .L224: ARM GAS /tmp/ccclMPzv.s page 206 1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3251 .loc 1 1658 5 is_stmt 1 view .LVU1103 3252 0130 2368 ldr r3, [r4] 3253 0132 2022 movs r2, #32 3254 0134 DA61 str r2, [r3, #28] 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3255 .loc 1 1661 5 view .LVU1104 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3256 .loc 1 1661 9 is_stmt 0 view .LVU1105 3257 0136 0097 str r7, [sp] 3258 0138 2B46 mov r3, r5 3259 013a 0122 movs r2, #1 3260 013c 4FF40041 mov r1, #32768 3261 0140 2046 mov r0, r4 3262 0142 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3263 .LVL215: 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3264 .loc 1 1661 8 discriminator 1 view .LVU1106 3265 0146 30B1 cbz r0, .L225 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3266 .loc 1 1664 7 is_stmt 1 view .LVU1107 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3267 .loc 1 1664 11 is_stmt 0 view .LVU1108 3268 0148 2268 ldr r2, [r4] 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3269 .loc 1 1664 21 view .LVU1109 3270 014a 5368 ldr r3, [r2, #4] 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 3271 .loc 1 1664 27 view .LVU1110 3272 014c 43F40043 orr r3, r3, #32768 3273 0150 5360 str r3, [r2, #4] 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3274 .loc 1 1665 7 is_stmt 1 view .LVU1111 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3275 .loc 1 1665 14 is_stmt 0 view .LVU1112 3276 0152 0120 movs r0, #1 3277 0154 0EE0 b .L216 3278 .L225: 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3279 .loc 1 1669 5 is_stmt 1 view .LVU1113 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3280 .loc 1 1669 9 is_stmt 0 view .LVU1114 3281 0156 2268 ldr r2, [r4] 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3282 .loc 1 1669 19 view .LVU1115 3283 0158 5368 ldr r3, [r2, #4] 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3284 .loc 1 1669 25 view .LVU1116 3285 015a 43F40043 orr r3, r3, #32768 3286 015e 5360 str r3, [r2, #4] 1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3287 .loc 1 1671 5 is_stmt 1 view .LVU1117 1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3288 .loc 1 1671 17 is_stmt 0 view .LVU1118 3289 0160 2023 movs r3, #32 3290 0162 84F84130 strb r3, [r4, #65] 1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 207 3291 .loc 1 1672 5 is_stmt 1 view .LVU1119 1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3292 .loc 1 1672 17 is_stmt 0 view .LVU1120 3293 0166 0023 movs r3, #0 3294 0168 84F84230 strb r3, [r4, #66] 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3295 .loc 1 1675 5 is_stmt 1 view .LVU1121 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3296 .loc 1 1675 5 view .LVU1122 3297 016c 84F84030 strb r3, [r4, #64] 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3298 .loc 1 1675 5 view .LVU1123 1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3299 .loc 1 1677 5 view .LVU1124 1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3300 .loc 1 1677 12 is_stmt 0 view .LVU1125 3301 0170 00E0 b .L216 3302 .LVL216: 3303 .L226: 1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3304 .loc 1 1681 12 view .LVU1126 3305 0172 0220 movs r0, #2 3306 .LVL217: 3307 .L216: 1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3308 .loc 1 1683 1 view .LVU1127 3309 0174 02B0 add sp, sp, #8 3310 .LCFI33: 3311 .cfi_remember_state 3312 .cfi_def_cfa_offset 24 3313 @ sp needed 3314 0176 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3315 .LVL218: 3316 .L227: 3317 .LCFI34: 3318 .cfi_restore_state 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3319 .loc 1 1578 5 discriminator 1 view .LVU1128 3320 017a 0220 movs r0, #2 3321 .LVL219: 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3322 .loc 1 1578 5 discriminator 1 view .LVU1129 3323 017c FAE7 b .L216 3324 .cfi_endproc 3325 .LFE336: 3327 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3328 .align 1 3329 .global HAL_I2C_Master_Transmit_IT 3330 .syntax unified 3331 .thumb 3332 .thumb_func 3334 HAL_I2C_Master_Transmit_IT: 3335 .LVL220: 3336 .LFB337: 1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3337 .loc 1 1697 1 is_stmt 1 view -0 3338 .cfi_startproc ARM GAS /tmp/ccclMPzv.s page 208 3339 @ args = 0, pretend = 0, frame = 0 3340 @ frame_needed = 0, uses_anonymous_args = 0 1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3341 .loc 1 1697 1 is_stmt 0 view .LVU1131 3342 0000 30B5 push {r4, r5, lr} 3343 .LCFI35: 3344 .cfi_def_cfa_offset 12 3345 .cfi_offset 4, -12 3346 .cfi_offset 5, -8 3347 .cfi_offset 14, -4 3348 0002 83B0 sub sp, sp, #12 3349 .LCFI36: 3350 .cfi_def_cfa_offset 24 3351 0004 0446 mov r4, r0 1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3352 .loc 1 1698 3 is_stmt 1 view .LVU1132 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3353 .loc 1 1700 3 view .LVU1133 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3354 .loc 1 1700 11 is_stmt 0 view .LVU1134 3355 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3356 .LVL221: 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3357 .loc 1 1700 11 view .LVU1135 3358 000a C0B2 uxtb r0, r0 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3359 .loc 1 1700 6 view .LVU1136 3360 000c 2028 cmp r0, #32 3361 000e 4ED1 bne .L236 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3362 .loc 1 1702 5 is_stmt 1 view .LVU1137 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3363 .loc 1 1702 9 is_stmt 0 view .LVU1138 3364 0010 2068 ldr r0, [r4] 3365 0012 8569 ldr r5, [r0, #24] 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3366 .loc 1 1702 8 view .LVU1139 3367 0014 15F4004F tst r5, #32768 3368 0018 4BD1 bne .L237 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3369 .loc 1 1708 5 is_stmt 1 view .LVU1140 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3370 .loc 1 1708 5 view .LVU1141 3371 001a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 3372 001e 012D cmp r5, #1 3373 0020 49D0 beq .L238 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3374 .loc 1 1708 5 discriminator 2 view .LVU1142 3375 0022 0125 movs r5, #1 3376 0024 84F84050 strb r5, [r4, #64] 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3377 .loc 1 1708 5 discriminator 2 view .LVU1143 1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3378 .loc 1 1710 5 view .LVU1144 1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3379 .loc 1 1710 23 is_stmt 0 view .LVU1145 3380 0028 2125 movs r5, #33 ARM GAS /tmp/ccclMPzv.s page 209 3381 002a 84F84150 strb r5, [r4, #65] 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3382 .loc 1 1711 5 is_stmt 1 view .LVU1146 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3383 .loc 1 1711 23 is_stmt 0 view .LVU1147 3384 002e 1025 movs r5, #16 3385 0030 84F84250 strb r5, [r4, #66] 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3386 .loc 1 1712 5 is_stmt 1 view .LVU1148 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3387 .loc 1 1712 23 is_stmt 0 view .LVU1149 3388 0034 0025 movs r5, #0 3389 0036 6564 str r5, [r4, #68] 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3390 .loc 1 1715 5 is_stmt 1 view .LVU1150 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3391 .loc 1 1715 23 is_stmt 0 view .LVU1151 3392 0038 6262 str r2, [r4, #36] 1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3393 .loc 1 1716 5 is_stmt 1 view .LVU1152 1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3394 .loc 1 1716 23 is_stmt 0 view .LVU1153 3395 003a 6385 strh r3, [r4, #42] @ movhi 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3396 .loc 1 1717 5 is_stmt 1 view .LVU1154 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3397 .loc 1 1717 23 is_stmt 0 view .LVU1155 3398 003c 1F4B ldr r3, .L240 3399 .LVL222: 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3400 .loc 1 1717 23 view .LVU1156 3401 003e E362 str r3, [r4, #44] 3402 .LVL223: 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3403 .loc 1 1718 5 is_stmt 1 view .LVU1157 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3404 .loc 1 1718 23 is_stmt 0 view .LVU1158 3405 0040 1F4B ldr r3, .L240+4 3406 0042 6363 str r3, [r4, #52] 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3407 .loc 1 1720 5 is_stmt 1 view .LVU1159 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3408 .loc 1 1720 13 is_stmt 0 view .LVU1160 3409 0044 638D ldrh r3, [r4, #42] 3410 0046 9BB2 uxth r3, r3 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3411 .loc 1 1720 8 view .LVU1161 3412 0048 FF2B cmp r3, #255 3413 004a 24D9 bls .L232 1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3414 .loc 1 1722 7 is_stmt 1 view .LVU1162 1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3415 .loc 1 1722 22 is_stmt 0 view .LVU1163 3416 004c FF23 movs r3, #255 3417 004e 2385 strh r3, [r4, #40] @ movhi 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3418 .loc 1 1723 7 is_stmt 1 view .LVU1164 ARM GAS /tmp/ccclMPzv.s page 210 3419 .LVL224: 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3420 .loc 1 1723 16 is_stmt 0 view .LVU1165 3421 0050 4FF08073 mov r3, #16777216 3422 .LVL225: 3423 .L233: 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3424 .loc 1 1733 5 is_stmt 1 view .LVU1166 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3425 .loc 1 1733 13 is_stmt 0 view .LVU1167 3426 0054 258D ldrh r5, [r4, #40] 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3427 .loc 1 1733 8 view .LVU1168 3428 0056 1DB3 cbz r5, .L234 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3429 .loc 1 1737 7 is_stmt 1 view .LVU1169 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3430 .loc 1 1737 30 is_stmt 0 view .LVU1170 3431 0058 1278 ldrb r2, [r2] @ zero_extendqisi2 3432 .LVL226: 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3433 .loc 1 1737 28 view .LVU1171 3434 005a 8262 str r2, [r0, #40] 3435 .LVL227: 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3436 .loc 1 1740 7 is_stmt 1 view .LVU1172 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3437 .loc 1 1740 11 is_stmt 0 view .LVU1173 3438 005c 626A ldr r2, [r4, #36] 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3439 .loc 1 1740 21 view .LVU1174 3440 005e 0132 adds r2, r2, #1 3441 0060 6262 str r2, [r4, #36] 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3442 .loc 1 1742 7 is_stmt 1 view .LVU1175 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3443 .loc 1 1742 11 is_stmt 0 view .LVU1176 3444 0062 628D ldrh r2, [r4, #42] 3445 0064 92B2 uxth r2, r2 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3446 .loc 1 1742 22 view .LVU1177 3447 0066 013A subs r2, r2, #1 3448 0068 92B2 uxth r2, r2 3449 006a 6285 strh r2, [r4, #42] @ movhi 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3450 .loc 1 1743 7 is_stmt 1 view .LVU1178 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3451 .loc 1 1743 11 is_stmt 0 view .LVU1179 3452 006c 228D ldrh r2, [r4, #40] 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3453 .loc 1 1743 21 view .LVU1180 3454 006e 013A subs r2, r2, #1 3455 0070 92B2 uxth r2, r2 3456 0072 2285 strh r2, [r4, #40] @ movhi 1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3457 .loc 1 1745 7 is_stmt 1 view .LVU1181 3458 0074 0132 adds r2, r2, #1 ARM GAS /tmp/ccclMPzv.s page 211 3459 0076 1348 ldr r0, .L240+8 3460 0078 0090 str r0, [sp] 3461 007a D2B2 uxtb r2, r2 3462 007c 2046 mov r0, r4 3463 007e FFF7FEFF bl I2C_TransferConfig 3464 .LVL228: 3465 .L235: 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3466 .loc 1 1755 5 view .LVU1182 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3467 .loc 1 1755 5 view .LVU1183 3468 0082 0025 movs r5, #0 3469 0084 84F84050 strb r5, [r4, #64] 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3470 .loc 1 1755 5 view .LVU1184 1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3471 .loc 1 1765 5 view .LVU1185 3472 0088 0121 movs r1, #1 3473 008a 2046 mov r0, r4 3474 008c FFF7FEFF bl I2C_Enable_IRQ 3475 .LVL229: 1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3476 .loc 1 1767 5 view .LVU1186 1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3477 .loc 1 1767 12 is_stmt 0 view .LVU1187 3478 0090 2846 mov r0, r5 3479 .LVL230: 3480 .L231: 1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3481 .loc 1 1773 1 view .LVU1188 3482 0092 03B0 add sp, sp, #12 3483 .LCFI37: 3484 .cfi_remember_state 3485 .cfi_def_cfa_offset 12 3486 @ sp needed 3487 0094 30BD pop {r4, r5, pc} 3488 .LVL231: 3489 .L232: 3490 .LCFI38: 3491 .cfi_restore_state 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3492 .loc 1 1727 7 is_stmt 1 view .LVU1189 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3493 .loc 1 1727 28 is_stmt 0 view .LVU1190 3494 0096 638D ldrh r3, [r4, #42] 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3495 .loc 1 1727 22 view .LVU1191 3496 0098 2385 strh r3, [r4, #40] @ movhi 1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3497 .loc 1 1728 7 is_stmt 1 view .LVU1192 3498 .LVL232: 1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3499 .loc 1 1728 16 is_stmt 0 view .LVU1193 3500 009a 4FF00073 mov r3, #33554432 3501 009e D9E7 b .L233 3502 .LVL233: 3503 .L234: ARM GAS /tmp/ccclMPzv.s page 212 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3504 .loc 1 1750 7 is_stmt 1 view .LVU1194 3505 00a0 084A ldr r2, .L240+8 3506 .LVL234: 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3507 .loc 1 1750 7 is_stmt 0 view .LVU1195 3508 00a2 0092 str r2, [sp] 3509 .LVL235: 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3510 .loc 1 1750 7 view .LVU1196 3511 00a4 EAB2 uxtb r2, r5 3512 00a6 2046 mov r0, r4 3513 00a8 FFF7FEFF bl I2C_TransferConfig 3514 .LVL236: 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3515 .loc 1 1750 7 view .LVU1197 3516 00ac E9E7 b .L235 3517 .LVL237: 3518 .L236: 1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3519 .loc 1 1771 12 view .LVU1198 3520 00ae 0220 movs r0, #2 3521 00b0 EFE7 b .L231 3522 .L237: 1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3523 .loc 1 1704 14 view .LVU1199 3524 00b2 0220 movs r0, #2 3525 00b4 EDE7 b .L231 3526 .L238: 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3527 .loc 1 1708 5 discriminator 1 view .LVU1200 3528 00b6 0220 movs r0, #2 3529 00b8 EBE7 b .L231 3530 .L241: 3531 00ba 00BF .align 2 3532 .L240: 3533 00bc 0000FFFF .word -65536 3534 00c0 00000000 .word I2C_Master_ISR_IT 3535 00c4 00200080 .word -2147475456 3536 .cfi_endproc 3537 .LFE337: 3539 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3540 .align 1 3541 .global HAL_I2C_Master_Receive_IT 3542 .syntax unified 3543 .thumb 3544 .thumb_func 3546 HAL_I2C_Master_Receive_IT: 3547 .LVL238: 3548 .LFB338: 1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3549 .loc 1 1787 1 is_stmt 1 view -0 3550 .cfi_startproc 3551 @ args = 0, pretend = 0, frame = 0 3552 @ frame_needed = 0, uses_anonymous_args = 0 1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3553 .loc 1 1787 1 is_stmt 0 view .LVU1202 ARM GAS /tmp/ccclMPzv.s page 213 3554 0000 30B5 push {r4, r5, lr} 3555 .LCFI39: 3556 .cfi_def_cfa_offset 12 3557 .cfi_offset 4, -12 3558 .cfi_offset 5, -8 3559 .cfi_offset 14, -4 3560 0002 83B0 sub sp, sp, #12 3561 .LCFI40: 3562 .cfi_def_cfa_offset 24 3563 0004 0446 mov r4, r0 1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3564 .loc 1 1788 3 is_stmt 1 view .LVU1203 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3565 .loc 1 1790 3 view .LVU1204 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3566 .loc 1 1790 11 is_stmt 0 view .LVU1205 3567 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3568 .LVL239: 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3569 .loc 1 1790 11 view .LVU1206 3570 000a C0B2 uxtb r0, r0 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3571 .loc 1 1790 6 view .LVU1207 3572 000c 2028 cmp r0, #32 3573 000e 37D1 bne .L246 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3574 .loc 1 1792 5 is_stmt 1 view .LVU1208 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3575 .loc 1 1792 9 is_stmt 0 view .LVU1209 3576 0010 2068 ldr r0, [r4] 3577 0012 8069 ldr r0, [r0, #24] 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3578 .loc 1 1792 8 view .LVU1210 3579 0014 10F4004F tst r0, #32768 3580 0018 34D1 bne .L247 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3581 .loc 1 1798 5 is_stmt 1 view .LVU1211 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3582 .loc 1 1798 5 view .LVU1212 3583 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3584 001e 0128 cmp r0, #1 3585 0020 32D0 beq .L248 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3586 .loc 1 1798 5 discriminator 2 view .LVU1213 3587 0022 0120 movs r0, #1 3588 0024 84F84000 strb r0, [r4, #64] 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3589 .loc 1 1798 5 discriminator 2 view .LVU1214 1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3590 .loc 1 1800 5 view .LVU1215 1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3591 .loc 1 1800 23 is_stmt 0 view .LVU1216 3592 0028 2220 movs r0, #34 3593 002a 84F84100 strb r0, [r4, #65] 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3594 .loc 1 1801 5 is_stmt 1 view .LVU1217 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccclMPzv.s page 214 3595 .loc 1 1801 23 is_stmt 0 view .LVU1218 3596 002e 1020 movs r0, #16 3597 0030 84F84200 strb r0, [r4, #66] 1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3598 .loc 1 1802 5 is_stmt 1 view .LVU1219 1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3599 .loc 1 1802 23 is_stmt 0 view .LVU1220 3600 0034 0020 movs r0, #0 3601 0036 6064 str r0, [r4, #68] 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3602 .loc 1 1805 5 is_stmt 1 view .LVU1221 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3603 .loc 1 1805 23 is_stmt 0 view .LVU1222 3604 0038 6262 str r2, [r4, #36] 1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3605 .loc 1 1806 5 is_stmt 1 view .LVU1223 1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3606 .loc 1 1806 23 is_stmt 0 view .LVU1224 3607 003a 6385 strh r3, [r4, #42] @ movhi 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3608 .loc 1 1807 5 is_stmt 1 view .LVU1225 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3609 .loc 1 1807 23 is_stmt 0 view .LVU1226 3610 003c 134B ldr r3, .L250 3611 .LVL240: 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3612 .loc 1 1807 23 view .LVU1227 3613 003e E362 str r3, [r4, #44] 3614 .LVL241: 1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3615 .loc 1 1808 5 is_stmt 1 view .LVU1228 1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3616 .loc 1 1808 23 is_stmt 0 view .LVU1229 3617 0040 134B ldr r3, .L250+4 3618 0042 6363 str r3, [r4, #52] 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3619 .loc 1 1810 5 is_stmt 1 view .LVU1230 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3620 .loc 1 1810 13 is_stmt 0 view .LVU1231 3621 0044 638D ldrh r3, [r4, #42] 3622 0046 9BB2 uxth r3, r3 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3623 .loc 1 1810 8 view .LVU1232 3624 0048 FF2B cmp r3, #255 3625 004a 14D9 bls .L244 1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3626 .loc 1 1812 7 is_stmt 1 view .LVU1233 1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3627 .loc 1 1812 22 is_stmt 0 view .LVU1234 3628 004c FF23 movs r3, #255 3629 004e 2385 strh r3, [r4, #40] @ movhi 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3630 .loc 1 1813 7 is_stmt 1 view .LVU1235 3631 .LVL242: 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3632 .loc 1 1813 16 is_stmt 0 view .LVU1236 3633 0050 4FF08073 mov r3, #16777216 ARM GAS /tmp/ccclMPzv.s page 215 3634 .LVL243: 3635 .L245: 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3636 .loc 1 1823 5 is_stmt 1 view .LVU1237 3637 0054 0F4A ldr r2, .L250+8 3638 .LVL244: 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3639 .loc 1 1823 5 is_stmt 0 view .LVU1238 3640 0056 0092 str r2, [sp] 3641 .LVL245: 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3642 .loc 1 1823 5 view .LVU1239 3643 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3644 005c 2046 mov r0, r4 3645 005e FFF7FEFF bl I2C_TransferConfig 3646 .LVL246: 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3647 .loc 1 1826 5 is_stmt 1 view .LVU1240 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3648 .loc 1 1826 5 view .LVU1241 3649 0062 0025 movs r5, #0 3650 0064 84F84050 strb r5, [r4, #64] 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3651 .loc 1 1826 5 view .LVU1242 1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3652 .loc 1 1836 5 view .LVU1243 3653 0068 0221 movs r1, #2 3654 006a 2046 mov r0, r4 3655 006c FFF7FEFF bl I2C_Enable_IRQ 3656 .LVL247: 1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3657 .loc 1 1838 5 view .LVU1244 1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3658 .loc 1 1838 12 is_stmt 0 view .LVU1245 3659 0070 2846 mov r0, r5 3660 .LVL248: 3661 .L243: 1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3662 .loc 1 1844 1 view .LVU1246 3663 0072 03B0 add sp, sp, #12 3664 .LCFI41: 3665 .cfi_remember_state 3666 .cfi_def_cfa_offset 12 3667 @ sp needed 3668 0074 30BD pop {r4, r5, pc} 3669 .LVL249: 3670 .L244: 3671 .LCFI42: 3672 .cfi_restore_state 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3673 .loc 1 1817 7 is_stmt 1 view .LVU1247 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3674 .loc 1 1817 28 is_stmt 0 view .LVU1248 3675 0076 638D ldrh r3, [r4, #42] 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3676 .loc 1 1817 22 view .LVU1249 3677 0078 2385 strh r3, [r4, #40] @ movhi ARM GAS /tmp/ccclMPzv.s page 216 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3678 .loc 1 1818 7 is_stmt 1 view .LVU1250 3679 .LVL250: 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3680 .loc 1 1818 16 is_stmt 0 view .LVU1251 3681 007a 4FF00073 mov r3, #33554432 3682 007e E9E7 b .L245 3683 .LVL251: 3684 .L246: 1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3685 .loc 1 1842 12 view .LVU1252 3686 0080 0220 movs r0, #2 3687 0082 F6E7 b .L243 3688 .L247: 1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3689 .loc 1 1794 14 view .LVU1253 3690 0084 0220 movs r0, #2 3691 0086 F4E7 b .L243 3692 .L248: 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3693 .loc 1 1798 5 discriminator 1 view .LVU1254 3694 0088 0220 movs r0, #2 3695 008a F2E7 b .L243 3696 .L251: 3697 .align 2 3698 .L250: 3699 008c 0000FFFF .word -65536 3700 0090 00000000 .word I2C_Master_ISR_IT 3701 0094 00240080 .word -2147474432 3702 .cfi_endproc 3703 .LFE338: 3705 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3706 .align 1 3707 .global HAL_I2C_Slave_Transmit_IT 3708 .syntax unified 3709 .thumb 3710 .thumb_func 3712 HAL_I2C_Slave_Transmit_IT: 3713 .LVL252: 3714 .LFB339: 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3715 .loc 1 1855 1 is_stmt 1 view -0 3716 .cfi_startproc 3717 @ args = 0, pretend = 0, frame = 0 3718 @ frame_needed = 0, uses_anonymous_args = 0 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3719 .loc 1 1856 3 view .LVU1256 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3720 .loc 1 1856 11 is_stmt 0 view .LVU1257 3721 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3722 0004 DBB2 uxtb r3, r3 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3723 .loc 1 1856 6 view .LVU1258 3724 0006 202B cmp r3, #32 3725 0008 38D1 bne .L255 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3726 .loc 1 1859 5 is_stmt 1 view .LVU1259 ARM GAS /tmp/ccclMPzv.s page 217 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3727 .loc 1 1859 5 view .LVU1260 3728 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3729 000e 012B cmp r3, #1 3730 0010 36D0 beq .L256 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3731 .loc 1 1855 1 is_stmt 0 view .LVU1261 3732 0012 10B5 push {r4, lr} 3733 .LCFI43: 3734 .cfi_def_cfa_offset 8 3735 .cfi_offset 4, -8 3736 .cfi_offset 14, -4 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3737 .loc 1 1859 5 is_stmt 1 discriminator 2 view .LVU1262 3738 0014 0123 movs r3, #1 3739 0016 80F84030 strb r3, [r0, #64] 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3740 .loc 1 1859 5 discriminator 2 view .LVU1263 1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3741 .loc 1 1861 5 view .LVU1264 1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3742 .loc 1 1861 23 is_stmt 0 view .LVU1265 3743 001a 2123 movs r3, #33 3744 001c 80F84130 strb r3, [r0, #65] 1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3745 .loc 1 1862 5 is_stmt 1 view .LVU1266 1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3746 .loc 1 1862 23 is_stmt 0 view .LVU1267 3747 0020 2023 movs r3, #32 3748 0022 80F84230 strb r3, [r0, #66] 1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3749 .loc 1 1863 5 is_stmt 1 view .LVU1268 1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3750 .loc 1 1863 23 is_stmt 0 view .LVU1269 3751 0026 0023 movs r3, #0 3752 0028 4364 str r3, [r0, #68] 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3753 .loc 1 1866 5 is_stmt 1 view .LVU1270 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3754 .loc 1 1866 9 is_stmt 0 view .LVU1271 3755 002a 0468 ldr r4, [r0] 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3756 .loc 1 1866 19 view .LVU1272 3757 002c 6368 ldr r3, [r4, #4] 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3758 .loc 1 1866 25 view .LVU1273 3759 002e 23F40043 bic r3, r3, #32768 3760 0032 6360 str r3, [r4, #4] 1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3761 .loc 1 1869 5 is_stmt 1 view .LVU1274 1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3762 .loc 1 1869 23 is_stmt 0 view .LVU1275 3763 0034 4162 str r1, [r0, #36] 1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3764 .loc 1 1870 5 is_stmt 1 view .LVU1276 1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3765 .loc 1 1870 23 is_stmt 0 view .LVU1277 ARM GAS /tmp/ccclMPzv.s page 218 3766 0036 4285 strh r2, [r0, #42] @ movhi 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3767 .loc 1 1871 5 is_stmt 1 view .LVU1278 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3768 .loc 1 1871 29 is_stmt 0 view .LVU1279 3769 0038 438D ldrh r3, [r0, #42] 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3770 .loc 1 1871 23 view .LVU1280 3771 003a 0385 strh r3, [r0, #40] @ movhi 1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3772 .loc 1 1872 5 is_stmt 1 view .LVU1281 1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3773 .loc 1 1872 23 is_stmt 0 view .LVU1282 3774 003c 114B ldr r3, .L262 3775 003e C362 str r3, [r0, #44] 1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3776 .loc 1 1873 5 is_stmt 1 view .LVU1283 1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3777 .loc 1 1873 23 is_stmt 0 view .LVU1284 3778 0040 114B ldr r3, .L262+4 3779 0042 4363 str r3, [r0, #52] 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3780 .loc 1 1876 5 is_stmt 1 view .LVU1285 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3781 .loc 1 1876 19 is_stmt 0 view .LVU1286 3782 0044 036A ldr r3, [r0, #32] 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3783 .loc 1 1876 8 view .LVU1287 3784 0046 B3F5003F cmp r3, #131072 3785 004a 08D0 beq .L261 3786 .LVL253: 3787 .L254: 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3788 .loc 1 1890 5 is_stmt 1 view .LVU1288 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3789 .loc 1 1890 5 view .LVU1289 3790 004c 0024 movs r4, #0 3791 004e 80F84040 strb r4, [r0, #64] 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3792 .loc 1 1890 5 view .LVU1290 1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3793 .loc 1 1900 5 view .LVU1291 3794 0052 48F20101 movw r1, #32769 3795 .LVL254: 1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3796 .loc 1 1900 5 is_stmt 0 view .LVU1292 3797 0056 FFF7FEFF bl I2C_Enable_IRQ 3798 .LVL255: 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3799 .loc 1 1902 5 is_stmt 1 view .LVU1293 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3800 .loc 1 1902 12 is_stmt 0 view .LVU1294 3801 005a 2046 mov r0, r4 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3802 .loc 1 1908 1 view .LVU1295 3803 005c 10BD pop {r4, pc} 3804 .LVL256: ARM GAS /tmp/ccclMPzv.s page 219 3805 .L261: 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3806 .loc 1 1880 7 is_stmt 1 view .LVU1296 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3807 .loc 1 1880 11 is_stmt 0 view .LVU1297 3808 005e 0368 ldr r3, [r0] 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3809 .loc 1 1880 30 view .LVU1298 3810 0060 0A78 ldrb r2, [r1] @ zero_extendqisi2 3811 .LVL257: 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3812 .loc 1 1880 28 view .LVU1299 3813 0062 9A62 str r2, [r3, #40] 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3814 .loc 1 1883 7 is_stmt 1 view .LVU1300 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3815 .loc 1 1883 11 is_stmt 0 view .LVU1301 3816 0064 436A ldr r3, [r0, #36] 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3817 .loc 1 1883 21 view .LVU1302 3818 0066 0133 adds r3, r3, #1 3819 0068 4362 str r3, [r0, #36] 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3820 .loc 1 1885 7 is_stmt 1 view .LVU1303 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3821 .loc 1 1885 11 is_stmt 0 view .LVU1304 3822 006a 438D ldrh r3, [r0, #42] 3823 006c 9BB2 uxth r3, r3 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 3824 .loc 1 1885 22 view .LVU1305 3825 006e 013B subs r3, r3, #1 3826 0070 9BB2 uxth r3, r3 3827 0072 4385 strh r3, [r0, #42] @ movhi 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3828 .loc 1 1886 7 is_stmt 1 view .LVU1306 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3829 .loc 1 1886 11 is_stmt 0 view .LVU1307 3830 0074 038D ldrh r3, [r0, #40] 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3831 .loc 1 1886 21 view .LVU1308 3832 0076 013B subs r3, r3, #1 3833 0078 0385 strh r3, [r0, #40] @ movhi 3834 007a E7E7 b .L254 3835 .LVL258: 3836 .L255: 3837 .LCFI44: 3838 .cfi_def_cfa_offset 0 3839 .cfi_restore 4 3840 .cfi_restore 14 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3841 .loc 1 1906 12 view .LVU1309 3842 007c 0220 movs r0, #2 3843 .LVL259: 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3844 .loc 1 1906 12 view .LVU1310 3845 007e 7047 bx lr 3846 .LVL260: ARM GAS /tmp/ccclMPzv.s page 220 3847 .L256: 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3848 .loc 1 1859 5 discriminator 1 view .LVU1311 3849 0080 0220 movs r0, #2 3850 .LVL261: 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3851 .loc 1 1908 1 view .LVU1312 3852 0082 7047 bx lr 3853 .L263: 3854 .align 2 3855 .L262: 3856 0084 0000FFFF .word -65536 3857 0088 00000000 .word I2C_Slave_ISR_IT 3858 .cfi_endproc 3859 .LFE339: 3861 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3862 .align 1 3863 .global HAL_I2C_Slave_Receive_IT 3864 .syntax unified 3865 .thumb 3866 .thumb_func 3868 HAL_I2C_Slave_Receive_IT: 3869 .LVL262: 3870 .LFB340: 1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3871 .loc 1 1919 1 is_stmt 1 view -0 3872 .cfi_startproc 3873 @ args = 0, pretend = 0, frame = 0 3874 @ frame_needed = 0, uses_anonymous_args = 0 1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3875 .loc 1 1919 1 is_stmt 0 view .LVU1314 3876 0000 38B5 push {r3, r4, r5, lr} 3877 .LCFI45: 3878 .cfi_def_cfa_offset 16 3879 .cfi_offset 3, -16 3880 .cfi_offset 4, -12 3881 .cfi_offset 5, -8 3882 .cfi_offset 14, -4 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3883 .loc 1 1920 3 is_stmt 1 view .LVU1315 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3884 .loc 1 1920 11 is_stmt 0 view .LVU1316 3885 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3886 0006 DBB2 uxtb r3, r3 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 3887 .loc 1 1920 6 view .LVU1317 3888 0008 202B cmp r3, #32 3889 000a 23D1 bne .L266 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3890 .loc 1 1923 5 is_stmt 1 view .LVU1318 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3891 .loc 1 1923 5 view .LVU1319 3892 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3893 0010 012B cmp r3, #1 3894 0012 21D0 beq .L267 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3895 .loc 1 1923 5 discriminator 2 view .LVU1320 ARM GAS /tmp/ccclMPzv.s page 221 3896 0014 0123 movs r3, #1 3897 0016 80F84030 strb r3, [r0, #64] 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3898 .loc 1 1923 5 discriminator 2 view .LVU1321 1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3899 .loc 1 1925 5 view .LVU1322 1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3900 .loc 1 1925 23 is_stmt 0 view .LVU1323 3901 001a 2223 movs r3, #34 3902 001c 80F84130 strb r3, [r0, #65] 1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3903 .loc 1 1926 5 is_stmt 1 view .LVU1324 1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3904 .loc 1 1926 23 is_stmt 0 view .LVU1325 3905 0020 2023 movs r3, #32 3906 0022 80F84230 strb r3, [r0, #66] 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3907 .loc 1 1927 5 is_stmt 1 view .LVU1326 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3908 .loc 1 1927 23 is_stmt 0 view .LVU1327 3909 0026 0024 movs r4, #0 3910 0028 4464 str r4, [r0, #68] 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3911 .loc 1 1930 5 is_stmt 1 view .LVU1328 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3912 .loc 1 1930 9 is_stmt 0 view .LVU1329 3913 002a 0568 ldr r5, [r0] 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3914 .loc 1 1930 19 view .LVU1330 3915 002c 6B68 ldr r3, [r5, #4] 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3916 .loc 1 1930 25 view .LVU1331 3917 002e 23F40043 bic r3, r3, #32768 3918 0032 6B60 str r3, [r5, #4] 1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3919 .loc 1 1933 5 is_stmt 1 view .LVU1332 1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 3920 .loc 1 1933 23 is_stmt 0 view .LVU1333 3921 0034 4162 str r1, [r0, #36] 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3922 .loc 1 1934 5 is_stmt 1 view .LVU1334 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3923 .loc 1 1934 23 is_stmt 0 view .LVU1335 3924 0036 4285 strh r2, [r0, #42] @ movhi 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3925 .loc 1 1935 5 is_stmt 1 view .LVU1336 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3926 .loc 1 1935 29 is_stmt 0 view .LVU1337 3927 0038 438D ldrh r3, [r0, #42] 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3928 .loc 1 1935 23 view .LVU1338 3929 003a 0385 strh r3, [r0, #40] @ movhi 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3930 .loc 1 1936 5 is_stmt 1 view .LVU1339 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3931 .loc 1 1936 23 is_stmt 0 view .LVU1340 3932 003c 074B ldr r3, .L269 ARM GAS /tmp/ccclMPzv.s page 222 3933 003e C362 str r3, [r0, #44] 1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3934 .loc 1 1937 5 is_stmt 1 view .LVU1341 1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3935 .loc 1 1937 23 is_stmt 0 view .LVU1342 3936 0040 074B ldr r3, .L269+4 3937 0042 4363 str r3, [r0, #52] 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3938 .loc 1 1940 5 is_stmt 1 view .LVU1343 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3939 .loc 1 1940 5 view .LVU1344 3940 0044 80F84040 strb r4, [r0, #64] 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3941 .loc 1 1940 5 view .LVU1345 1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3942 .loc 1 1950 5 view .LVU1346 3943 0048 48F20201 movw r1, #32770 3944 .LVL263: 1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3945 .loc 1 1950 5 is_stmt 0 view .LVU1347 3946 004c FFF7FEFF bl I2C_Enable_IRQ 3947 .LVL264: 1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3948 .loc 1 1952 5 is_stmt 1 view .LVU1348 1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3949 .loc 1 1952 12 is_stmt 0 view .LVU1349 3950 0050 2046 mov r0, r4 3951 .L265: 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3952 .loc 1 1958 1 view .LVU1350 3953 0052 38BD pop {r3, r4, r5, pc} 3954 .LVL265: 3955 .L266: 1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3956 .loc 1 1956 12 view .LVU1351 3957 0054 0220 movs r0, #2 3958 .LVL266: 1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 3959 .loc 1 1956 12 view .LVU1352 3960 0056 FCE7 b .L265 3961 .LVL267: 3962 .L267: 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3963 .loc 1 1923 5 discriminator 1 view .LVU1353 3964 0058 0220 movs r0, #2 3965 .LVL268: 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 3966 .loc 1 1923 5 discriminator 1 view .LVU1354 3967 005a FAE7 b .L265 3968 .L270: 3969 .align 2 3970 .L269: 3971 005c 0000FFFF .word -65536 3972 0060 00000000 .word I2C_Slave_ISR_IT 3973 .cfi_endproc 3974 .LFE340: 3976 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits ARM GAS /tmp/ccclMPzv.s page 223 3977 .align 1 3978 .global HAL_I2C_Master_Transmit_DMA 3979 .syntax unified 3980 .thumb 3981 .thumb_func 3983 HAL_I2C_Master_Transmit_DMA: 3984 .LVL269: 3985 .LFB341: 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3986 .loc 1 1972 1 is_stmt 1 view -0 3987 .cfi_startproc 3988 @ args = 0, pretend = 0, frame = 0 3989 @ frame_needed = 0, uses_anonymous_args = 0 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 3990 .loc 1 1972 1 is_stmt 0 view .LVU1356 3991 0000 70B5 push {r4, r5, r6, lr} 3992 .LCFI46: 3993 .cfi_def_cfa_offset 16 3994 .cfi_offset 4, -16 3995 .cfi_offset 5, -12 3996 .cfi_offset 6, -8 3997 .cfi_offset 14, -4 3998 0002 82B0 sub sp, sp, #8 3999 .LCFI47: 4000 .cfi_def_cfa_offset 24 4001 0004 0446 mov r4, r0 1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4002 .loc 1 1973 3 is_stmt 1 view .LVU1357 1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 4003 .loc 1 1974 3 view .LVU1358 1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4004 .loc 1 1975 3 view .LVU1359 4005 .LVL270: 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4006 .loc 1 1977 3 view .LVU1360 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4007 .loc 1 1977 11 is_stmt 0 view .LVU1361 4008 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4009 .LVL271: 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4010 .loc 1 1977 11 view .LVU1362 4011 000a C0B2 uxtb r0, r0 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4012 .loc 1 1977 6 view .LVU1363 4013 000c 2028 cmp r0, #32 4014 000e 40F09D80 bne .L281 4015 0012 0D46 mov r5, r1 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4016 .loc 1 1979 5 is_stmt 1 view .LVU1364 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4017 .loc 1 1979 9 is_stmt 0 view .LVU1365 4018 0014 2068 ldr r0, [r4] 4019 0016 8169 ldr r1, [r0, #24] 4020 .LVL272: 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4021 .loc 1 1979 8 view .LVU1366 4022 0018 11F40041 ands r1, r1, #32768 ARM GAS /tmp/ccclMPzv.s page 224 4023 001c 40F09980 bne .L282 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4024 .loc 1 1985 5 is_stmt 1 view .LVU1367 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4025 .loc 1 1985 5 view .LVU1368 4026 0020 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 4027 0024 012E cmp r6, #1 4028 0026 00F09680 beq .L283 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4029 .loc 1 1985 5 discriminator 2 view .LVU1369 4030 002a 0126 movs r6, #1 4031 002c 84F84060 strb r6, [r4, #64] 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4032 .loc 1 1985 5 discriminator 2 view .LVU1370 1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4033 .loc 1 1987 5 view .LVU1371 1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4034 .loc 1 1987 23 is_stmt 0 view .LVU1372 4035 0030 2126 movs r6, #33 4036 0032 84F84160 strb r6, [r4, #65] 1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4037 .loc 1 1988 5 is_stmt 1 view .LVU1373 1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4038 .loc 1 1988 23 is_stmt 0 view .LVU1374 4039 0036 1026 movs r6, #16 4040 0038 84F84260 strb r6, [r4, #66] 1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4041 .loc 1 1989 5 is_stmt 1 view .LVU1375 1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4042 .loc 1 1989 23 is_stmt 0 view .LVU1376 4043 003c 0026 movs r6, #0 4044 003e 6664 str r6, [r4, #68] 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4045 .loc 1 1992 5 is_stmt 1 view .LVU1377 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4046 .loc 1 1992 23 is_stmt 0 view .LVU1378 4047 0040 6262 str r2, [r4, #36] 1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4048 .loc 1 1993 5 is_stmt 1 view .LVU1379 1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4049 .loc 1 1993 23 is_stmt 0 view .LVU1380 4050 0042 6385 strh r3, [r4, #42] @ movhi 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4051 .loc 1 1994 5 is_stmt 1 view .LVU1381 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4052 .loc 1 1994 23 is_stmt 0 view .LVU1382 4053 0044 454B ldr r3, .L287 4054 .LVL273: 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4055 .loc 1 1994 23 view .LVU1383 4056 0046 E362 str r3, [r4, #44] 4057 .LVL274: 1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4058 .loc 1 1995 5 is_stmt 1 view .LVU1384 1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4059 .loc 1 1995 23 is_stmt 0 view .LVU1385 4060 0048 454B ldr r3, .L287+4 ARM GAS /tmp/ccclMPzv.s page 225 4061 004a 6363 str r3, [r4, #52] 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4062 .loc 1 1997 5 is_stmt 1 view .LVU1386 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4063 .loc 1 1997 13 is_stmt 0 view .LVU1387 4064 004c 638D ldrh r3, [r4, #42] 4065 004e 9BB2 uxth r3, r3 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4066 .loc 1 1997 8 view .LVU1388 4067 0050 FF2B cmp r3, #255 4068 0052 37D9 bls .L273 1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4069 .loc 1 1999 7 is_stmt 1 view .LVU1389 1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4070 .loc 1 1999 22 is_stmt 0 view .LVU1390 4071 0054 FF23 movs r3, #255 4072 0056 2385 strh r3, [r4, #40] @ movhi 2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4073 .loc 1 2000 7 is_stmt 1 view .LVU1391 4074 .LVL275: 2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4075 .loc 1 2000 16 is_stmt 0 view .LVU1392 4076 0058 4FF08076 mov r6, #16777216 4077 .LVL276: 4078 .L274: 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4079 .loc 1 2008 5 is_stmt 1 view .LVU1393 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4080 .loc 1 2008 13 is_stmt 0 view .LVU1394 4081 005c 238D ldrh r3, [r4, #40] 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4082 .loc 1 2008 8 view .LVU1395 4083 005e 63B1 cbz r3, .L275 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4084 .loc 1 2012 7 is_stmt 1 view .LVU1396 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4085 .loc 1 2012 30 is_stmt 0 view .LVU1397 4086 0060 1378 ldrb r3, [r2] @ zero_extendqisi2 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4087 .loc 1 2012 28 view .LVU1398 4088 0062 8362 str r3, [r0, #40] 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4089 .loc 1 2015 7 is_stmt 1 view .LVU1399 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4090 .loc 1 2015 11 is_stmt 0 view .LVU1400 4091 0064 636A ldr r3, [r4, #36] 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4092 .loc 1 2015 21 view .LVU1401 4093 0066 0133 adds r3, r3, #1 4094 0068 6362 str r3, [r4, #36] 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4095 .loc 1 2017 7 is_stmt 1 view .LVU1402 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 4096 .loc 1 2017 24 is_stmt 0 view .LVU1403 4097 006a 218D ldrh r1, [r4, #40] 4098 .LVL277: 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/ccclMPzv.s page 226 4099 .loc 1 2018 7 is_stmt 1 view .LVU1404 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4100 .loc 1 2018 11 is_stmt 0 view .LVU1405 4101 006c 638D ldrh r3, [r4, #42] 4102 006e 9BB2 uxth r3, r3 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4103 .loc 1 2018 22 view .LVU1406 4104 0070 013B subs r3, r3, #1 4105 0072 9BB2 uxth r3, r3 4106 0074 6385 strh r3, [r4, #42] @ movhi 2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4107 .loc 1 2019 7 is_stmt 1 view .LVU1407 2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4108 .loc 1 2019 21 is_stmt 0 view .LVU1408 4109 0076 4B1E subs r3, r1, #1 4110 0078 2385 strh r3, [r4, #40] @ movhi 4111 .LVL278: 4112 .L275: 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4113 .loc 1 2022 5 is_stmt 1 view .LVU1409 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4114 .loc 1 2022 13 is_stmt 0 view .LVU1410 4115 007a 238D ldrh r3, [r4, #40] 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4116 .loc 1 2022 8 view .LVU1411 4117 007c 002B cmp r3, #0 4118 007e 51D0 beq .L276 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4119 .loc 1 2024 7 is_stmt 1 view .LVU1412 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4120 .loc 1 2024 15 is_stmt 0 view .LVU1413 4121 0080 A36B ldr r3, [r4, #56] 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4122 .loc 1 2024 10 view .LVU1414 4123 0082 23B3 cbz r3, .L277 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4124 .loc 1 2027 9 is_stmt 1 view .LVU1415 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4125 .loc 1 2027 40 is_stmt 0 view .LVU1416 4126 0084 374A ldr r2, .L287+8 4127 .LVL279: 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4128 .loc 1 2027 40 view .LVU1417 4129 0086 DA62 str r2, [r3, #44] 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4130 .loc 1 2030 9 is_stmt 1 view .LVU1418 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4131 .loc 1 2030 13 is_stmt 0 view .LVU1419 4132 0088 A36B ldr r3, [r4, #56] 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4133 .loc 1 2030 41 view .LVU1420 4134 008a 374A ldr r2, .L287+12 4135 008c 5A63 str r2, [r3, #52] 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4136 .loc 1 2033 9 is_stmt 1 view .LVU1421 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4137 .loc 1 2033 13 is_stmt 0 view .LVU1422 ARM GAS /tmp/ccclMPzv.s page 227 4138 008e A26B ldr r2, [r4, #56] 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4139 .loc 1 2033 44 view .LVU1423 4140 0090 0023 movs r3, #0 4141 0092 1363 str r3, [r2, #48] 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4142 .loc 1 2034 9 is_stmt 1 view .LVU1424 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4143 .loc 1 2034 13 is_stmt 0 view .LVU1425 4144 0094 A26B ldr r2, [r4, #56] 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4145 .loc 1 2034 41 view .LVU1426 4146 0096 9363 str r3, [r2, #56] 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4147 .loc 1 2037 9 is_stmt 1 view .LVU1427 2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4148 .loc 1 2038 57 is_stmt 0 view .LVU1428 4149 0098 2268 ldr r2, [r4] 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4150 .loc 1 2037 25 view .LVU1429 4151 009a 238D ldrh r3, [r4, #40] 4152 009c 2832 adds r2, r2, #40 4153 009e 616A ldr r1, [r4, #36] 4154 .LVL280: 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4155 .loc 1 2037 25 view .LVU1430 4156 00a0 A06B ldr r0, [r4, #56] 4157 00a2 FFF7FEFF bl HAL_DMA_Start_IT 4158 .LVL281: 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4159 .loc 1 2055 7 is_stmt 1 view .LVU1431 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4160 .loc 1 2055 10 is_stmt 0 view .LVU1432 4161 00a6 00B3 cbz r0, .L286 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4162 .loc 1 2080 9 is_stmt 1 view .LVU1433 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4163 .loc 1 2080 25 is_stmt 0 view .LVU1434 4164 00a8 2023 movs r3, #32 4165 00aa 84F84130 strb r3, [r4, #65] 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4166 .loc 1 2081 9 is_stmt 1 view .LVU1435 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4167 .loc 1 2081 25 is_stmt 0 view .LVU1436 4168 00ae 0022 movs r2, #0 4169 00b0 84F84220 strb r2, [r4, #66] 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4170 .loc 1 2084 9 is_stmt 1 view .LVU1437 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4171 .loc 1 2084 13 is_stmt 0 view .LVU1438 4172 00b4 636C ldr r3, [r4, #68] 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4173 .loc 1 2084 25 view .LVU1439 4174 00b6 43F01003 orr r3, r3, #16 4175 00ba 6364 str r3, [r4, #68] 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4176 .loc 1 2087 9 is_stmt 1 view .LVU1440 ARM GAS /tmp/ccclMPzv.s page 228 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4177 .loc 1 2087 9 view .LVU1441 4178 00bc 84F84020 strb r2, [r4, #64] 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4179 .loc 1 2087 9 view .LVU1442 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4180 .loc 1 2089 9 view .LVU1443 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4181 .loc 1 2089 16 is_stmt 0 view .LVU1444 4182 00c0 0120 movs r0, #1 4183 .LVL282: 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4184 .loc 1 2089 16 view .LVU1445 4185 00c2 44E0 b .L272 4186 .LVL283: 4187 .L273: 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4188 .loc 1 2004 7 is_stmt 1 view .LVU1446 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4189 .loc 1 2004 28 is_stmt 0 view .LVU1447 4190 00c4 638D ldrh r3, [r4, #42] 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4191 .loc 1 2004 22 view .LVU1448 4192 00c6 2385 strh r3, [r4, #40] @ movhi 2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4193 .loc 1 2005 7 is_stmt 1 view .LVU1449 4194 .LVL284: 2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4195 .loc 1 2005 16 is_stmt 0 view .LVU1450 4196 00c8 4FF00076 mov r6, #33554432 4197 00cc C6E7 b .L274 4198 .LVL285: 4199 .L277: 2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4200 .loc 1 2043 9 is_stmt 1 view .LVU1451 2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4201 .loc 1 2043 25 is_stmt 0 view .LVU1452 4202 00ce 2023 movs r3, #32 4203 00d0 84F84130 strb r3, [r4, #65] 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4204 .loc 1 2044 9 is_stmt 1 view .LVU1453 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4205 .loc 1 2044 25 is_stmt 0 view .LVU1454 4206 00d4 0022 movs r2, #0 4207 .LVL286: 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4208 .loc 1 2044 25 view .LVU1455 4209 00d6 84F84220 strb r2, [r4, #66] 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4210 .loc 1 2047 9 is_stmt 1 view .LVU1456 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4211 .loc 1 2047 13 is_stmt 0 view .LVU1457 4212 00da 636C ldr r3, [r4, #68] 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4213 .loc 1 2047 25 view .LVU1458 4214 00dc 43F08003 orr r3, r3, #128 4215 00e0 6364 str r3, [r4, #68] ARM GAS /tmp/ccclMPzv.s page 229 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4216 .loc 1 2050 9 is_stmt 1 view .LVU1459 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4217 .loc 1 2050 9 view .LVU1460 4218 00e2 84F84020 strb r2, [r4, #64] 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4219 .loc 1 2050 9 view .LVU1461 2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4220 .loc 1 2052 9 view .LVU1462 2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4221 .loc 1 2052 16 is_stmt 0 view .LVU1463 4222 00e6 0120 movs r0, #1 4223 00e8 31E0 b .L272 4224 .LVL287: 4225 .L286: 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4226 .loc 1 2059 9 is_stmt 1 view .LVU1464 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4227 .loc 1 2059 60 is_stmt 0 view .LVU1465 4228 00ea 228D ldrh r2, [r4, #40] 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4229 .loc 1 2059 9 view .LVU1466 4230 00ec 0132 adds r2, r2, #1 4231 00ee 1F4B ldr r3, .L287+16 4232 00f0 0093 str r3, [sp] 4233 00f2 3346 mov r3, r6 4234 00f4 D2B2 uxtb r2, r2 4235 00f6 2946 mov r1, r5 4236 00f8 2046 mov r0, r4 4237 .LVL288: 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4238 .loc 1 2059 9 view .LVU1467 4239 00fa FFF7FEFF bl I2C_TransferConfig 4240 .LVL289: 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4241 .loc 1 2063 9 is_stmt 1 view .LVU1468 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4242 .loc 1 2063 13 is_stmt 0 view .LVU1469 4243 00fe 638D ldrh r3, [r4, #42] 4244 0100 9BB2 uxth r3, r3 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4245 .loc 1 2063 32 view .LVU1470 4246 0102 228D ldrh r2, [r4, #40] 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4247 .loc 1 2063 25 view .LVU1471 4248 0104 9B1A subs r3, r3, r2 4249 0106 9BB2 uxth r3, r3 4250 0108 6385 strh r3, [r4, #42] @ movhi 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4251 .loc 1 2066 9 is_stmt 1 view .LVU1472 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4252 .loc 1 2066 9 view .LVU1473 4253 010a 0023 movs r3, #0 4254 010c 84F84030 strb r3, [r4, #64] 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4255 .loc 1 2066 9 view .LVU1474 2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 230 4256 .loc 1 2072 9 view .LVU1475 4257 0110 1021 movs r1, #16 4258 0112 2046 mov r0, r4 4259 0114 FFF7FEFF bl I2C_Enable_IRQ 4260 .LVL290: 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4261 .loc 1 2075 9 view .LVU1476 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4262 .loc 1 2075 13 is_stmt 0 view .LVU1477 4263 0118 2268 ldr r2, [r4] 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4264 .loc 1 2075 23 view .LVU1478 4265 011a 1368 ldr r3, [r2] 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4266 .loc 1 2075 29 view .LVU1479 4267 011c 43F48043 orr r3, r3, #16384 4268 0120 1360 str r3, [r2] 4269 0122 11E0 b .L280 4270 .LVL291: 4271 .L276: 2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4272 .loc 1 2095 7 is_stmt 1 view .LVU1480 2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4273 .loc 1 2095 21 is_stmt 0 view .LVU1481 4274 0124 124B ldr r3, .L287+20 4275 0126 6363 str r3, [r4, #52] 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4276 .loc 1 2099 7 is_stmt 1 view .LVU1482 4277 0128 104B ldr r3, .L287+16 4278 012a 0093 str r3, [sp] 4279 012c 4FF00073 mov r3, #33554432 4280 0130 CAB2 uxtb r2, r1 4281 .LVL292: 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4282 .loc 1 2099 7 is_stmt 0 view .LVU1483 4283 0132 2946 mov r1, r5 4284 .LVL293: 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4285 .loc 1 2099 7 view .LVU1484 4286 0134 2046 mov r0, r4 4287 0136 FFF7FEFF bl I2C_TransferConfig 4288 .LVL294: 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4289 .loc 1 2103 7 is_stmt 1 view .LVU1485 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4290 .loc 1 2103 7 view .LVU1486 4291 013a 0023 movs r3, #0 4292 013c 84F84030 strb r3, [r4, #64] 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4293 .loc 1 2103 7 view .LVU1487 2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4294 .loc 1 2112 7 view .LVU1488 4295 0140 0121 movs r1, #1 4296 0142 2046 mov r0, r4 4297 0144 FFF7FEFF bl I2C_Enable_IRQ 4298 .LVL295: 4299 .L280: ARM GAS /tmp/ccclMPzv.s page 231 2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4300 .loc 1 2115 5 view .LVU1489 2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4301 .loc 1 2115 12 is_stmt 0 view .LVU1490 4302 0148 0020 movs r0, #0 4303 014a 00E0 b .L272 4304 .LVL296: 4305 .L281: 2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4306 .loc 1 2119 12 view .LVU1491 4307 014c 0220 movs r0, #2 4308 .LVL297: 4309 .L272: 2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4310 .loc 1 2121 1 view .LVU1492 4311 014e 02B0 add sp, sp, #8 4312 .LCFI48: 4313 .cfi_remember_state 4314 .cfi_def_cfa_offset 16 4315 @ sp needed 4316 0150 70BD pop {r4, r5, r6, pc} 4317 .LVL298: 4318 .L282: 4319 .LCFI49: 4320 .cfi_restore_state 1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4321 .loc 1 1981 14 view .LVU1493 4322 0152 0220 movs r0, #2 4323 0154 FBE7 b .L272 4324 .L283: 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4325 .loc 1 1985 5 discriminator 1 view .LVU1494 4326 0156 0220 movs r0, #2 4327 0158 F9E7 b .L272 4328 .L288: 4329 015a 00BF .align 2 4330 .L287: 4331 015c 0000FFFF .word -65536 4332 0160 00000000 .word I2C_Master_ISR_DMA 4333 0164 00000000 .word I2C_DMAMasterTransmitCplt 4334 0168 00000000 .word I2C_DMAError 4335 016c 00200080 .word -2147475456 4336 0170 00000000 .word I2C_Master_ISR_IT 4337 .cfi_endproc 4338 .LFE341: 4340 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4341 .align 1 4342 .global HAL_I2C_Master_Receive_DMA 4343 .syntax unified 4344 .thumb 4345 .thumb_func 4347 HAL_I2C_Master_Receive_DMA: 4348 .LVL299: 4349 .LFB342: 2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 4350 .loc 1 2135 1 is_stmt 1 view -0 4351 .cfi_startproc ARM GAS /tmp/ccclMPzv.s page 232 4352 @ args = 0, pretend = 0, frame = 0 4353 @ frame_needed = 0, uses_anonymous_args = 0 2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 4354 .loc 1 2135 1 is_stmt 0 view .LVU1496 4355 0000 70B5 push {r4, r5, r6, lr} 4356 .LCFI50: 4357 .cfi_def_cfa_offset 16 4358 .cfi_offset 4, -16 4359 .cfi_offset 5, -12 4360 .cfi_offset 6, -8 4361 .cfi_offset 14, -4 4362 0002 82B0 sub sp, sp, #8 4363 .LCFI51: 4364 .cfi_def_cfa_offset 24 4365 0004 0446 mov r4, r0 2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4366 .loc 1 2136 3 is_stmt 1 view .LVU1497 2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4367 .loc 1 2137 3 view .LVU1498 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4368 .loc 1 2139 3 view .LVU1499 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4369 .loc 1 2139 11 is_stmt 0 view .LVU1500 4370 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4371 .LVL300: 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4372 .loc 1 2139 11 view .LVU1501 4373 000a C0B2 uxtb r0, r0 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4374 .loc 1 2139 6 view .LVU1502 4375 000c 2028 cmp r0, #32 4376 000e 40F08C80 bne .L298 4377 0012 0D46 mov r5, r1 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4378 .loc 1 2141 5 is_stmt 1 view .LVU1503 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4379 .loc 1 2141 9 is_stmt 0 view .LVU1504 4380 0014 2168 ldr r1, [r4] 4381 .LVL301: 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4382 .loc 1 2141 9 view .LVU1505 4383 0016 8969 ldr r1, [r1, #24] 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4384 .loc 1 2141 8 view .LVU1506 4385 0018 11F4004F tst r1, #32768 4386 001c 40F08880 bne .L299 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4387 .loc 1 2147 5 is_stmt 1 view .LVU1507 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4388 .loc 1 2147 5 view .LVU1508 4389 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 4390 0024 0129 cmp r1, #1 4391 0026 00F08580 beq .L300 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4392 .loc 1 2147 5 discriminator 2 view .LVU1509 4393 002a 0121 movs r1, #1 4394 002c 84F84010 strb r1, [r4, #64] ARM GAS /tmp/ccclMPzv.s page 233 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4395 .loc 1 2147 5 discriminator 2 view .LVU1510 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4396 .loc 1 2149 5 view .LVU1511 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4397 .loc 1 2149 23 is_stmt 0 view .LVU1512 4398 0030 2221 movs r1, #34 4399 0032 84F84110 strb r1, [r4, #65] 2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4400 .loc 1 2150 5 is_stmt 1 view .LVU1513 2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4401 .loc 1 2150 23 is_stmt 0 view .LVU1514 4402 0036 1021 movs r1, #16 4403 0038 84F84210 strb r1, [r4, #66] 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4404 .loc 1 2151 5 is_stmt 1 view .LVU1515 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4405 .loc 1 2151 23 is_stmt 0 view .LVU1516 4406 003c 0021 movs r1, #0 4407 003e 6164 str r1, [r4, #68] 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4408 .loc 1 2154 5 is_stmt 1 view .LVU1517 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4409 .loc 1 2154 23 is_stmt 0 view .LVU1518 4410 0040 6262 str r2, [r4, #36] 2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4411 .loc 1 2155 5 is_stmt 1 view .LVU1519 2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4412 .loc 1 2155 23 is_stmt 0 view .LVU1520 4413 0042 6385 strh r3, [r4, #42] @ movhi 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4414 .loc 1 2156 5 is_stmt 1 view .LVU1521 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4415 .loc 1 2156 23 is_stmt 0 view .LVU1522 4416 0044 3C4B ldr r3, .L304 4417 .LVL302: 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4418 .loc 1 2156 23 view .LVU1523 4419 0046 E362 str r3, [r4, #44] 4420 .LVL303: 2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4421 .loc 1 2157 5 is_stmt 1 view .LVU1524 2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4422 .loc 1 2157 23 is_stmt 0 view .LVU1525 4423 0048 3C4B ldr r3, .L304+4 4424 004a 6363 str r3, [r4, #52] 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4425 .loc 1 2159 5 is_stmt 1 view .LVU1526 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4426 .loc 1 2159 13 is_stmt 0 view .LVU1527 4427 004c 638D ldrh r3, [r4, #42] 4428 004e 9BB2 uxth r3, r3 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4429 .loc 1 2159 8 view .LVU1528 4430 0050 FF2B cmp r3, #255 4431 0052 27D9 bls .L291 2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS /tmp/ccclMPzv.s page 234 4432 .loc 1 2161 7 is_stmt 1 view .LVU1529 2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4433 .loc 1 2161 22 is_stmt 0 view .LVU1530 4434 0054 FF23 movs r3, #255 4435 0056 2385 strh r3, [r4, #40] @ movhi 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4436 .loc 1 2162 7 is_stmt 1 view .LVU1531 4437 .LVL304: 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4438 .loc 1 2162 16 is_stmt 0 view .LVU1532 4439 0058 4FF08076 mov r6, #16777216 4440 .LVL305: 4441 .L292: 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4442 .loc 1 2170 5 is_stmt 1 view .LVU1533 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4443 .loc 1 2170 13 is_stmt 0 view .LVU1534 4444 005c 218D ldrh r1, [r4, #40] 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4445 .loc 1 2170 8 view .LVU1535 4446 005e 0029 cmp r1, #0 4447 0060 4FD0 beq .L293 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4448 .loc 1 2172 7 is_stmt 1 view .LVU1536 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4449 .loc 1 2172 15 is_stmt 0 view .LVU1537 4450 0062 E36B ldr r3, [r4, #60] 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4451 .loc 1 2172 10 view .LVU1538 4452 0064 1BB3 cbz r3, .L294 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4453 .loc 1 2175 9 is_stmt 1 view .LVU1539 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4454 .loc 1 2175 40 is_stmt 0 view .LVU1540 4455 0066 3649 ldr r1, .L304+8 4456 0068 D962 str r1, [r3, #44] 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4457 .loc 1 2178 9 is_stmt 1 view .LVU1541 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4458 .loc 1 2178 13 is_stmt 0 view .LVU1542 4459 006a E36B ldr r3, [r4, #60] 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4460 .loc 1 2178 41 view .LVU1543 4461 006c 3549 ldr r1, .L304+12 4462 006e 5963 str r1, [r3, #52] 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4463 .loc 1 2181 9 is_stmt 1 view .LVU1544 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4464 .loc 1 2181 13 is_stmt 0 view .LVU1545 4465 0070 E16B ldr r1, [r4, #60] 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4466 .loc 1 2181 44 view .LVU1546 4467 0072 0023 movs r3, #0 4468 0074 0B63 str r3, [r1, #48] 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4469 .loc 1 2182 9 is_stmt 1 view .LVU1547 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 235 4470 .loc 1 2182 13 is_stmt 0 view .LVU1548 4471 0076 E16B ldr r1, [r4, #60] 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4472 .loc 1 2182 41 view .LVU1549 4473 0078 8B63 str r3, [r1, #56] 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4474 .loc 1 2185 9 is_stmt 1 view .LVU1550 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4475 .loc 1 2185 71 is_stmt 0 view .LVU1551 4476 007a 2168 ldr r1, [r4] 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4477 .loc 1 2185 25 view .LVU1552 4478 007c 238D ldrh r3, [r4, #40] 4479 007e 2431 adds r1, r1, #36 4480 0080 E06B ldr r0, [r4, #60] 4481 0082 FFF7FEFF bl HAL_DMA_Start_IT 4482 .LVL306: 2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4483 .loc 1 2203 7 is_stmt 1 view .LVU1553 2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4484 .loc 1 2203 10 is_stmt 0 view .LVU1554 4485 0086 00B3 cbz r0, .L303 2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4486 .loc 1 2227 9 is_stmt 1 view .LVU1555 2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4487 .loc 1 2227 25 is_stmt 0 view .LVU1556 4488 0088 2023 movs r3, #32 4489 008a 84F84130 strb r3, [r4, #65] 2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4490 .loc 1 2228 9 is_stmt 1 view .LVU1557 2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4491 .loc 1 2228 25 is_stmt 0 view .LVU1558 4492 008e 0022 movs r2, #0 4493 0090 84F84220 strb r2, [r4, #66] 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4494 .loc 1 2231 9 is_stmt 1 view .LVU1559 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4495 .loc 1 2231 13 is_stmt 0 view .LVU1560 4496 0094 636C ldr r3, [r4, #68] 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4497 .loc 1 2231 25 view .LVU1561 4498 0096 43F01003 orr r3, r3, #16 4499 009a 6364 str r3, [r4, #68] 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4500 .loc 1 2234 9 is_stmt 1 view .LVU1562 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4501 .loc 1 2234 9 view .LVU1563 4502 009c 84F84020 strb r2, [r4, #64] 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4503 .loc 1 2234 9 view .LVU1564 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4504 .loc 1 2236 9 view .LVU1565 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4505 .loc 1 2236 16 is_stmt 0 view .LVU1566 4506 00a0 0120 movs r0, #1 4507 .LVL307: 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 236 4508 .loc 1 2236 16 view .LVU1567 4509 00a2 43E0 b .L290 4510 .LVL308: 4511 .L291: 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4512 .loc 1 2166 7 is_stmt 1 view .LVU1568 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4513 .loc 1 2166 28 is_stmt 0 view .LVU1569 4514 00a4 638D ldrh r3, [r4, #42] 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4515 .loc 1 2166 22 view .LVU1570 4516 00a6 2385 strh r3, [r4, #40] @ movhi 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4517 .loc 1 2167 7 is_stmt 1 view .LVU1571 4518 .LVL309: 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4519 .loc 1 2167 16 is_stmt 0 view .LVU1572 4520 00a8 4FF00076 mov r6, #33554432 4521 00ac D6E7 b .L292 4522 .LVL310: 4523 .L294: 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4524 .loc 1 2191 9 is_stmt 1 view .LVU1573 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4525 .loc 1 2191 25 is_stmt 0 view .LVU1574 4526 00ae 2023 movs r3, #32 4527 00b0 84F84130 strb r3, [r4, #65] 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4528 .loc 1 2192 9 is_stmt 1 view .LVU1575 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4529 .loc 1 2192 25 is_stmt 0 view .LVU1576 4530 00b4 0022 movs r2, #0 4531 .LVL311: 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4532 .loc 1 2192 25 view .LVU1577 4533 00b6 84F84220 strb r2, [r4, #66] 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4534 .loc 1 2195 9 is_stmt 1 view .LVU1578 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4535 .loc 1 2195 13 is_stmt 0 view .LVU1579 4536 00ba 636C ldr r3, [r4, #68] 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4537 .loc 1 2195 25 view .LVU1580 4538 00bc 43F08003 orr r3, r3, #128 4539 00c0 6364 str r3, [r4, #68] 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4540 .loc 1 2198 9 is_stmt 1 view .LVU1581 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4541 .loc 1 2198 9 view .LVU1582 4542 00c2 84F84020 strb r2, [r4, #64] 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4543 .loc 1 2198 9 view .LVU1583 2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4544 .loc 1 2200 9 view .LVU1584 2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4545 .loc 1 2200 16 is_stmt 0 view .LVU1585 4546 00c6 0120 movs r0, #1 ARM GAS /tmp/ccclMPzv.s page 237 4547 00c8 30E0 b .L290 4548 .LVL312: 4549 .L303: 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4550 .loc 1 2207 9 is_stmt 1 view .LVU1586 4551 00ca 1F4B ldr r3, .L304+16 4552 00cc 0093 str r3, [sp] 4553 00ce 3346 mov r3, r6 4554 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 4555 00d4 2946 mov r1, r5 4556 00d6 2046 mov r0, r4 4557 .LVL313: 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4558 .loc 1 2207 9 is_stmt 0 view .LVU1587 4559 00d8 FFF7FEFF bl I2C_TransferConfig 4560 .LVL314: 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4561 .loc 1 2210 9 is_stmt 1 view .LVU1588 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4562 .loc 1 2210 13 is_stmt 0 view .LVU1589 4563 00dc 638D ldrh r3, [r4, #42] 4564 00de 9BB2 uxth r3, r3 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4565 .loc 1 2210 32 view .LVU1590 4566 00e0 228D ldrh r2, [r4, #40] 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4567 .loc 1 2210 25 view .LVU1591 4568 00e2 9B1A subs r3, r3, r2 4569 00e4 9BB2 uxth r3, r3 4570 00e6 6385 strh r3, [r4, #42] @ movhi 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4571 .loc 1 2213 9 is_stmt 1 view .LVU1592 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4572 .loc 1 2213 9 view .LVU1593 4573 00e8 0023 movs r3, #0 4574 00ea 84F84030 strb r3, [r4, #64] 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4575 .loc 1 2213 9 view .LVU1594 2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4576 .loc 1 2219 9 view .LVU1595 4577 00ee 1021 movs r1, #16 4578 00f0 2046 mov r0, r4 4579 00f2 FFF7FEFF bl I2C_Enable_IRQ 4580 .LVL315: 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4581 .loc 1 2222 9 view .LVU1596 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4582 .loc 1 2222 13 is_stmt 0 view .LVU1597 4583 00f6 2268 ldr r2, [r4] 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4584 .loc 1 2222 23 view .LVU1598 4585 00f8 1368 ldr r3, [r2] 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4586 .loc 1 2222 29 view .LVU1599 4587 00fa 43F40043 orr r3, r3, #32768 4588 00fe 1360 str r3, [r2] 4589 0100 11E0 b .L297 ARM GAS /tmp/ccclMPzv.s page 238 4590 .LVL316: 4591 .L293: 2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4592 .loc 1 2242 7 is_stmt 1 view .LVU1600 2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4593 .loc 1 2242 21 is_stmt 0 view .LVU1601 4594 0102 124B ldr r3, .L304+20 4595 0104 6363 str r3, [r4, #52] 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4596 .loc 1 2246 7 is_stmt 1 view .LVU1602 4597 0106 104B ldr r3, .L304+16 4598 0108 0093 str r3, [sp] 4599 010a 4FF00073 mov r3, #33554432 4600 010e CAB2 uxtb r2, r1 4601 .LVL317: 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4602 .loc 1 2246 7 is_stmt 0 view .LVU1603 4603 0110 2946 mov r1, r5 4604 0112 2046 mov r0, r4 4605 0114 FFF7FEFF bl I2C_TransferConfig 4606 .LVL318: 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4607 .loc 1 2250 7 is_stmt 1 view .LVU1604 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4608 .loc 1 2250 7 view .LVU1605 4609 0118 0023 movs r3, #0 4610 011a 84F84030 strb r3, [r4, #64] 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4611 .loc 1 2250 7 view .LVU1606 2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4612 .loc 1 2259 7 view .LVU1607 4613 011e 0221 movs r1, #2 4614 0120 2046 mov r0, r4 4615 0122 FFF7FEFF bl I2C_Enable_IRQ 4616 .LVL319: 4617 .L297: 2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4618 .loc 1 2262 5 view .LVU1608 2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4619 .loc 1 2262 12 is_stmt 0 view .LVU1609 4620 0126 0020 movs r0, #0 4621 0128 00E0 b .L290 4622 .LVL320: 4623 .L298: 2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4624 .loc 1 2266 12 view .LVU1610 4625 012a 0220 movs r0, #2 4626 .LVL321: 4627 .L290: 2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4628 .loc 1 2268 1 view .LVU1611 4629 012c 02B0 add sp, sp, #8 4630 .LCFI52: 4631 .cfi_remember_state 4632 .cfi_def_cfa_offset 16 4633 @ sp needed 4634 012e 70BD pop {r4, r5, r6, pc} ARM GAS /tmp/ccclMPzv.s page 239 4635 .LVL322: 4636 .L299: 4637 .LCFI53: 4638 .cfi_restore_state 2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4639 .loc 1 2143 14 view .LVU1612 4640 0130 0220 movs r0, #2 4641 0132 FBE7 b .L290 4642 .L300: 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4643 .loc 1 2147 5 discriminator 1 view .LVU1613 4644 0134 0220 movs r0, #2 4645 0136 F9E7 b .L290 4646 .L305: 4647 .align 2 4648 .L304: 4649 0138 0000FFFF .word -65536 4650 013c 00000000 .word I2C_Master_ISR_DMA 4651 0140 00000000 .word I2C_DMAMasterReceiveCplt 4652 0144 00000000 .word I2C_DMAError 4653 0148 00240080 .word -2147474432 4654 014c 00000000 .word I2C_Master_ISR_IT 4655 .cfi_endproc 4656 .LFE342: 4658 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4659 .align 1 4660 .global HAL_I2C_Slave_Transmit_DMA 4661 .syntax unified 4662 .thumb 4663 .thumb_func 4665 HAL_I2C_Slave_Transmit_DMA: 4666 .LVL323: 4667 .LFB343: 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4668 .loc 1 2279 1 is_stmt 1 view -0 4669 .cfi_startproc 4670 @ args = 0, pretend = 0, frame = 0 4671 @ frame_needed = 0, uses_anonymous_args = 0 2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4672 .loc 1 2280 3 view .LVU1615 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4673 .loc 1 2282 3 view .LVU1616 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4674 .loc 1 2282 11 is_stmt 0 view .LVU1617 4675 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4676 0004 DBB2 uxtb r3, r3 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4677 .loc 1 2282 6 view .LVU1618 4678 0006 202B cmp r3, #32 4679 0008 40F08D80 bne .L316 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4680 .loc 1 2279 1 view .LVU1619 4681 000c 10B5 push {r4, lr} 4682 .LCFI54: 4683 .cfi_def_cfa_offset 8 4684 .cfi_offset 4, -8 4685 .cfi_offset 14, -4 ARM GAS /tmp/ccclMPzv.s page 240 4686 000e 0446 mov r4, r0 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4687 .loc 1 2284 5 is_stmt 1 view .LVU1620 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4688 .loc 1 2284 8 is_stmt 0 view .LVU1621 4689 0010 0029 cmp r1, #0 4690 0012 44D0 beq .L308 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4691 .loc 1 2284 25 discriminator 1 view .LVU1622 4692 0014 002A cmp r2, #0 4693 0016 42D0 beq .L308 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4694 .loc 1 2290 5 is_stmt 1 view .LVU1623 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4695 .loc 1 2290 5 view .LVU1624 4696 0018 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4697 001c 012B cmp r3, #1 4698 001e 00F08480 beq .L317 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4699 .loc 1 2290 5 discriminator 2 view .LVU1625 4700 0022 0123 movs r3, #1 4701 0024 80F84030 strb r3, [r0, #64] 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4702 .loc 1 2290 5 discriminator 2 view .LVU1626 2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4703 .loc 1 2292 5 view .LVU1627 2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4704 .loc 1 2292 23 is_stmt 0 view .LVU1628 4705 0028 2123 movs r3, #33 4706 002a 80F84130 strb r3, [r0, #65] 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4707 .loc 1 2293 5 is_stmt 1 view .LVU1629 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4708 .loc 1 2293 23 is_stmt 0 view .LVU1630 4709 002e 2023 movs r3, #32 4710 0030 80F84230 strb r3, [r0, #66] 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4711 .loc 1 2294 5 is_stmt 1 view .LVU1631 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4712 .loc 1 2294 23 is_stmt 0 view .LVU1632 4713 0034 0023 movs r3, #0 4714 0036 4364 str r3, [r0, #68] 2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4715 .loc 1 2297 5 is_stmt 1 view .LVU1633 2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 4716 .loc 1 2297 23 is_stmt 0 view .LVU1634 4717 0038 4162 str r1, [r0, #36] 2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4718 .loc 1 2298 5 is_stmt 1 view .LVU1635 2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4719 .loc 1 2298 23 is_stmt 0 view .LVU1636 4720 003a 4285 strh r2, [r0, #42] @ movhi 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4721 .loc 1 2299 5 is_stmt 1 view .LVU1637 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4722 .loc 1 2299 29 is_stmt 0 view .LVU1638 4723 003c 438D ldrh r3, [r0, #42] ARM GAS /tmp/ccclMPzv.s page 241 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4724 .loc 1 2299 23 view .LVU1639 4725 003e 0385 strh r3, [r0, #40] @ movhi 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4726 .loc 1 2300 5 is_stmt 1 view .LVU1640 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4727 .loc 1 2300 23 is_stmt 0 view .LVU1641 4728 0040 3B4B ldr r3, .L325 4729 0042 C362 str r3, [r0, #44] 2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4730 .loc 1 2301 5 is_stmt 1 view .LVU1642 2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4731 .loc 1 2301 23 is_stmt 0 view .LVU1643 4732 0044 3B4B ldr r3, .L325+4 4733 0046 4363 str r3, [r0, #52] 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4734 .loc 1 2304 5 is_stmt 1 view .LVU1644 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4735 .loc 1 2304 19 is_stmt 0 view .LVU1645 4736 0048 036A ldr r3, [r0, #32] 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4737 .loc 1 2304 8 view .LVU1646 4738 004a B3F5003F cmp r3, #131072 4739 004e 2BD0 beq .L323 4740 .LVL324: 4741 .L310: 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4742 .loc 1 2317 5 is_stmt 1 view .LVU1647 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4743 .loc 1 2317 13 is_stmt 0 view .LVU1648 4744 0050 638D ldrh r3, [r4, #42] 4745 0052 9BB2 uxth r3, r3 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4746 .loc 1 2317 8 view .LVU1649 4747 0054 002B cmp r3, #0 4748 0056 57D0 beq .L311 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4749 .loc 1 2319 7 is_stmt 1 view .LVU1650 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4750 .loc 1 2319 15 is_stmt 0 view .LVU1651 4751 0058 A36B ldr r3, [r4, #56] 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4752 .loc 1 2319 10 view .LVU1652 4753 005a 002B cmp r3, #0 4754 005c 33D0 beq .L312 2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4755 .loc 1 2322 9 is_stmt 1 view .LVU1653 2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4756 .loc 1 2322 40 is_stmt 0 view .LVU1654 4757 005e 364A ldr r2, .L325+8 4758 0060 DA62 str r2, [r3, #44] 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4759 .loc 1 2325 9 is_stmt 1 view .LVU1655 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4760 .loc 1 2325 13 is_stmt 0 view .LVU1656 4761 0062 A36B ldr r3, [r4, #56] 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 242 4762 .loc 1 2325 41 view .LVU1657 4763 0064 354A ldr r2, .L325+12 4764 0066 5A63 str r2, [r3, #52] 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4765 .loc 1 2328 9 is_stmt 1 view .LVU1658 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4766 .loc 1 2328 13 is_stmt 0 view .LVU1659 4767 0068 A26B ldr r2, [r4, #56] 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4768 .loc 1 2328 44 view .LVU1660 4769 006a 0023 movs r3, #0 4770 006c 1363 str r3, [r2, #48] 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4771 .loc 1 2329 9 is_stmt 1 view .LVU1661 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4772 .loc 1 2329 13 is_stmt 0 view .LVU1662 4773 006e A26B ldr r2, [r4, #56] 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4774 .loc 1 2329 41 view .LVU1663 4775 0070 9363 str r3, [r2, #56] 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4776 .loc 1 2332 9 is_stmt 1 view .LVU1664 2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 4777 .loc 1 2333 83 is_stmt 0 view .LVU1665 4778 0072 2268 ldr r2, [r4] 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4779 .loc 1 2332 25 view .LVU1666 4780 0074 238D ldrh r3, [r4, #40] 4781 0076 2832 adds r2, r2, #40 4782 0078 616A ldr r1, [r4, #36] 4783 .LVL325: 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4784 .loc 1 2332 25 view .LVU1667 4785 007a A06B ldr r0, [r4, #56] 4786 .LVL326: 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4787 .loc 1 2332 25 view .LVU1668 4788 007c FFF7FEFF bl HAL_DMA_Start_IT 4789 .LVL327: 2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4790 .loc 1 2351 7 is_stmt 1 view .LVU1669 2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 4791 .loc 1 2351 10 is_stmt 0 view .LVU1670 4792 0080 78B3 cbz r0, .L324 2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4793 .loc 1 2371 9 is_stmt 1 view .LVU1671 2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4794 .loc 1 2371 25 is_stmt 0 view .LVU1672 4795 0082 2823 movs r3, #40 4796 0084 84F84130 strb r3, [r4, #65] 2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4797 .loc 1 2372 9 is_stmt 1 view .LVU1673 2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4798 .loc 1 2372 25 is_stmt 0 view .LVU1674 4799 0088 0022 movs r2, #0 4800 008a 84F84220 strb r2, [r4, #66] 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 243 4801 .loc 1 2375 9 is_stmt 1 view .LVU1675 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4802 .loc 1 2375 13 is_stmt 0 view .LVU1676 4803 008e 636C ldr r3, [r4, #68] 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4804 .loc 1 2375 25 view .LVU1677 4805 0090 43F01003 orr r3, r3, #16 4806 0094 6364 str r3, [r4, #68] 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4807 .loc 1 2378 9 is_stmt 1 view .LVU1678 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4808 .loc 1 2378 9 view .LVU1679 4809 0096 84F84020 strb r2, [r4, #64] 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4810 .loc 1 2378 9 view .LVU1680 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4811 .loc 1 2380 9 view .LVU1681 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4812 .loc 1 2380 16 is_stmt 0 view .LVU1682 4813 009a 0120 movs r0, #1 4814 .LVL328: 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4815 .loc 1 2380 16 view .LVU1683 4816 009c 03E0 b .L307 4817 .LVL329: 4818 .L308: 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4819 .loc 1 2286 7 is_stmt 1 view .LVU1684 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 4820 .loc 1 2286 23 is_stmt 0 view .LVU1685 4821 009e 4FF40073 mov r3, #512 4822 00a2 6364 str r3, [r4, #68] 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4823 .loc 1 2287 7 is_stmt 1 view .LVU1686 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4824 .loc 1 2287 15 is_stmt 0 view .LVU1687 4825 00a4 0120 movs r0, #1 4826 .LVL330: 4827 .L307: 2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4828 .loc 1 2404 1 view .LVU1688 4829 00a6 10BD pop {r4, pc} 4830 .LVL331: 4831 .L323: 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4832 .loc 1 2308 7 is_stmt 1 view .LVU1689 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4833 .loc 1 2308 11 is_stmt 0 view .LVU1690 4834 00a8 0368 ldr r3, [r0] 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4835 .loc 1 2308 30 view .LVU1691 4836 00aa 0A78 ldrb r2, [r1] @ zero_extendqisi2 4837 .LVL332: 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4838 .loc 1 2308 28 view .LVU1692 4839 00ac 9A62 str r2, [r3, #40] 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 244 4840 .loc 1 2311 7 is_stmt 1 view .LVU1693 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4841 .loc 1 2311 11 is_stmt 0 view .LVU1694 4842 00ae 436A ldr r3, [r0, #36] 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4843 .loc 1 2311 21 view .LVU1695 4844 00b0 0133 adds r3, r3, #1 4845 00b2 4362 str r3, [r0, #36] 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4846 .loc 1 2313 7 is_stmt 1 view .LVU1696 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4847 .loc 1 2313 11 is_stmt 0 view .LVU1697 4848 00b4 438D ldrh r3, [r0, #42] 4849 00b6 9BB2 uxth r3, r3 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 4850 .loc 1 2313 22 view .LVU1698 4851 00b8 013B subs r3, r3, #1 4852 00ba 9BB2 uxth r3, r3 4853 00bc 4385 strh r3, [r0, #42] @ movhi 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4854 .loc 1 2314 7 is_stmt 1 view .LVU1699 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4855 .loc 1 2314 11 is_stmt 0 view .LVU1700 4856 00be 038D ldrh r3, [r0, #40] 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4857 .loc 1 2314 21 view .LVU1701 4858 00c0 013B subs r3, r3, #1 4859 00c2 0385 strh r3, [r0, #40] @ movhi 4860 00c4 C4E7 b .L310 4861 .L312: 2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4862 .loc 1 2339 9 is_stmt 1 view .LVU1702 2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4863 .loc 1 2339 25 is_stmt 0 view .LVU1703 4864 00c6 2823 movs r3, #40 4865 00c8 84F84130 strb r3, [r4, #65] 2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4866 .loc 1 2340 9 is_stmt 1 view .LVU1704 2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4867 .loc 1 2340 25 is_stmt 0 view .LVU1705 4868 00cc 0022 movs r2, #0 4869 00ce 84F84220 strb r2, [r4, #66] 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4870 .loc 1 2343 9 is_stmt 1 view .LVU1706 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4871 .loc 1 2343 13 is_stmt 0 view .LVU1707 4872 00d2 636C ldr r3, [r4, #68] 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4873 .loc 1 2343 25 view .LVU1708 4874 00d4 43F08003 orr r3, r3, #128 4875 00d8 6364 str r3, [r4, #68] 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4876 .loc 1 2346 9 is_stmt 1 view .LVU1709 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4877 .loc 1 2346 9 view .LVU1710 4878 00da 84F84020 strb r2, [r4, #64] 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 245 4879 .loc 1 2346 9 view .LVU1711 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4880 .loc 1 2348 9 view .LVU1712 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4881 .loc 1 2348 16 is_stmt 0 view .LVU1713 4882 00de 0120 movs r0, #1 4883 .LVL333: 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4884 .loc 1 2348 16 view .LVU1714 4885 00e0 E1E7 b .L307 4886 .LVL334: 4887 .L324: 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4888 .loc 1 2354 9 is_stmt 1 view .LVU1715 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4889 .loc 1 2354 13 is_stmt 0 view .LVU1716 4890 00e2 2268 ldr r2, [r4] 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4891 .loc 1 2354 23 view .LVU1717 4892 00e4 5368 ldr r3, [r2, #4] 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4893 .loc 1 2354 29 view .LVU1718 4894 00e6 23F40043 bic r3, r3, #32768 4895 00ea 5360 str r3, [r2, #4] 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4896 .loc 1 2357 9 is_stmt 1 view .LVU1719 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4897 .loc 1 2357 9 view .LVU1720 4898 00ec 0023 movs r3, #0 4899 00ee 84F84030 strb r3, [r4, #64] 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4900 .loc 1 2357 9 view .LVU1721 2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4901 .loc 1 2363 9 view .LVU1722 4902 00f2 4FF40041 mov r1, #32768 4903 00f6 2046 mov r0, r4 4904 .LVL335: 2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4905 .loc 1 2363 9 is_stmt 0 view .LVU1723 4906 00f8 FFF7FEFF bl I2C_Enable_IRQ 4907 .LVL336: 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4908 .loc 1 2366 9 is_stmt 1 view .LVU1724 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4909 .loc 1 2366 13 is_stmt 0 view .LVU1725 4910 00fc 2268 ldr r2, [r4] 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4911 .loc 1 2366 23 view .LVU1726 4912 00fe 1368 ldr r3, [r2] 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4913 .loc 1 2366 29 view .LVU1727 4914 0100 43F48043 orr r3, r3, #16384 4915 0104 1360 str r3, [r2] 4916 0106 0CE0 b .L315 4917 .LVL337: 4918 .L311: 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 246 4919 .loc 1 2386 7 is_stmt 1 view .LVU1728 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4920 .loc 1 2386 11 is_stmt 0 view .LVU1729 4921 0108 2268 ldr r2, [r4] 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4922 .loc 1 2386 21 view .LVU1730 4923 010a 5368 ldr r3, [r2, #4] 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4924 .loc 1 2386 27 view .LVU1731 4925 010c 23F40043 bic r3, r3, #32768 4926 0110 5360 str r3, [r2, #4] 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4927 .loc 1 2389 7 is_stmt 1 view .LVU1732 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4928 .loc 1 2389 7 view .LVU1733 4929 0112 0023 movs r3, #0 4930 0114 84F84030 strb r3, [r4, #64] 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4931 .loc 1 2389 7 view .LVU1734 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4932 .loc 1 2395 7 view .LVU1735 4933 0118 4FF40041 mov r1, #32768 4934 .LVL338: 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4935 .loc 1 2395 7 is_stmt 0 view .LVU1736 4936 011c 2046 mov r0, r4 4937 .LVL339: 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4938 .loc 1 2395 7 view .LVU1737 4939 011e FFF7FEFF bl I2C_Enable_IRQ 4940 .LVL340: 4941 .L315: 2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4942 .loc 1 2398 5 is_stmt 1 view .LVU1738 2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4943 .loc 1 2398 12 is_stmt 0 view .LVU1739 4944 0122 0020 movs r0, #0 4945 0124 BFE7 b .L307 4946 .LVL341: 4947 .L316: 4948 .LCFI55: 4949 .cfi_def_cfa_offset 0 4950 .cfi_restore 4 4951 .cfi_restore 14 2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 4952 .loc 1 2402 12 view .LVU1740 4953 0126 0220 movs r0, #2 4954 .LVL342: 2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4955 .loc 1 2404 1 view .LVU1741 4956 0128 7047 bx lr 4957 .LVL343: 4958 .L317: 4959 .LCFI56: 4960 .cfi_def_cfa_offset 8 4961 .cfi_offset 4, -8 4962 .cfi_offset 14, -4 ARM GAS /tmp/ccclMPzv.s page 247 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4963 .loc 1 2290 5 discriminator 1 view .LVU1742 4964 012a 0220 movs r0, #2 4965 .LVL344: 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 4966 .loc 1 2290 5 discriminator 1 view .LVU1743 4967 012c BBE7 b .L307 4968 .L326: 4969 012e 00BF .align 2 4970 .L325: 4971 0130 0000FFFF .word -65536 4972 0134 00000000 .word I2C_Slave_ISR_DMA 4973 0138 00000000 .word I2C_DMASlaveTransmitCplt 4974 013c 00000000 .word I2C_DMAError 4975 .cfi_endproc 4976 .LFE343: 4978 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4979 .align 1 4980 .global HAL_I2C_Slave_Receive_DMA 4981 .syntax unified 4982 .thumb 4983 .thumb_func 4985 HAL_I2C_Slave_Receive_DMA: 4986 .LVL345: 4987 .LFB344: 2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4988 .loc 1 2415 1 is_stmt 1 view -0 4989 .cfi_startproc 4990 @ args = 0, pretend = 0, frame = 0 4991 @ frame_needed = 0, uses_anonymous_args = 0 2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4992 .loc 1 2415 1 is_stmt 0 view .LVU1745 4993 0000 38B5 push {r3, r4, r5, lr} 4994 .LCFI57: 4995 .cfi_def_cfa_offset 16 4996 .cfi_offset 3, -16 4997 .cfi_offset 4, -12 4998 .cfi_offset 5, -8 4999 .cfi_offset 14, -4 2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5000 .loc 1 2416 3 is_stmt 1 view .LVU1746 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5001 .loc 1 2418 3 view .LVU1747 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5002 .loc 1 2418 11 is_stmt 0 view .LVU1748 5003 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5004 0006 DBB2 uxtb r3, r3 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5005 .loc 1 2418 6 view .LVU1749 5006 0008 202B cmp r3, #32 5007 000a 65D1 bne .L334 5008 000c 0446 mov r4, r0 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5009 .loc 1 2420 5 is_stmt 1 view .LVU1750 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5010 .loc 1 2420 8 is_stmt 0 view .LVU1751 5011 000e 0029 cmp r1, #0 ARM GAS /tmp/ccclMPzv.s page 248 5012 0010 3CD0 beq .L329 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5013 .loc 1 2420 25 discriminator 1 view .LVU1752 5014 0012 002A cmp r2, #0 5015 0014 3AD0 beq .L329 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5016 .loc 1 2426 5 is_stmt 1 view .LVU1753 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5017 .loc 1 2426 5 view .LVU1754 5018 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5019 001a 012B cmp r3, #1 5020 001c 5FD0 beq .L335 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5021 .loc 1 2426 5 discriminator 2 view .LVU1755 5022 001e 0123 movs r3, #1 5023 0020 80F84030 strb r3, [r0, #64] 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5024 .loc 1 2426 5 discriminator 2 view .LVU1756 2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5025 .loc 1 2428 5 view .LVU1757 2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5026 .loc 1 2428 23 is_stmt 0 view .LVU1758 5027 0024 2223 movs r3, #34 5028 0026 80F84130 strb r3, [r0, #65] 2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5029 .loc 1 2429 5 is_stmt 1 view .LVU1759 2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5030 .loc 1 2429 23 is_stmt 0 view .LVU1760 5031 002a 2023 movs r3, #32 5032 002c 80F84230 strb r3, [r0, #66] 2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5033 .loc 1 2430 5 is_stmt 1 view .LVU1761 2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5034 .loc 1 2430 23 is_stmt 0 view .LVU1762 5035 0030 0023 movs r3, #0 5036 0032 4364 str r3, [r0, #68] 2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5037 .loc 1 2433 5 is_stmt 1 view .LVU1763 2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5038 .loc 1 2433 23 is_stmt 0 view .LVU1764 5039 0034 4162 str r1, [r0, #36] 2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5040 .loc 1 2434 5 is_stmt 1 view .LVU1765 2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5041 .loc 1 2434 23 is_stmt 0 view .LVU1766 5042 0036 4285 strh r2, [r0, #42] @ movhi 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5043 .loc 1 2435 5 is_stmt 1 view .LVU1767 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5044 .loc 1 2435 29 is_stmt 0 view .LVU1768 5045 0038 438D ldrh r3, [r0, #42] 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5046 .loc 1 2435 23 view .LVU1769 5047 003a 0385 strh r3, [r0, #40] @ movhi 2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5048 .loc 1 2436 5 is_stmt 1 view .LVU1770 2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; ARM GAS /tmp/ccclMPzv.s page 249 5049 .loc 1 2436 23 is_stmt 0 view .LVU1771 5050 003c 294B ldr r3, .L339 5051 003e C362 str r3, [r0, #44] 2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5052 .loc 1 2437 5 is_stmt 1 view .LVU1772 2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5053 .loc 1 2437 23 is_stmt 0 view .LVU1773 5054 0040 294B ldr r3, .L339+4 5055 0042 4363 str r3, [r0, #52] 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5056 .loc 1 2439 5 is_stmt 1 view .LVU1774 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5057 .loc 1 2439 13 is_stmt 0 view .LVU1775 5058 0044 C36B ldr r3, [r0, #60] 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5059 .loc 1 2439 8 view .LVU1776 5060 0046 33B3 cbz r3, .L331 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5061 .loc 1 2442 7 is_stmt 1 view .LVU1777 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5062 .loc 1 2442 38 is_stmt 0 view .LVU1778 5063 0048 284A ldr r2, .L339+8 5064 .LVL346: 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5065 .loc 1 2442 38 view .LVU1779 5066 004a DA62 str r2, [r3, #44] 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5067 .loc 1 2445 7 is_stmt 1 view .LVU1780 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5068 .loc 1 2445 11 is_stmt 0 view .LVU1781 5069 004c C36B ldr r3, [r0, #60] 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5070 .loc 1 2445 39 view .LVU1782 5071 004e 284A ldr r2, .L339+12 5072 0050 5A63 str r2, [r3, #52] 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5073 .loc 1 2448 7 is_stmt 1 view .LVU1783 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5074 .loc 1 2448 11 is_stmt 0 view .LVU1784 5075 0052 C26B ldr r2, [r0, #60] 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5076 .loc 1 2448 42 view .LVU1785 5077 0054 0023 movs r3, #0 5078 0056 1363 str r3, [r2, #48] 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5079 .loc 1 2449 7 is_stmt 1 view .LVU1786 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5080 .loc 1 2449 11 is_stmt 0 view .LVU1787 5081 0058 C26B ldr r2, [r0, #60] 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5082 .loc 1 2449 39 view .LVU1788 5083 005a 9363 str r3, [r2, #56] 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 5084 .loc 1 2452 7 is_stmt 1 view .LVU1789 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 5085 .loc 1 2452 69 is_stmt 0 view .LVU1790 5086 005c 0068 ldr r0, [r0] ARM GAS /tmp/ccclMPzv.s page 250 5087 .LVL347: 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 5088 .loc 1 2452 23 view .LVU1791 5089 005e 238D ldrh r3, [r4, #40] 5090 0060 0A46 mov r2, r1 5091 0062 00F12401 add r1, r0, #36 5092 .LVL348: 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 5093 .loc 1 2452 23 view .LVU1792 5094 0066 E06B ldr r0, [r4, #60] 5095 0068 FFF7FEFF bl HAL_DMA_Start_IT 5096 .LVL349: 2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5097 .loc 1 2470 5 is_stmt 1 view .LVU1793 2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5098 .loc 1 2470 8 is_stmt 0 view .LVU1794 5099 006c 0546 mov r5, r0 5100 006e 00B3 cbz r0, .L338 2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5101 .loc 1 2490 7 is_stmt 1 view .LVU1795 2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5102 .loc 1 2490 23 is_stmt 0 view .LVU1796 5103 0070 2823 movs r3, #40 5104 0072 84F84130 strb r3, [r4, #65] 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5105 .loc 1 2491 7 is_stmt 1 view .LVU1797 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5106 .loc 1 2491 23 is_stmt 0 view .LVU1798 5107 0076 0022 movs r2, #0 5108 0078 84F84220 strb r2, [r4, #66] 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5109 .loc 1 2494 7 is_stmt 1 view .LVU1799 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5110 .loc 1 2494 11 is_stmt 0 view .LVU1800 5111 007c 636C ldr r3, [r4, #68] 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5112 .loc 1 2494 23 view .LVU1801 5113 007e 43F01003 orr r3, r3, #16 5114 0082 6364 str r3, [r4, #68] 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5115 .loc 1 2497 7 is_stmt 1 view .LVU1802 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5116 .loc 1 2497 7 view .LVU1803 5117 0084 84F84020 strb r2, [r4, #64] 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5118 .loc 1 2497 7 view .LVU1804 2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5119 .loc 1 2499 7 view .LVU1805 2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5120 .loc 1 2499 14 is_stmt 0 view .LVU1806 5121 0088 0125 movs r5, #1 5122 008a 26E0 b .L328 5123 .LVL350: 5124 .L329: 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5125 .loc 1 2422 7 is_stmt 1 view .LVU1807 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccclMPzv.s page 251 5126 .loc 1 2422 23 is_stmt 0 view .LVU1808 5127 008c 4FF40073 mov r3, #512 5128 0090 6364 str r3, [r4, #68] 2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5129 .loc 1 2423 7 is_stmt 1 view .LVU1809 2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5130 .loc 1 2423 15 is_stmt 0 view .LVU1810 5131 0092 0125 movs r5, #1 5132 0094 21E0 b .L328 5133 .L331: 2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5134 .loc 1 2458 7 is_stmt 1 view .LVU1811 2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5135 .loc 1 2458 23 is_stmt 0 view .LVU1812 5136 0096 2823 movs r3, #40 5137 0098 80F84130 strb r3, [r0, #65] 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5138 .loc 1 2459 7 is_stmt 1 view .LVU1813 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5139 .loc 1 2459 23 is_stmt 0 view .LVU1814 5140 009c 0022 movs r2, #0 5141 .LVL351: 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5142 .loc 1 2459 23 view .LVU1815 5143 009e 80F84220 strb r2, [r0, #66] 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5144 .loc 1 2462 7 is_stmt 1 view .LVU1816 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5145 .loc 1 2462 11 is_stmt 0 view .LVU1817 5146 00a2 436C ldr r3, [r0, #68] 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5147 .loc 1 2462 23 view .LVU1818 5148 00a4 43F08003 orr r3, r3, #128 5149 00a8 4364 str r3, [r0, #68] 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5150 .loc 1 2465 7 is_stmt 1 view .LVU1819 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5151 .loc 1 2465 7 view .LVU1820 5152 00aa 80F84020 strb r2, [r0, #64] 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5153 .loc 1 2465 7 view .LVU1821 2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5154 .loc 1 2467 7 view .LVU1822 2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5155 .loc 1 2467 14 is_stmt 0 view .LVU1823 5156 00ae 0125 movs r5, #1 5157 00b0 13E0 b .L328 5158 .LVL352: 5159 .L338: 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5160 .loc 1 2473 7 is_stmt 1 view .LVU1824 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5161 .loc 1 2473 11 is_stmt 0 view .LVU1825 5162 00b2 2268 ldr r2, [r4] 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5163 .loc 1 2473 21 view .LVU1826 5164 00b4 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccclMPzv.s page 252 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5165 .loc 1 2473 27 view .LVU1827 5166 00b6 23F40043 bic r3, r3, #32768 5167 00ba 5360 str r3, [r2, #4] 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5168 .loc 1 2476 7 is_stmt 1 view .LVU1828 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5169 .loc 1 2476 7 view .LVU1829 5170 00bc 0023 movs r3, #0 5171 00be 84F84030 strb r3, [r4, #64] 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5172 .loc 1 2476 7 view .LVU1830 2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5173 .loc 1 2482 7 view .LVU1831 5174 00c2 4FF40041 mov r1, #32768 5175 00c6 2046 mov r0, r4 5176 .LVL353: 2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5177 .loc 1 2482 7 is_stmt 0 view .LVU1832 5178 00c8 FFF7FEFF bl I2C_Enable_IRQ 5179 .LVL354: 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5180 .loc 1 2485 7 is_stmt 1 view .LVU1833 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5181 .loc 1 2485 11 is_stmt 0 view .LVU1834 5182 00cc 2268 ldr r2, [r4] 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5183 .loc 1 2485 21 view .LVU1835 5184 00ce 1368 ldr r3, [r2] 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5185 .loc 1 2485 27 view .LVU1836 5186 00d0 43F40043 orr r3, r3, #32768 5187 00d4 1360 str r3, [r2] 2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5188 .loc 1 2502 5 is_stmt 1 view .LVU1837 2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5189 .loc 1 2502 12 is_stmt 0 view .LVU1838 5190 00d6 00E0 b .L328 5191 .LVL355: 5192 .L334: 2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5193 .loc 1 2506 12 view .LVU1839 5194 00d8 0225 movs r5, #2 5195 .LVL356: 5196 .L328: 2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5197 .loc 1 2508 1 view .LVU1840 5198 00da 2846 mov r0, r5 5199 00dc 38BD pop {r3, r4, r5, pc} 5200 .LVL357: 5201 .L335: 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5202 .loc 1 2426 5 discriminator 1 view .LVU1841 5203 00de 0225 movs r5, #2 5204 00e0 FBE7 b .L328 5205 .L340: 5206 00e2 00BF .align 2 ARM GAS /tmp/ccclMPzv.s page 253 5207 .L339: 5208 00e4 0000FFFF .word -65536 5209 00e8 00000000 .word I2C_Slave_ISR_DMA 5210 00ec 00000000 .word I2C_DMASlaveReceiveCplt 5211 00f0 00000000 .word I2C_DMAError 5212 .cfi_endproc 5213 .LFE344: 5215 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 5216 .align 1 5217 .global HAL_I2C_Mem_Write 5218 .syntax unified 5219 .thumb 5220 .thumb_func 5222 HAL_I2C_Mem_Write: 5223 .LVL358: 5224 .LFB345: 2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5225 .loc 1 2525 1 is_stmt 1 view -0 5226 .cfi_startproc 5227 @ args = 12, pretend = 0, frame = 0 5228 @ frame_needed = 0, uses_anonymous_args = 0 2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5229 .loc 1 2525 1 is_stmt 0 view .LVU1843 5230 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5231 .LCFI58: 5232 .cfi_def_cfa_offset 36 5233 .cfi_offset 4, -36 5234 .cfi_offset 5, -32 5235 .cfi_offset 6, -28 5236 .cfi_offset 7, -24 5237 .cfi_offset 8, -20 5238 .cfi_offset 9, -16 5239 .cfi_offset 10, -12 5240 .cfi_offset 11, -8 5241 .cfi_offset 14, -4 5242 0004 83B0 sub sp, sp, #12 5243 .LCFI59: 5244 .cfi_def_cfa_offset 48 5245 0006 0E46 mov r6, r1 5246 0008 BDF834A0 ldrh r10, [sp, #52] 5247 000c 0E9D ldr r5, [sp, #56] 2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5248 .loc 1 2526 3 is_stmt 1 view .LVU1844 2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5249 .loc 1 2529 3 view .LVU1845 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5250 .loc 1 2531 3 view .LVU1846 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5251 .loc 1 2531 11 is_stmt 0 view .LVU1847 5252 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5253 .LVL359: 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5254 .loc 1 2531 11 view .LVU1848 5255 0012 C9B2 uxtb r1, r1 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5256 .loc 1 2531 6 view .LVU1849 5257 0014 2029 cmp r1, #32 ARM GAS /tmp/ccclMPzv.s page 254 5258 0016 40F0BB80 bne .L351 5259 001a 0446 mov r4, r0 5260 001c 9046 mov r8, r2 5261 001e 9946 mov r9, r3 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5262 .loc 1 2533 5 is_stmt 1 view .LVU1850 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5263 .loc 1 2533 8 is_stmt 0 view .LVU1851 5264 0020 0C9B ldr r3, [sp, #48] 5265 .LVL360: 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5266 .loc 1 2533 8 view .LVU1852 5267 0022 CBB1 cbz r3, .L343 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5268 .loc 1 2533 25 discriminator 1 view .LVU1853 5269 0024 BAF1000F cmp r10, #0 5270 0028 16D0 beq .L343 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5271 .loc 1 2540 5 is_stmt 1 view .LVU1854 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5272 .loc 1 2540 5 view .LVU1855 5273 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5274 002e 012B cmp r3, #1 5275 0030 00F0B280 beq .L352 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5276 .loc 1 2540 5 discriminator 2 view .LVU1856 5277 0034 4FF0010B mov fp, #1 5278 0038 80F840B0 strb fp, [r0, #64] 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5279 .loc 1 2540 5 discriminator 2 view .LVU1857 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5280 .loc 1 2543 5 view .LVU1858 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5281 .loc 1 2543 17 is_stmt 0 view .LVU1859 5282 003c FFF7FEFF bl HAL_GetTick 5283 .LVL361: 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5284 .loc 1 2543 17 view .LVU1860 5285 0040 0746 mov r7, r0 5286 .LVL362: 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5287 .loc 1 2545 5 is_stmt 1 view .LVU1861 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5288 .loc 1 2545 9 is_stmt 0 view .LVU1862 5289 0042 0090 str r0, [sp] 5290 0044 1923 movs r3, #25 5291 0046 5A46 mov r2, fp 5292 0048 4FF40041 mov r1, #32768 5293 004c 2046 mov r0, r4 5294 .LVL363: 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5295 .loc 1 2545 9 view .LVU1863 5296 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5297 .LVL364: 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5298 .loc 1 2545 8 discriminator 1 view .LVU1864 5299 0052 30B1 cbz r0, .L358 ARM GAS /tmp/ccclMPzv.s page 255 2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5300 .loc 1 2547 14 view .LVU1865 5301 0054 0120 movs r0, #1 5302 0056 9CE0 b .L342 5303 .LVL365: 5304 .L343: 2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5305 .loc 1 2535 7 is_stmt 1 view .LVU1866 2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5306 .loc 1 2535 23 is_stmt 0 view .LVU1867 5307 0058 4FF40073 mov r3, #512 5308 005c 6364 str r3, [r4, #68] 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5309 .loc 1 2536 7 is_stmt 1 view .LVU1868 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5310 .loc 1 2536 15 is_stmt 0 view .LVU1869 5311 005e 0120 movs r0, #1 5312 .LVL366: 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5313 .loc 1 2536 15 view .LVU1870 5314 0060 97E0 b .L342 5315 .LVL367: 5316 .L358: 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5317 .loc 1 2550 5 is_stmt 1 view .LVU1871 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5318 .loc 1 2550 21 is_stmt 0 view .LVU1872 5319 0062 2123 movs r3, #33 5320 0064 84F84130 strb r3, [r4, #65] 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5321 .loc 1 2551 5 is_stmt 1 view .LVU1873 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5322 .loc 1 2551 21 is_stmt 0 view .LVU1874 5323 0068 4023 movs r3, #64 5324 006a 84F84230 strb r3, [r4, #66] 2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5325 .loc 1 2552 5 is_stmt 1 view .LVU1875 2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5326 .loc 1 2552 21 is_stmt 0 view .LVU1876 5327 006e 0023 movs r3, #0 5328 0070 6364 str r3, [r4, #68] 2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5329 .loc 1 2555 5 is_stmt 1 view .LVU1877 2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5330 .loc 1 2555 21 is_stmt 0 view .LVU1878 5331 0072 0C9A ldr r2, [sp, #48] 5332 0074 6262 str r2, [r4, #36] 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5333 .loc 1 2556 5 is_stmt 1 view .LVU1879 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5334 .loc 1 2556 21 is_stmt 0 view .LVU1880 5335 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5336 .loc 1 2557 5 is_stmt 1 view .LVU1881 2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5337 .loc 1 2557 21 is_stmt 0 view .LVU1882 5338 007a 6363 str r3, [r4, #52] ARM GAS /tmp/ccclMPzv.s page 256 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5339 .loc 1 2560 5 is_stmt 1 view .LVU1883 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5340 .loc 1 2560 9 is_stmt 0 view .LVU1884 5341 007c 0197 str r7, [sp, #4] 5342 007e 0095 str r5, [sp] 5343 0080 4B46 mov r3, r9 5344 0082 4246 mov r2, r8 5345 0084 3146 mov r1, r6 5346 0086 2046 mov r0, r4 5347 0088 FFF7FEFF bl I2C_RequestMemoryWrite 5348 .LVL368: 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5349 .loc 1 2560 8 discriminator 1 view .LVU1885 5350 008c 70B9 cbnz r0, .L359 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5351 .loc 1 2568 5 is_stmt 1 view .LVU1886 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5352 .loc 1 2568 13 is_stmt 0 view .LVU1887 5353 008e 638D ldrh r3, [r4, #42] 5354 0090 9BB2 uxth r3, r3 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5355 .loc 1 2568 8 view .LVU1888 5356 0092 FF2B cmp r3, #255 5357 0094 0FD9 bls .L346 2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5358 .loc 1 2570 7 is_stmt 1 view .LVU1889 2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5359 .loc 1 2570 22 is_stmt 0 view .LVU1890 5360 0096 FF22 movs r2, #255 5361 0098 2285 strh r2, [r4, #40] @ movhi 2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5362 .loc 1 2571 7 is_stmt 1 view .LVU1891 5363 009a 0023 movs r3, #0 5364 009c 0093 str r3, [sp] 5365 009e 4FF08073 mov r3, #16777216 5366 00a2 3146 mov r1, r6 5367 00a4 2046 mov r0, r4 5368 00a6 FFF7FEFF bl I2C_TransferConfig 5369 .LVL369: 5370 00aa 21E0 b .L350 5371 .L359: 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5372 .loc 1 2563 7 view .LVU1892 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5373 .loc 1 2563 7 view .LVU1893 5374 00ac 0023 movs r3, #0 5375 00ae 84F84030 strb r3, [r4, #64] 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5376 .loc 1 2563 7 view .LVU1894 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5377 .loc 1 2564 7 view .LVU1895 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5378 .loc 1 2564 14 is_stmt 0 view .LVU1896 5379 00b2 5846 mov r0, fp 5380 00b4 6DE0 b .L342 5381 .L346: ARM GAS /tmp/ccclMPzv.s page 257 2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5382 .loc 1 2575 7 is_stmt 1 view .LVU1897 2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5383 .loc 1 2575 28 is_stmt 0 view .LVU1898 5384 00b6 628D ldrh r2, [r4, #42] 5385 00b8 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 5386 .loc 1 2575 22 view .LVU1899 5387 00ba 2285 strh r2, [r4, #40] @ movhi 2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5388 .loc 1 2576 7 is_stmt 1 view .LVU1900 5389 00bc 0023 movs r3, #0 5390 00be 0093 str r3, [sp] 5391 00c0 4FF00073 mov r3, #33554432 5392 00c4 D2B2 uxtb r2, r2 5393 00c6 3146 mov r1, r6 5394 00c8 2046 mov r0, r4 5395 00ca FFF7FEFF bl I2C_TransferConfig 5396 .LVL370: 5397 00ce 0FE0 b .L350 5398 .L349: 2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5399 .loc 1 2612 11 view .LVU1901 2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5400 .loc 1 2612 32 is_stmt 0 view .LVU1902 5401 00d0 628D ldrh r2, [r4, #42] 5402 00d2 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, 5403 .loc 1 2612 26 view .LVU1903 5404 00d4 2285 strh r2, [r4, #40] @ movhi 2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5405 .loc 1 2613 11 is_stmt 1 view .LVU1904 5406 00d6 0023 movs r3, #0 5407 00d8 0093 str r3, [sp] 5408 00da 4FF00073 mov r3, #33554432 5409 00de D2B2 uxtb r2, r2 5410 00e0 3146 mov r1, r6 5411 00e2 2046 mov r0, r4 5412 00e4 FFF7FEFF bl I2C_TransferConfig 5413 .LVL371: 5414 .L348: 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5415 .loc 1 2618 30 view .LVU1905 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5416 .loc 1 2618 18 is_stmt 0 view .LVU1906 5417 00e8 638D ldrh r3, [r4, #42] 5418 00ea 9BB2 uxth r3, r3 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5419 .loc 1 2618 30 view .LVU1907 5420 00ec 002B cmp r3, #0 5421 00ee 33D0 beq .L360 5422 .L350: 2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5423 .loc 1 2579 5 is_stmt 1 view .LVU1908 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5424 .loc 1 2582 7 view .LVU1909 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 258 5425 .loc 1 2582 11 is_stmt 0 view .LVU1910 5426 00f0 3A46 mov r2, r7 5427 00f2 2946 mov r1, r5 5428 00f4 2046 mov r0, r4 5429 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5430 .LVL372: 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5431 .loc 1 2582 10 discriminator 1 view .LVU1911 5432 00fa 0028 cmp r0, #0 5433 00fc 4ED1 bne .L354 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5434 .loc 1 2588 7 is_stmt 1 view .LVU1912 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5435 .loc 1 2588 35 is_stmt 0 view .LVU1913 5436 00fe 626A ldr r2, [r4, #36] 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5437 .loc 1 2588 11 view .LVU1914 5438 0100 2368 ldr r3, [r4] 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5439 .loc 1 2588 30 view .LVU1915 5440 0102 1278 ldrb r2, [r2] @ zero_extendqisi2 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5441 .loc 1 2588 28 view .LVU1916 5442 0104 9A62 str r2, [r3, #40] 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5443 .loc 1 2591 7 is_stmt 1 view .LVU1917 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5444 .loc 1 2591 11 is_stmt 0 view .LVU1918 5445 0106 636A ldr r3, [r4, #36] 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5446 .loc 1 2591 21 view .LVU1919 5447 0108 0133 adds r3, r3, #1 5448 010a 6362 str r3, [r4, #36] 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5449 .loc 1 2593 7 is_stmt 1 view .LVU1920 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5450 .loc 1 2593 11 is_stmt 0 view .LVU1921 5451 010c 638D ldrh r3, [r4, #42] 5452 010e 9BB2 uxth r3, r3 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 5453 .loc 1 2593 22 view .LVU1922 5454 0110 013B subs r3, r3, #1 5455 0112 9BB2 uxth r3, r3 5456 0114 6385 strh r3, [r4, #42] @ movhi 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5457 .loc 1 2594 7 is_stmt 1 view .LVU1923 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5458 .loc 1 2594 11 is_stmt 0 view .LVU1924 5459 0116 238D ldrh r3, [r4, #40] 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5460 .loc 1 2594 21 view .LVU1925 5461 0118 013B subs r3, r3, #1 5462 011a 9BB2 uxth r3, r3 5463 011c 2385 strh r3, [r4, #40] @ movhi 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5464 .loc 1 2596 7 is_stmt 1 view .LVU1926 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 259 5465 .loc 1 2596 16 is_stmt 0 view .LVU1927 5466 011e 628D ldrh r2, [r4, #42] 5467 0120 92B2 uxth r2, r2 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5468 .loc 1 2596 10 view .LVU1928 5469 0122 002A cmp r2, #0 5470 0124 E0D0 beq .L348 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5471 .loc 1 2596 35 discriminator 1 view .LVU1929 5472 0126 002B cmp r3, #0 5473 0128 DED1 bne .L348 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5474 .loc 1 2599 9 is_stmt 1 view .LVU1930 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5475 .loc 1 2599 13 is_stmt 0 view .LVU1931 5476 012a 0097 str r7, [sp] 5477 012c 2B46 mov r3, r5 5478 012e 0022 movs r2, #0 5479 0130 8021 movs r1, #128 5480 0132 2046 mov r0, r4 5481 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5482 .LVL373: 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5483 .loc 1 2599 12 discriminator 1 view .LVU1932 5484 0138 90BB cbnz r0, .L355 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5485 .loc 1 2604 9 is_stmt 1 view .LVU1933 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5486 .loc 1 2604 17 is_stmt 0 view .LVU1934 5487 013a 638D ldrh r3, [r4, #42] 5488 013c 9BB2 uxth r3, r3 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5489 .loc 1 2604 12 view .LVU1935 5490 013e FF2B cmp r3, #255 5491 0140 C6D9 bls .L349 2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5492 .loc 1 2606 11 is_stmt 1 view .LVU1936 2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5493 .loc 1 2606 26 is_stmt 0 view .LVU1937 5494 0142 FF22 movs r2, #255 5495 0144 2285 strh r2, [r4, #40] @ movhi 2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5496 .loc 1 2607 11 is_stmt 1 view .LVU1938 5497 0146 0023 movs r3, #0 5498 0148 0093 str r3, [sp] 5499 014a 4FF08073 mov r3, #16777216 5500 014e 3146 mov r1, r6 5501 0150 2046 mov r0, r4 5502 0152 FFF7FEFF bl I2C_TransferConfig 5503 .LVL374: 5504 0156 C7E7 b .L348 5505 .L360: 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5506 .loc 1 2622 5 view .LVU1939 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5507 .loc 1 2622 9 is_stmt 0 view .LVU1940 5508 0158 3A46 mov r2, r7 ARM GAS /tmp/ccclMPzv.s page 260 5509 015a 2946 mov r1, r5 5510 015c 2046 mov r0, r4 5511 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5512 .LVL375: 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5513 .loc 1 2622 8 discriminator 1 view .LVU1941 5514 0162 F8B9 cbnz r0, .L356 2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5515 .loc 1 2628 5 is_stmt 1 view .LVU1942 5516 0164 2368 ldr r3, [r4] 5517 0166 2022 movs r2, #32 5518 0168 DA61 str r2, [r3, #28] 2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5519 .loc 1 2631 5 view .LVU1943 5520 016a 2168 ldr r1, [r4] 5521 016c 4B68 ldr r3, [r1, #4] 5522 016e 23F0FF73 bic r3, r3, #33423360 5523 0172 23F48B33 bic r3, r3, #71168 5524 0176 23F4FF73 bic r3, r3, #510 5525 017a 23F00103 bic r3, r3, #1 5526 017e 4B60 str r3, [r1, #4] 2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5527 .loc 1 2633 5 view .LVU1944 2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5528 .loc 1 2633 17 is_stmt 0 view .LVU1945 5529 0180 84F84120 strb r2, [r4, #65] 2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5530 .loc 1 2634 5 is_stmt 1 view .LVU1946 2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5531 .loc 1 2634 17 is_stmt 0 view .LVU1947 5532 0184 0023 movs r3, #0 5533 0186 84F84230 strb r3, [r4, #66] 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5534 .loc 1 2637 5 is_stmt 1 view .LVU1948 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5535 .loc 1 2637 5 view .LVU1949 5536 018a 84F84030 strb r3, [r4, #64] 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5537 .loc 1 2637 5 view .LVU1950 2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5538 .loc 1 2639 5 view .LVU1951 2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5539 .loc 1 2639 12 is_stmt 0 view .LVU1952 5540 018e 00E0 b .L342 5541 .LVL376: 5542 .L351: 2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5543 .loc 1 2643 12 view .LVU1953 5544 0190 0220 movs r0, #2 5545 .LVL377: 5546 .L342: 2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5547 .loc 1 2645 1 view .LVU1954 5548 0192 03B0 add sp, sp, #12 5549 .LCFI60: 5550 .cfi_remember_state 5551 .cfi_def_cfa_offset 36 ARM GAS /tmp/ccclMPzv.s page 261 5552 @ sp needed 5553 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5554 .LVL378: 5555 .L352: 5556 .LCFI61: 5557 .cfi_restore_state 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5558 .loc 1 2540 5 discriminator 1 view .LVU1955 5559 0198 0220 movs r0, #2 5560 .LVL379: 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5561 .loc 1 2540 5 discriminator 1 view .LVU1956 5562 019a FAE7 b .L342 5563 .LVL380: 5564 .L354: 2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5565 .loc 1 2584 16 view .LVU1957 5566 019c 0120 movs r0, #1 5567 019e F8E7 b .L342 5568 .L355: 2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5569 .loc 1 2601 18 view .LVU1958 5570 01a0 0120 movs r0, #1 5571 01a2 F6E7 b .L342 5572 .L356: 2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5573 .loc 1 2624 14 view .LVU1959 5574 01a4 0120 movs r0, #1 5575 01a6 F4E7 b .L342 5576 .cfi_endproc 5577 .LFE345: 5579 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5580 .align 1 5581 .global HAL_I2C_Mem_Read 5582 .syntax unified 5583 .thumb 5584 .thumb_func 5586 HAL_I2C_Mem_Read: 5587 .LVL381: 5588 .LFB346: 2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5589 .loc 1 2662 1 is_stmt 1 view -0 5590 .cfi_startproc 5591 @ args = 12, pretend = 0, frame = 0 5592 @ frame_needed = 0, uses_anonymous_args = 0 2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 5593 .loc 1 2662 1 is_stmt 0 view .LVU1961 5594 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5595 .LCFI62: 5596 .cfi_def_cfa_offset 36 5597 .cfi_offset 4, -36 5598 .cfi_offset 5, -32 5599 .cfi_offset 6, -28 5600 .cfi_offset 7, -24 5601 .cfi_offset 8, -20 5602 .cfi_offset 9, -16 5603 .cfi_offset 10, -12 ARM GAS /tmp/ccclMPzv.s page 262 5604 .cfi_offset 11, -8 5605 .cfi_offset 14, -4 5606 0004 83B0 sub sp, sp, #12 5607 .LCFI63: 5608 .cfi_def_cfa_offset 48 5609 0006 0E46 mov r6, r1 5610 0008 BDF834A0 ldrh r10, [sp, #52] 5611 000c 0E9D ldr r5, [sp, #56] 2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5612 .loc 1 2663 3 is_stmt 1 view .LVU1962 2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5613 .loc 1 2666 3 view .LVU1963 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5614 .loc 1 2668 3 view .LVU1964 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5615 .loc 1 2668 11 is_stmt 0 view .LVU1965 5616 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5617 .LVL382: 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5618 .loc 1 2668 11 view .LVU1966 5619 0012 C9B2 uxtb r1, r1 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5620 .loc 1 2668 6 view .LVU1967 5621 0014 2029 cmp r1, #32 5622 0016 40F0BC80 bne .L371 5623 001a 0446 mov r4, r0 5624 001c 9046 mov r8, r2 5625 001e 9946 mov r9, r3 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5626 .loc 1 2670 5 is_stmt 1 view .LVU1968 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5627 .loc 1 2670 8 is_stmt 0 view .LVU1969 5628 0020 0C9B ldr r3, [sp, #48] 5629 .LVL383: 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5630 .loc 1 2670 8 view .LVU1970 5631 0022 CBB1 cbz r3, .L363 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5632 .loc 1 2670 25 discriminator 1 view .LVU1971 5633 0024 BAF1000F cmp r10, #0 5634 0028 16D0 beq .L363 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5635 .loc 1 2677 5 is_stmt 1 view .LVU1972 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5636 .loc 1 2677 5 view .LVU1973 5637 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5638 002e 012B cmp r3, #1 5639 0030 00F0B380 beq .L372 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5640 .loc 1 2677 5 discriminator 2 view .LVU1974 5641 0034 4FF0010B mov fp, #1 5642 0038 80F840B0 strb fp, [r0, #64] 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5643 .loc 1 2677 5 discriminator 2 view .LVU1975 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5644 .loc 1 2680 5 view .LVU1976 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 263 5645 .loc 1 2680 17 is_stmt 0 view .LVU1977 5646 003c FFF7FEFF bl HAL_GetTick 5647 .LVL384: 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5648 .loc 1 2680 17 view .LVU1978 5649 0040 0746 mov r7, r0 5650 .LVL385: 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5651 .loc 1 2682 5 is_stmt 1 view .LVU1979 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5652 .loc 1 2682 9 is_stmt 0 view .LVU1980 5653 0042 0090 str r0, [sp] 5654 0044 1923 movs r3, #25 5655 0046 5A46 mov r2, fp 5656 0048 4FF40041 mov r1, #32768 5657 004c 2046 mov r0, r4 5658 .LVL386: 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5659 .loc 1 2682 9 view .LVU1981 5660 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5661 .LVL387: 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5662 .loc 1 2682 8 discriminator 1 view .LVU1982 5663 0052 30B1 cbz r0, .L378 2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5664 .loc 1 2684 14 view .LVU1983 5665 0054 0120 movs r0, #1 5666 0056 9DE0 b .L362 5667 .LVL388: 5668 .L363: 2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5669 .loc 1 2672 7 is_stmt 1 view .LVU1984 2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5670 .loc 1 2672 23 is_stmt 0 view .LVU1985 5671 0058 4FF40073 mov r3, #512 5672 005c 6364 str r3, [r4, #68] 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5673 .loc 1 2673 7 is_stmt 1 view .LVU1986 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5674 .loc 1 2673 15 is_stmt 0 view .LVU1987 5675 005e 0120 movs r0, #1 5676 .LVL389: 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5677 .loc 1 2673 15 view .LVU1988 5678 0060 98E0 b .L362 5679 .LVL390: 5680 .L378: 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5681 .loc 1 2687 5 is_stmt 1 view .LVU1989 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5682 .loc 1 2687 21 is_stmt 0 view .LVU1990 5683 0062 2223 movs r3, #34 5684 0064 84F84130 strb r3, [r4, #65] 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5685 .loc 1 2688 5 is_stmt 1 view .LVU1991 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5686 .loc 1 2688 21 is_stmt 0 view .LVU1992 ARM GAS /tmp/ccclMPzv.s page 264 5687 0068 4023 movs r3, #64 5688 006a 84F84230 strb r3, [r4, #66] 2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5689 .loc 1 2689 5 is_stmt 1 view .LVU1993 2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5690 .loc 1 2689 21 is_stmt 0 view .LVU1994 5691 006e 0023 movs r3, #0 5692 0070 6364 str r3, [r4, #68] 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5693 .loc 1 2692 5 is_stmt 1 view .LVU1995 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 5694 .loc 1 2692 21 is_stmt 0 view .LVU1996 5695 0072 0C9A ldr r2, [sp, #48] 5696 0074 6262 str r2, [r4, #36] 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5697 .loc 1 2693 5 is_stmt 1 view .LVU1997 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 5698 .loc 1 2693 21 is_stmt 0 view .LVU1998 5699 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5700 .loc 1 2694 5 is_stmt 1 view .LVU1999 2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5701 .loc 1 2694 21 is_stmt 0 view .LVU2000 5702 007a 6363 str r3, [r4, #52] 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5703 .loc 1 2697 5 is_stmt 1 view .LVU2001 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5704 .loc 1 2697 9 is_stmt 0 view .LVU2002 5705 007c 0197 str r7, [sp, #4] 5706 007e 0095 str r5, [sp] 5707 0080 4B46 mov r3, r9 5708 0082 4246 mov r2, r8 5709 0084 3146 mov r1, r6 5710 0086 2046 mov r0, r4 5711 0088 FFF7FEFF bl I2C_RequestMemoryRead 5712 .LVL391: 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5713 .loc 1 2697 8 discriminator 1 view .LVU2003 5714 008c 70B9 cbnz r0, .L379 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5715 .loc 1 2706 5 is_stmt 1 view .LVU2004 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5716 .loc 1 2706 13 is_stmt 0 view .LVU2005 5717 008e 638D ldrh r3, [r4, #42] 5718 0090 9BB2 uxth r3, r3 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5719 .loc 1 2706 8 view .LVU2006 5720 0092 FF2B cmp r3, #255 5721 0094 0FD9 bls .L366 2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5722 .loc 1 2708 7 is_stmt 1 view .LVU2007 2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5723 .loc 1 2708 22 is_stmt 0 view .LVU2008 5724 0096 FF22 movs r2, #255 5725 0098 2285 strh r2, [r4, #40] @ movhi 2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5726 .loc 1 2709 7 is_stmt 1 view .LVU2009 ARM GAS /tmp/ccclMPzv.s page 265 5727 009a 444B ldr r3, .L381 5728 009c 0093 str r3, [sp] 5729 009e 4FF08073 mov r3, #16777216 5730 00a2 3146 mov r1, r6 5731 00a4 2046 mov r0, r4 5732 00a6 FFF7FEFF bl I2C_TransferConfig 5733 .LVL392: 5734 00aa 21E0 b .L370 5735 .L379: 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5736 .loc 1 2700 7 view .LVU2010 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5737 .loc 1 2700 7 view .LVU2011 5738 00ac 0023 movs r3, #0 5739 00ae 84F84030 strb r3, [r4, #64] 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 5740 .loc 1 2700 7 view .LVU2012 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5741 .loc 1 2701 7 view .LVU2013 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5742 .loc 1 2701 14 is_stmt 0 view .LVU2014 5743 00b2 5846 mov r0, fp 5744 00b4 6EE0 b .L362 5745 .L366: 2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5746 .loc 1 2714 7 is_stmt 1 view .LVU2015 2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5747 .loc 1 2714 28 is_stmt 0 view .LVU2016 5748 00b6 628D ldrh r2, [r4, #42] 5749 00b8 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, 5750 .loc 1 2714 22 view .LVU2017 5751 00ba 2285 strh r2, [r4, #40] @ movhi 2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5752 .loc 1 2715 7 is_stmt 1 view .LVU2018 5753 00bc 3B4B ldr r3, .L381 5754 00be 0093 str r3, [sp] 5755 00c0 4FF00073 mov r3, #33554432 5756 00c4 D2B2 uxtb r2, r2 5757 00c6 3146 mov r1, r6 5758 00c8 2046 mov r0, r4 5759 00ca FFF7FEFF bl I2C_TransferConfig 5760 .LVL393: 5761 00ce 0FE0 b .L370 5762 .L369: 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5763 .loc 1 2752 11 view .LVU2019 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5764 .loc 1 2752 32 is_stmt 0 view .LVU2020 5765 00d0 628D ldrh r2, [r4, #42] 5766 00d2 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, 5767 .loc 1 2752 26 view .LVU2021 5768 00d4 2285 strh r2, [r4, #40] @ movhi 2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5769 .loc 1 2753 11 is_stmt 1 view .LVU2022 5770 00d6 0023 movs r3, #0 ARM GAS /tmp/ccclMPzv.s page 266 5771 00d8 0093 str r3, [sp] 5772 00da 4FF00073 mov r3, #33554432 5773 00de D2B2 uxtb r2, r2 5774 00e0 3146 mov r1, r6 5775 00e2 2046 mov r0, r4 5776 00e4 FFF7FEFF bl I2C_TransferConfig 5777 .LVL394: 5778 .L368: 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5779 .loc 1 2757 30 view .LVU2023 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5780 .loc 1 2757 18 is_stmt 0 view .LVU2024 5781 00e8 638D ldrh r3, [r4, #42] 5782 00ea 9BB2 uxth r3, r3 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5783 .loc 1 2757 30 view .LVU2025 5784 00ec 002B cmp r3, #0 5785 00ee 34D0 beq .L380 5786 .L370: 2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5787 .loc 1 2719 5 is_stmt 1 view .LVU2026 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5788 .loc 1 2722 7 view .LVU2027 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5789 .loc 1 2722 11 is_stmt 0 view .LVU2028 5790 00f0 0097 str r7, [sp] 5791 00f2 2B46 mov r3, r5 5792 00f4 0022 movs r2, #0 5793 00f6 0421 movs r1, #4 5794 00f8 2046 mov r0, r4 5795 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5796 .LVL395: 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5797 .loc 1 2722 10 discriminator 1 view .LVU2029 5798 00fe 0028 cmp r0, #0 5799 0100 4DD1 bne .L374 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5800 .loc 1 2728 7 is_stmt 1 view .LVU2030 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5801 .loc 1 2728 38 is_stmt 0 view .LVU2031 5802 0102 2368 ldr r3, [r4] 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5803 .loc 1 2728 48 view .LVU2032 5804 0104 5A6A ldr r2, [r3, #36] 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5805 .loc 1 2728 12 view .LVU2033 5806 0106 636A ldr r3, [r4, #36] 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5807 .loc 1 2728 23 view .LVU2034 5808 0108 1A70 strb r2, [r3] 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5809 .loc 1 2731 7 is_stmt 1 view .LVU2035 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5810 .loc 1 2731 11 is_stmt 0 view .LVU2036 5811 010a 636A ldr r3, [r4, #36] 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5812 .loc 1 2731 21 view .LVU2037 ARM GAS /tmp/ccclMPzv.s page 267 5813 010c 0133 adds r3, r3, #1 5814 010e 6362 str r3, [r4, #36] 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5815 .loc 1 2733 7 is_stmt 1 view .LVU2038 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5816 .loc 1 2733 11 is_stmt 0 view .LVU2039 5817 0110 228D ldrh r2, [r4, #40] 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 5818 .loc 1 2733 21 view .LVU2040 5819 0112 013A subs r2, r2, #1 5820 0114 92B2 uxth r2, r2 5821 0116 2285 strh r2, [r4, #40] @ movhi 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5822 .loc 1 2734 7 is_stmt 1 view .LVU2041 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5823 .loc 1 2734 11 is_stmt 0 view .LVU2042 5824 0118 638D ldrh r3, [r4, #42] 5825 011a 9BB2 uxth r3, r3 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5826 .loc 1 2734 22 view .LVU2043 5827 011c 013B subs r3, r3, #1 5828 011e 9BB2 uxth r3, r3 5829 0120 6385 strh r3, [r4, #42] @ movhi 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5830 .loc 1 2736 7 is_stmt 1 view .LVU2044 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5831 .loc 1 2736 16 is_stmt 0 view .LVU2045 5832 0122 638D ldrh r3, [r4, #42] 5833 0124 9BB2 uxth r3, r3 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5834 .loc 1 2736 10 view .LVU2046 5835 0126 002B cmp r3, #0 5836 0128 DED0 beq .L368 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5837 .loc 1 2736 35 discriminator 1 view .LVU2047 5838 012a 002A cmp r2, #0 5839 012c DCD1 bne .L368 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5840 .loc 1 2739 9 is_stmt 1 view .LVU2048 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5841 .loc 1 2739 13 is_stmt 0 view .LVU2049 5842 012e 0097 str r7, [sp] 5843 0130 2B46 mov r3, r5 5844 0132 8021 movs r1, #128 5845 0134 2046 mov r0, r4 5846 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5847 .LVL396: 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5848 .loc 1 2739 12 discriminator 1 view .LVU2050 5849 013a 90BB cbnz r0, .L375 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5850 .loc 1 2744 9 is_stmt 1 view .LVU2051 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5851 .loc 1 2744 17 is_stmt 0 view .LVU2052 5852 013c 638D ldrh r3, [r4, #42] 5853 013e 9BB2 uxth r3, r3 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 268 5854 .loc 1 2744 12 view .LVU2053 5855 0140 FF2B cmp r3, #255 5856 0142 C5D9 bls .L369 2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5857 .loc 1 2746 11 is_stmt 1 view .LVU2054 2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5858 .loc 1 2746 26 is_stmt 0 view .LVU2055 5859 0144 FF22 movs r2, #255 5860 0146 2285 strh r2, [r4, #40] @ movhi 2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5861 .loc 1 2747 11 is_stmt 1 view .LVU2056 5862 0148 0023 movs r3, #0 5863 014a 0093 str r3, [sp] 5864 014c 4FF08073 mov r3, #16777216 5865 0150 3146 mov r1, r6 5866 0152 2046 mov r0, r4 5867 0154 FFF7FEFF bl I2C_TransferConfig 5868 .LVL397: 5869 0158 C6E7 b .L368 5870 .L380: 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5871 .loc 1 2761 5 view .LVU2057 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5872 .loc 1 2761 9 is_stmt 0 view .LVU2058 5873 015a 3A46 mov r2, r7 5874 015c 2946 mov r1, r5 5875 015e 2046 mov r0, r4 5876 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5877 .LVL398: 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5878 .loc 1 2761 8 discriminator 1 view .LVU2059 5879 0164 F8B9 cbnz r0, .L376 2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5880 .loc 1 2767 5 is_stmt 1 view .LVU2060 5881 0166 2368 ldr r3, [r4] 5882 0168 2022 movs r2, #32 5883 016a DA61 str r2, [r3, #28] 2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5884 .loc 1 2770 5 view .LVU2061 5885 016c 2168 ldr r1, [r4] 5886 016e 4B68 ldr r3, [r1, #4] 5887 0170 23F0FF73 bic r3, r3, #33423360 5888 0174 23F48B33 bic r3, r3, #71168 5889 0178 23F4FF73 bic r3, r3, #510 5890 017c 23F00103 bic r3, r3, #1 5891 0180 4B60 str r3, [r1, #4] 2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5892 .loc 1 2772 5 view .LVU2062 2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5893 .loc 1 2772 17 is_stmt 0 view .LVU2063 5894 0182 84F84120 strb r2, [r4, #65] 2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5895 .loc 1 2773 5 is_stmt 1 view .LVU2064 2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5896 .loc 1 2773 17 is_stmt 0 view .LVU2065 5897 0186 0023 movs r3, #0 5898 0188 84F84230 strb r3, [r4, #66] ARM GAS /tmp/ccclMPzv.s page 269 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5899 .loc 1 2776 5 is_stmt 1 view .LVU2066 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5900 .loc 1 2776 5 view .LVU2067 5901 018c 84F84030 strb r3, [r4, #64] 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5902 .loc 1 2776 5 view .LVU2068 2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5903 .loc 1 2778 5 view .LVU2069 2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5904 .loc 1 2778 12 is_stmt 0 view .LVU2070 5905 0190 00E0 b .L362 5906 .LVL399: 5907 .L371: 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5908 .loc 1 2782 12 view .LVU2071 5909 0192 0220 movs r0, #2 5910 .LVL400: 5911 .L362: 2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /** 5912 .loc 1 2784 1 view .LVU2072 5913 0194 03B0 add sp, sp, #12 5914 .LCFI64: 5915 .cfi_remember_state 5916 .cfi_def_cfa_offset 36 5917 @ sp needed 5918 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5919 .LVL401: 5920 .L372: 5921 .LCFI65: 5922 .cfi_restore_state 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5923 .loc 1 2677 5 discriminator 1 view .LVU2073 5924 019a 0220 movs r0, #2 5925 .LVL402: 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5926 .loc 1 2677 5 discriminator 1 view .LVU2074 5927 019c FAE7 b .L362 5928 .LVL403: 5929 .L374: 2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5930 .loc 1 2724 16 view .LVU2075 5931 019e 0120 movs r0, #1 5932 01a0 F8E7 b .L362 5933 .L375: 2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5934 .loc 1 2741 18 view .LVU2076 5935 01a2 0120 movs r0, #1 5936 01a4 F6E7 b .L362 5937 .L376: 2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 5938 .loc 1 2763 14 view .LVU2077 5939 01a6 0120 movs r0, #1 5940 01a8 F4E7 b .L362 5941 .L382: 5942 01aa 00BF .align 2 5943 .L381: ARM GAS /tmp/ccclMPzv.s page 270 5944 01ac 00240080 .word -2147474432 5945 .cfi_endproc 5946 .LFE346: 5948 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5949 .align 1 5950 .global HAL_I2C_Mem_Write_IT 5951 .syntax unified 5952 .thumb 5953 .thumb_func 5955 HAL_I2C_Mem_Write_IT: 5956 .LVL404: 5957 .LFB347: 2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 5958 .loc 1 2799 1 is_stmt 1 view -0 5959 .cfi_startproc 5960 @ args = 8, pretend = 0, frame = 0 5961 @ frame_needed = 0, uses_anonymous_args = 0 2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 5962 .loc 1 2799 1 is_stmt 0 view .LVU2079 5963 0000 70B5 push {r4, r5, r6, lr} 5964 .LCFI66: 5965 .cfi_def_cfa_offset 16 5966 .cfi_offset 4, -16 5967 .cfi_offset 5, -12 5968 .cfi_offset 6, -8 5969 .cfi_offset 14, -4 5970 0002 82B0 sub sp, sp, #8 5971 .LCFI67: 5972 .cfi_def_cfa_offset 24 5973 0004 0446 mov r4, r0 5974 0006 1D46 mov r5, r3 5975 0008 BDF81C30 ldrh r3, [sp, #28] 5976 .LVL405: 2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 5977 .loc 1 2801 3 is_stmt 1 view .LVU2080 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5978 .loc 1 2803 3 view .LVU2081 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5979 .loc 1 2803 11 is_stmt 0 view .LVU2082 5980 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5981 .LVL406: 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5982 .loc 1 2803 11 view .LVU2083 5983 0010 C0B2 uxtb r0, r0 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5984 .loc 1 2803 6 view .LVU2084 5985 0012 2028 cmp r0, #32 5986 0014 43D1 bne .L389 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5987 .loc 1 2805 5 is_stmt 1 view .LVU2085 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5988 .loc 1 2805 8 is_stmt 0 view .LVU2086 5989 0016 0698 ldr r0, [sp, #24] 5990 0018 0028 cmp r0, #0 5991 001a 35D0 beq .L385 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5992 .loc 1 2805 25 discriminator 1 view .LVU2087 ARM GAS /tmp/ccclMPzv.s page 271 5993 001c 002B cmp r3, #0 5994 001e 33D0 beq .L385 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5995 .loc 1 2811 5 is_stmt 1 view .LVU2088 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5996 .loc 1 2811 9 is_stmt 0 view .LVU2089 5997 0020 2068 ldr r0, [r4] 5998 0022 8669 ldr r6, [r0, #24] 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 5999 .loc 1 2811 8 view .LVU2090 6000 0024 16F4004F tst r6, #32768 6001 0028 3CD1 bne .L390 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6002 .loc 1 2817 5 is_stmt 1 view .LVU2091 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6003 .loc 1 2817 5 view .LVU2092 6004 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6005 002e 012E cmp r6, #1 6006 0030 3AD0 beq .L391 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6007 .loc 1 2817 5 discriminator 2 view .LVU2093 6008 0032 0126 movs r6, #1 6009 0034 84F84060 strb r6, [r4, #64] 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6010 .loc 1 2817 5 discriminator 2 view .LVU2094 2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6011 .loc 1 2819 5 view .LVU2095 2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6012 .loc 1 2819 23 is_stmt 0 view .LVU2096 6013 0038 2126 movs r6, #33 6014 003a 84F84160 strb r6, [r4, #65] 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6015 .loc 1 2820 5 is_stmt 1 view .LVU2097 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6016 .loc 1 2820 23 is_stmt 0 view .LVU2098 6017 003e 4026 movs r6, #64 6018 0040 84F84260 strb r6, [r4, #66] 2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6019 .loc 1 2821 5 is_stmt 1 view .LVU2099 2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6020 .loc 1 2821 23 is_stmt 0 view .LVU2100 6021 0044 0026 movs r6, #0 6022 0046 6664 str r6, [r4, #68] 2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 6023 .loc 1 2824 5 is_stmt 1 view .LVU2101 2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 6024 .loc 1 2824 23 is_stmt 0 view .LVU2102 6025 0048 2685 strh r6, [r4, #40] @ movhi 2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6026 .loc 1 2825 5 is_stmt 1 view .LVU2103 2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6027 .loc 1 2825 23 is_stmt 0 view .LVU2104 6028 004a 069E ldr r6, [sp, #24] 6029 004c 6662 str r6, [r4, #36] 2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6030 .loc 1 2826 5 is_stmt 1 view .LVU2105 2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; ARM GAS /tmp/ccclMPzv.s page 272 6031 .loc 1 2826 23 is_stmt 0 view .LVU2106 6032 004e 6385 strh r3, [r4, #42] @ movhi 2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6033 .loc 1 2827 5 is_stmt 1 view .LVU2107 2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6034 .loc 1 2827 23 is_stmt 0 view .LVU2108 6035 0050 164B ldr r3, .L394 6036 0052 E362 str r3, [r4, #44] 2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6037 .loc 1 2828 5 is_stmt 1 view .LVU2109 2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6038 .loc 1 2828 23 is_stmt 0 view .LVU2110 6039 0054 164B ldr r3, .L394+4 6040 0056 6363 str r3, [r4, #52] 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6041 .loc 1 2829 5 is_stmt 1 view .LVU2111 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6042 .loc 1 2829 23 is_stmt 0 view .LVU2112 6043 0058 E164 str r1, [r4, #76] 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6044 .loc 1 2832 5 is_stmt 1 view .LVU2113 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6045 .loc 1 2832 8 is_stmt 0 view .LVU2114 6046 005a 012D cmp r5, #1 6047 005c 19D0 beq .L393 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6048 .loc 1 2844 7 is_stmt 1 view .LVU2115 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6049 .loc 1 2844 30 is_stmt 0 view .LVU2116 6050 005e 130A lsrs r3, r2, #8 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6051 .loc 1 2844 28 view .LVU2117 6052 0060 8362 str r3, [r0, #40] 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6053 .loc 1 2847 7 is_stmt 1 view .LVU2118 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6054 .loc 1 2847 26 is_stmt 0 view .LVU2119 6055 0062 D2B2 uxtb r2, r2 6056 .LVL407: 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6057 .loc 1 2847 24 view .LVU2120 6058 0064 2265 str r2, [r4, #80] 6059 .L388: 2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6060 .loc 1 2850 5 is_stmt 1 view .LVU2121 6061 0066 134B ldr r3, .L394+8 6062 0068 0093 str r3, [sp] 6063 006a 4FF08073 mov r3, #16777216 6064 006e EAB2 uxtb r2, r5 6065 0070 2046 mov r0, r4 6066 0072 FFF7FEFF bl I2C_TransferConfig 6067 .LVL408: 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6068 .loc 1 2853 5 view .LVU2122 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6069 .loc 1 2853 5 view .LVU2123 6070 0076 0025 movs r5, #0 ARM GAS /tmp/ccclMPzv.s page 273 6071 .LVL409: 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6072 .loc 1 2853 5 is_stmt 0 view .LVU2124 6073 0078 84F84050 strb r5, [r4, #64] 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6074 .loc 1 2853 5 is_stmt 1 view .LVU2125 2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6075 .loc 1 2863 5 view .LVU2126 6076 007c 0121 movs r1, #1 6077 007e 2046 mov r0, r4 6078 0080 FFF7FEFF bl I2C_Enable_IRQ 6079 .LVL410: 2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6080 .loc 1 2865 5 view .LVU2127 2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6081 .loc 1 2865 12 is_stmt 0 view .LVU2128 6082 0084 2846 mov r0, r5 6083 0086 0BE0 b .L384 6084 .LVL411: 6085 .L385: 2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6086 .loc 1 2807 7 is_stmt 1 view .LVU2129 2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6087 .loc 1 2807 23 is_stmt 0 view .LVU2130 6088 0088 4FF40073 mov r3, #512 6089 008c 6364 str r3, [r4, #68] 2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6090 .loc 1 2808 7 is_stmt 1 view .LVU2131 2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6091 .loc 1 2808 15 is_stmt 0 view .LVU2132 6092 008e 0120 movs r0, #1 6093 0090 06E0 b .L384 6094 .L393: 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6095 .loc 1 2835 7 is_stmt 1 view .LVU2133 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6096 .loc 1 2835 30 is_stmt 0 view .LVU2134 6097 0092 D2B2 uxtb r2, r2 6098 .LVL412: 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6099 .loc 1 2835 28 view .LVU2135 6100 0094 8262 str r2, [r0, #40] 2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6101 .loc 1 2838 7 is_stmt 1 view .LVU2136 2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6102 .loc 1 2838 24 is_stmt 0 view .LVU2137 6103 0096 4FF0FF33 mov r3, #-1 6104 009a 2365 str r3, [r4, #80] 6105 009c E3E7 b .L388 6106 .LVL413: 6107 .L389: 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6108 .loc 1 2869 12 view .LVU2138 6109 009e 0220 movs r0, #2 6110 .LVL414: 6111 .L384: 2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 274 6112 .loc 1 2871 1 view .LVU2139 6113 00a0 02B0 add sp, sp, #8 6114 .LCFI68: 6115 .cfi_remember_state 6116 .cfi_def_cfa_offset 16 6117 @ sp needed 6118 00a2 70BD pop {r4, r5, r6, pc} 6119 .LVL415: 6120 .L390: 6121 .LCFI69: 6122 .cfi_restore_state 2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6123 .loc 1 2813 14 view .LVU2140 6124 00a4 0220 movs r0, #2 6125 00a6 FBE7 b .L384 6126 .L391: 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6127 .loc 1 2817 5 discriminator 1 view .LVU2141 6128 00a8 0220 movs r0, #2 6129 00aa F9E7 b .L384 6130 .L395: 6131 .align 2 6132 .L394: 6133 00ac 0000FFFF .word -65536 6134 00b0 00000000 .word I2C_Mem_ISR_IT 6135 00b4 00200080 .word -2147475456 6136 .cfi_endproc 6137 .LFE347: 6139 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 6140 .align 1 6141 .global HAL_I2C_Mem_Read_IT 6142 .syntax unified 6143 .thumb 6144 .thumb_func 6146 HAL_I2C_Mem_Read_IT: 6147 .LVL416: 6148 .LFB348: 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 6149 .loc 1 2887 1 is_stmt 1 view -0 6150 .cfi_startproc 6151 @ args = 8, pretend = 0, frame = 0 6152 @ frame_needed = 0, uses_anonymous_args = 0 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Check the parameters */ 6153 .loc 1 2887 1 is_stmt 0 view .LVU2143 6154 0000 70B5 push {r4, r5, r6, lr} 6155 .LCFI70: 6156 .cfi_def_cfa_offset 16 6157 .cfi_offset 4, -16 6158 .cfi_offset 5, -12 6159 .cfi_offset 6, -8 6160 .cfi_offset 14, -4 6161 0002 82B0 sub sp, sp, #8 6162 .LCFI71: 6163 .cfi_def_cfa_offset 24 6164 0004 0446 mov r4, r0 6165 0006 1D46 mov r5, r3 6166 0008 BDF81C30 ldrh r3, [sp, #28] ARM GAS /tmp/ccclMPzv.s page 275 6167 .LVL417: 2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6168 .loc 1 2889 3 is_stmt 1 view .LVU2144 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6169 .loc 1 2891 3 view .LVU2145 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6170 .loc 1 2891 11 is_stmt 0 view .LVU2146 6171 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6172 .LVL418: 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6173 .loc 1 2891 11 view .LVU2147 6174 0010 C0B2 uxtb r0, r0 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6175 .loc 1 2891 6 view .LVU2148 6176 0012 2028 cmp r0, #32 6177 0014 41D1 bne .L402 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6178 .loc 1 2893 5 is_stmt 1 view .LVU2149 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6179 .loc 1 2893 8 is_stmt 0 view .LVU2150 6180 0016 0698 ldr r0, [sp, #24] 6181 0018 0028 cmp r0, #0 6182 001a 33D0 beq .L398 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6183 .loc 1 2893 25 discriminator 1 view .LVU2151 6184 001c 002B cmp r3, #0 6185 001e 31D0 beq .L398 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6186 .loc 1 2899 5 is_stmt 1 view .LVU2152 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6187 .loc 1 2899 9 is_stmt 0 view .LVU2153 6188 0020 2068 ldr r0, [r4] 6189 0022 8669 ldr r6, [r0, #24] 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6190 .loc 1 2899 8 view .LVU2154 6191 0024 16F4004F tst r6, #32768 6192 0028 3AD1 bne .L403 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6193 .loc 1 2905 5 is_stmt 1 view .LVU2155 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6194 .loc 1 2905 5 view .LVU2156 6195 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6196 002e 012E cmp r6, #1 6197 0030 38D0 beq .L404 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6198 .loc 1 2905 5 discriminator 2 view .LVU2157 6199 0032 0126 movs r6, #1 6200 0034 84F84060 strb r6, [r4, #64] 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6201 .loc 1 2905 5 discriminator 2 view .LVU2158 2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6202 .loc 1 2907 5 view .LVU2159 2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6203 .loc 1 2907 23 is_stmt 0 view .LVU2160 6204 0038 2226 movs r6, #34 6205 003a 84F84160 strb r6, [r4, #65] 2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccclMPzv.s page 276 6206 .loc 1 2908 5 is_stmt 1 view .LVU2161 2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6207 .loc 1 2908 23 is_stmt 0 view .LVU2162 6208 003e 4026 movs r6, #64 6209 0040 84F84260 strb r6, [r4, #66] 2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6210 .loc 1 2909 5 is_stmt 1 view .LVU2163 2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6211 .loc 1 2909 23 is_stmt 0 view .LVU2164 6212 0044 0026 movs r6, #0 6213 0046 6664 str r6, [r4, #68] 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6214 .loc 1 2912 5 is_stmt 1 view .LVU2165 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6215 .loc 1 2912 23 is_stmt 0 view .LVU2166 6216 0048 069E ldr r6, [sp, #24] 6217 004a 6662 str r6, [r4, #36] 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6218 .loc 1 2913 5 is_stmt 1 view .LVU2167 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6219 .loc 1 2913 23 is_stmt 0 view .LVU2168 6220 004c 6385 strh r3, [r4, #42] @ movhi 2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6221 .loc 1 2914 5 is_stmt 1 view .LVU2169 2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6222 .loc 1 2914 23 is_stmt 0 view .LVU2170 6223 004e 164B ldr r3, .L407 6224 0050 E362 str r3, [r4, #44] 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6225 .loc 1 2915 5 is_stmt 1 view .LVU2171 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6226 .loc 1 2915 23 is_stmt 0 view .LVU2172 6227 0052 164B ldr r3, .L407+4 6228 0054 6363 str r3, [r4, #52] 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6229 .loc 1 2916 5 is_stmt 1 view .LVU2173 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6230 .loc 1 2916 23 is_stmt 0 view .LVU2174 6231 0056 E164 str r1, [r4, #76] 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6232 .loc 1 2919 5 is_stmt 1 view .LVU2175 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6233 .loc 1 2919 8 is_stmt 0 view .LVU2176 6234 0058 012D cmp r5, #1 6235 005a 18D0 beq .L406 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6236 .loc 1 2931 7 is_stmt 1 view .LVU2177 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6237 .loc 1 2931 30 is_stmt 0 view .LVU2178 6238 005c 130A lsrs r3, r2, #8 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6239 .loc 1 2931 28 view .LVU2179 6240 005e 8362 str r3, [r0, #40] 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6241 .loc 1 2934 7 is_stmt 1 view .LVU2180 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6242 .loc 1 2934 26 is_stmt 0 view .LVU2181 ARM GAS /tmp/ccclMPzv.s page 277 6243 0060 D2B2 uxtb r2, r2 6244 .LVL419: 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6245 .loc 1 2934 24 view .LVU2182 6246 0062 2265 str r2, [r4, #80] 6247 .L401: 2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6248 .loc 1 2937 5 is_stmt 1 view .LVU2183 6249 0064 124B ldr r3, .L407+8 6250 0066 0093 str r3, [sp] 6251 0068 0023 movs r3, #0 6252 006a EAB2 uxtb r2, r5 6253 006c 2046 mov r0, r4 6254 006e FFF7FEFF bl I2C_TransferConfig 6255 .LVL420: 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6256 .loc 1 2940 5 view .LVU2184 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6257 .loc 1 2940 5 view .LVU2185 6258 0072 0025 movs r5, #0 6259 .LVL421: 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6260 .loc 1 2940 5 is_stmt 0 view .LVU2186 6261 0074 84F84050 strb r5, [r4, #64] 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6262 .loc 1 2940 5 is_stmt 1 view .LVU2187 2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6263 .loc 1 2950 5 view .LVU2188 6264 0078 0121 movs r1, #1 6265 007a 2046 mov r0, r4 6266 007c FFF7FEFF bl I2C_Enable_IRQ 6267 .LVL422: 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6268 .loc 1 2952 5 view .LVU2189 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6269 .loc 1 2952 12 is_stmt 0 view .LVU2190 6270 0080 2846 mov r0, r5 6271 0082 0BE0 b .L397 6272 .LVL423: 6273 .L398: 2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6274 .loc 1 2895 7 is_stmt 1 view .LVU2191 2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6275 .loc 1 2895 23 is_stmt 0 view .LVU2192 6276 0084 4FF40073 mov r3, #512 6277 0088 6364 str r3, [r4, #68] 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6278 .loc 1 2896 7 is_stmt 1 view .LVU2193 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6279 .loc 1 2896 15 is_stmt 0 view .LVU2194 6280 008a 0120 movs r0, #1 6281 008c 06E0 b .L397 6282 .L406: 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6283 .loc 1 2922 7 is_stmt 1 view .LVU2195 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6284 .loc 1 2922 30 is_stmt 0 view .LVU2196 ARM GAS /tmp/ccclMPzv.s page 278 6285 008e D2B2 uxtb r2, r2 6286 .LVL424: 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6287 .loc 1 2922 28 view .LVU2197 6288 0090 8262 str r2, [r0, #40] 2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6289 .loc 1 2925 7 is_stmt 1 view .LVU2198 2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6290 .loc 1 2925 24 is_stmt 0 view .LVU2199 6291 0092 4FF0FF33 mov r3, #-1 6292 0096 2365 str r3, [r4, #80] 6293 0098 E4E7 b .L401 6294 .LVL425: 6295 .L402: 2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6296 .loc 1 2956 12 view .LVU2200 6297 009a 0220 movs r0, #2 6298 .LVL426: 6299 .L397: 2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6300 .loc 1 2958 1 view .LVU2201 6301 009c 02B0 add sp, sp, #8 6302 .LCFI72: 6303 .cfi_remember_state 6304 .cfi_def_cfa_offset 16 6305 @ sp needed 6306 009e 70BD pop {r4, r5, r6, pc} 6307 .LVL427: 6308 .L403: 6309 .LCFI73: 6310 .cfi_restore_state 2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6311 .loc 1 2901 14 view .LVU2202 6312 00a0 0220 movs r0, #2 6313 00a2 FBE7 b .L397 6314 .L404: 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6315 .loc 1 2905 5 discriminator 1 view .LVU2203 6316 00a4 0220 movs r0, #2 6317 00a6 F9E7 b .L397 6318 .L408: 6319 .align 2 6320 .L407: 6321 00a8 0000FFFF .word -65536 6322 00ac 00000000 .word I2C_Mem_ISR_IT 6323 00b0 00200080 .word -2147475456 6324 .cfi_endproc 6325 .LFE348: 6327 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6328 .align 1 6329 .global HAL_I2C_Mem_Write_DMA 6330 .syntax unified 6331 .thumb 6332 .thumb_func 6334 HAL_I2C_Mem_Write_DMA: 6335 .LVL428: 6336 .LFB349: ARM GAS /tmp/ccclMPzv.s page 279 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6337 .loc 1 2974 1 is_stmt 1 view -0 6338 .cfi_startproc 6339 @ args = 8, pretend = 0, frame = 0 6340 @ frame_needed = 0, uses_anonymous_args = 0 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6341 .loc 1 2974 1 is_stmt 0 view .LVU2205 6342 0000 F0B5 push {r4, r5, r6, r7, lr} 6343 .LCFI74: 6344 .cfi_def_cfa_offset 20 6345 .cfi_offset 4, -20 6346 .cfi_offset 5, -16 6347 .cfi_offset 6, -12 6348 .cfi_offset 7, -8 6349 .cfi_offset 14, -4 6350 0002 83B0 sub sp, sp, #12 6351 .LCFI75: 6352 .cfi_def_cfa_offset 32 6353 0004 0446 mov r4, r0 6354 0006 0E46 mov r6, r1 6355 0008 1F46 mov r7, r3 6356 000a 0899 ldr r1, [sp, #32] 6357 .LVL429: 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6358 .loc 1 2974 1 view .LVU2206 6359 000c BDF82430 ldrh r3, [sp, #36] 6360 .LVL430: 2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6361 .loc 1 2975 3 is_stmt 1 view .LVU2207 2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6362 .loc 1 2978 3 view .LVU2208 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6363 .loc 1 2980 3 view .LVU2209 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6364 .loc 1 2980 11 is_stmt 0 view .LVU2210 6365 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6366 .LVL431: 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6367 .loc 1 2980 11 view .LVU2211 6368 0014 C0B2 uxtb r0, r0 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6369 .loc 1 2980 6 view .LVU2212 6370 0016 2028 cmp r0, #32 6371 0018 7AD1 bne .L420 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6372 .loc 1 2982 5 is_stmt 1 view .LVU2213 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6373 .loc 1 2982 8 is_stmt 0 view .LVU2214 6374 001a 0029 cmp r1, #0 6375 001c 4BD0 beq .L411 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6376 .loc 1 2982 25 discriminator 1 view .LVU2215 6377 001e 002B cmp r3, #0 6378 0020 49D0 beq .L411 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6379 .loc 1 2988 5 is_stmt 1 view .LVU2216 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 280 6380 .loc 1 2988 9 is_stmt 0 view .LVU2217 6381 0022 2068 ldr r0, [r4] 6382 0024 8569 ldr r5, [r0, #24] 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6383 .loc 1 2988 8 view .LVU2218 6384 0026 15F4004F tst r5, #32768 6385 002a 75D1 bne .L421 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6386 .loc 1 2994 5 is_stmt 1 view .LVU2219 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6387 .loc 1 2994 5 view .LVU2220 6388 002c 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 6389 0030 012D cmp r5, #1 6390 0032 73D0 beq .L422 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6391 .loc 1 2994 5 discriminator 2 view .LVU2221 6392 0034 0125 movs r5, #1 6393 0036 84F84050 strb r5, [r4, #64] 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6394 .loc 1 2994 5 discriminator 2 view .LVU2222 2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6395 .loc 1 2996 5 view .LVU2223 2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6396 .loc 1 2996 23 is_stmt 0 view .LVU2224 6397 003a 2125 movs r5, #33 6398 003c 84F84150 strb r5, [r4, #65] 2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6399 .loc 1 2997 5 is_stmt 1 view .LVU2225 2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6400 .loc 1 2997 23 is_stmt 0 view .LVU2226 6401 0040 4025 movs r5, #64 6402 0042 84F84250 strb r5, [r4, #66] 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6403 .loc 1 2998 5 is_stmt 1 view .LVU2227 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6404 .loc 1 2998 23 is_stmt 0 view .LVU2228 6405 0046 0025 movs r5, #0 6406 0048 6564 str r5, [r4, #68] 3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6407 .loc 1 3001 5 is_stmt 1 view .LVU2229 3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6408 .loc 1 3001 23 is_stmt 0 view .LVU2230 6409 004a 6162 str r1, [r4, #36] 3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6410 .loc 1 3002 5 is_stmt 1 view .LVU2231 3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6411 .loc 1 3002 23 is_stmt 0 view .LVU2232 6412 004c 6385 strh r3, [r4, #42] @ movhi 3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6413 .loc 1 3003 5 is_stmt 1 view .LVU2233 3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6414 .loc 1 3003 23 is_stmt 0 view .LVU2234 6415 004e 344B ldr r3, .L427 6416 0050 E362 str r3, [r4, #44] 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6417 .loc 1 3004 5 is_stmt 1 view .LVU2235 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; ARM GAS /tmp/ccclMPzv.s page 281 6418 .loc 1 3004 23 is_stmt 0 view .LVU2236 6419 0052 344B ldr r3, .L427+4 6420 0054 6363 str r3, [r4, #52] 3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6421 .loc 1 3005 5 is_stmt 1 view .LVU2237 3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6422 .loc 1 3005 23 is_stmt 0 view .LVU2238 6423 0056 E664 str r6, [r4, #76] 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6424 .loc 1 3007 5 is_stmt 1 view .LVU2239 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6425 .loc 1 3007 13 is_stmt 0 view .LVU2240 6426 0058 638D ldrh r3, [r4, #42] 6427 005a 9BB2 uxth r3, r3 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6428 .loc 1 3007 8 view .LVU2241 6429 005c FF2B cmp r3, #255 6430 005e 2FD9 bls .L413 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6431 .loc 1 3009 7 is_stmt 1 view .LVU2242 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6432 .loc 1 3009 22 is_stmt 0 view .LVU2243 6433 0060 FF23 movs r3, #255 6434 0062 2385 strh r3, [r4, #40] @ movhi 6435 .L414: 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6436 .loc 1 3017 5 is_stmt 1 view .LVU2244 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6437 .loc 1 3017 8 is_stmt 0 view .LVU2245 6438 0064 012F cmp r7, #1 6439 0066 2ED0 beq .L425 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6440 .loc 1 3029 7 is_stmt 1 view .LVU2246 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6441 .loc 1 3029 30 is_stmt 0 view .LVU2247 6442 0068 130A lsrs r3, r2, #8 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6443 .loc 1 3029 28 view .LVU2248 6444 006a 8362 str r3, [r0, #40] 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6445 .loc 1 3032 7 is_stmt 1 view .LVU2249 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6446 .loc 1 3032 26 is_stmt 0 view .LVU2250 6447 006c D2B2 uxtb r2, r2 6448 .LVL432: 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6449 .loc 1 3032 24 view .LVU2251 6450 006e 2265 str r2, [r4, #80] 6451 .L416: 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6452 .loc 1 3035 5 is_stmt 1 view .LVU2252 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6453 .loc 1 3035 13 is_stmt 0 view .LVU2253 6454 0070 A36B ldr r3, [r4, #56] 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6455 .loc 1 3035 8 view .LVU2254 6456 0072 002B cmp r3, #0 ARM GAS /tmp/ccclMPzv.s page 282 6457 0074 2DD0 beq .L417 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6458 .loc 1 3038 7 is_stmt 1 view .LVU2255 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6459 .loc 1 3038 38 is_stmt 0 view .LVU2256 6460 0076 2C4A ldr r2, .L427+8 6461 0078 DA62 str r2, [r3, #44] 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6462 .loc 1 3041 7 is_stmt 1 view .LVU2257 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6463 .loc 1 3041 11 is_stmt 0 view .LVU2258 6464 007a A36B ldr r3, [r4, #56] 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6465 .loc 1 3041 39 view .LVU2259 6466 007c 2B4A ldr r2, .L427+12 6467 007e 5A63 str r2, [r3, #52] 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6468 .loc 1 3044 7 is_stmt 1 view .LVU2260 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6469 .loc 1 3044 11 is_stmt 0 view .LVU2261 6470 0080 A26B ldr r2, [r4, #56] 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6471 .loc 1 3044 42 view .LVU2262 6472 0082 0023 movs r3, #0 6473 0084 1363 str r3, [r2, #48] 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6474 .loc 1 3045 7 is_stmt 1 view .LVU2263 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6475 .loc 1 3045 11 is_stmt 0 view .LVU2264 6476 0086 A26B ldr r2, [r4, #56] 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6477 .loc 1 3045 39 view .LVU2265 6478 0088 9363 str r3, [r2, #56] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6479 .loc 1 3048 7 is_stmt 1 view .LVU2266 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6480 .loc 1 3048 86 is_stmt 0 view .LVU2267 6481 008a 2268 ldr r2, [r4] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6482 .loc 1 3048 23 view .LVU2268 6483 008c 238D ldrh r3, [r4, #40] 6484 008e 2832 adds r2, r2, #40 6485 0090 A06B ldr r0, [r4, #56] 6486 0092 FFF7FEFF bl HAL_DMA_Start_IT 6487 .LVL433: 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6488 .loc 1 3066 5 is_stmt 1 view .LVU2269 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6489 .loc 1 3066 8 is_stmt 0 view .LVU2270 6490 0096 0546 mov r5, r0 6491 0098 48B3 cbz r0, .L426 3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6492 .loc 1 3086 7 is_stmt 1 view .LVU2271 3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6493 .loc 1 3086 23 is_stmt 0 view .LVU2272 6494 009a 2023 movs r3, #32 6495 009c 84F84130 strb r3, [r4, #65] ARM GAS /tmp/ccclMPzv.s page 283 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6496 .loc 1 3087 7 is_stmt 1 view .LVU2273 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6497 .loc 1 3087 23 is_stmt 0 view .LVU2274 6498 00a0 0022 movs r2, #0 6499 00a2 84F84220 strb r2, [r4, #66] 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6500 .loc 1 3090 7 is_stmt 1 view .LVU2275 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6501 .loc 1 3090 11 is_stmt 0 view .LVU2276 6502 00a6 636C ldr r3, [r4, #68] 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6503 .loc 1 3090 23 view .LVU2277 6504 00a8 43F01003 orr r3, r3, #16 6505 00ac 6364 str r3, [r4, #68] 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6506 .loc 1 3093 7 is_stmt 1 view .LVU2278 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6507 .loc 1 3093 7 view .LVU2279 6508 00ae 84F84020 strb r2, [r4, #64] 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6509 .loc 1 3093 7 view .LVU2280 3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6510 .loc 1 3095 7 view .LVU2281 3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6511 .loc 1 3095 14 is_stmt 0 view .LVU2282 6512 00b2 0125 movs r5, #1 6513 00b4 2DE0 b .L410 6514 .LVL434: 6515 .L411: 2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6516 .loc 1 2984 7 is_stmt 1 view .LVU2283 2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6517 .loc 1 2984 23 is_stmt 0 view .LVU2284 6518 00b6 4FF40073 mov r3, #512 6519 00ba 6364 str r3, [r4, #68] 2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6520 .loc 1 2985 7 is_stmt 1 view .LVU2285 2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6521 .loc 1 2985 15 is_stmt 0 view .LVU2286 6522 00bc 0125 movs r5, #1 6523 00be 28E0 b .L410 6524 .L413: 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6525 .loc 1 3013 7 is_stmt 1 view .LVU2287 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6526 .loc 1 3013 28 is_stmt 0 view .LVU2288 6527 00c0 638D ldrh r3, [r4, #42] 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6528 .loc 1 3013 22 view .LVU2289 6529 00c2 2385 strh r3, [r4, #40] @ movhi 6530 00c4 CEE7 b .L414 6531 .L425: 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6532 .loc 1 3020 7 is_stmt 1 view .LVU2290 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6533 .loc 1 3020 30 is_stmt 0 view .LVU2291 ARM GAS /tmp/ccclMPzv.s page 284 6534 00c6 D2B2 uxtb r2, r2 6535 .LVL435: 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6536 .loc 1 3020 28 view .LVU2292 6537 00c8 8262 str r2, [r0, #40] 3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6538 .loc 1 3023 7 is_stmt 1 view .LVU2293 3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6539 .loc 1 3023 24 is_stmt 0 view .LVU2294 6540 00ca 4FF0FF33 mov r3, #-1 6541 00ce 2365 str r3, [r4, #80] 6542 00d0 CEE7 b .L416 6543 .L417: 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6544 .loc 1 3054 7 is_stmt 1 view .LVU2295 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6545 .loc 1 3054 23 is_stmt 0 view .LVU2296 6546 00d2 2023 movs r3, #32 6547 00d4 84F84130 strb r3, [r4, #65] 3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6548 .loc 1 3055 7 is_stmt 1 view .LVU2297 3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6549 .loc 1 3055 23 is_stmt 0 view .LVU2298 6550 00d8 0022 movs r2, #0 6551 00da 84F84220 strb r2, [r4, #66] 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6552 .loc 1 3058 7 is_stmt 1 view .LVU2299 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6553 .loc 1 3058 11 is_stmt 0 view .LVU2300 6554 00de 636C ldr r3, [r4, #68] 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6555 .loc 1 3058 23 view .LVU2301 6556 00e0 43F08003 orr r3, r3, #128 6557 00e4 6364 str r3, [r4, #68] 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6558 .loc 1 3061 7 is_stmt 1 view .LVU2302 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6559 .loc 1 3061 7 view .LVU2303 6560 00e6 84F84020 strb r2, [r4, #64] 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6561 .loc 1 3061 7 view .LVU2304 3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6562 .loc 1 3063 7 view .LVU2305 3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6563 .loc 1 3063 14 is_stmt 0 view .LVU2306 6564 00ea 0125 movs r5, #1 6565 00ec 11E0 b .L410 6566 .LVL436: 6567 .L426: 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6568 .loc 1 3069 7 is_stmt 1 view .LVU2307 6569 00ee 104B ldr r3, .L427+16 6570 00f0 0093 str r3, [sp] 6571 00f2 4FF08073 mov r3, #16777216 6572 00f6 FAB2 uxtb r2, r7 6573 00f8 3146 mov r1, r6 6574 00fa 2046 mov r0, r4 ARM GAS /tmp/ccclMPzv.s page 285 6575 .LVL437: 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6576 .loc 1 3069 7 is_stmt 0 view .LVU2308 6577 00fc FFF7FEFF bl I2C_TransferConfig 6578 .LVL438: 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6579 .loc 1 3072 7 is_stmt 1 view .LVU2309 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6580 .loc 1 3072 7 view .LVU2310 6581 0100 0023 movs r3, #0 6582 0102 84F84030 strb r3, [r4, #64] 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6583 .loc 1 3072 7 view .LVU2311 3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6584 .loc 1 3081 7 view .LVU2312 6585 0106 0121 movs r1, #1 6586 0108 2046 mov r0, r4 6587 010a FFF7FEFF bl I2C_Enable_IRQ 6588 .LVL439: 3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6589 .loc 1 3098 5 view .LVU2313 3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6590 .loc 1 3098 12 is_stmt 0 view .LVU2314 6591 010e 00E0 b .L410 6592 .LVL440: 6593 .L420: 3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6594 .loc 1 3102 12 view .LVU2315 6595 0110 0225 movs r5, #2 6596 .LVL441: 6597 .L410: 3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6598 .loc 1 3104 1 view .LVU2316 6599 0112 2846 mov r0, r5 6600 0114 03B0 add sp, sp, #12 6601 .LCFI76: 6602 .cfi_remember_state 6603 .cfi_def_cfa_offset 20 6604 @ sp needed 6605 0116 F0BD pop {r4, r5, r6, r7, pc} 6606 .LVL442: 6607 .L421: 6608 .LCFI77: 6609 .cfi_restore_state 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6610 .loc 1 2990 14 view .LVU2317 6611 0118 0225 movs r5, #2 6612 011a FAE7 b .L410 6613 .L422: 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6614 .loc 1 2994 5 discriminator 1 view .LVU2318 6615 011c 0225 movs r5, #2 6616 011e F8E7 b .L410 6617 .L428: 6618 .align 2 6619 .L427: 6620 0120 0000FFFF .word -65536 ARM GAS /tmp/ccclMPzv.s page 286 6621 0124 00000000 .word I2C_Mem_ISR_DMA 6622 0128 00000000 .word I2C_DMAMasterTransmitCplt 6623 012c 00000000 .word I2C_DMAError 6624 0130 00200080 .word -2147475456 6625 .cfi_endproc 6626 .LFE349: 6628 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6629 .align 1 6630 .global HAL_I2C_Mem_Read_DMA 6631 .syntax unified 6632 .thumb 6633 .thumb_func 6635 HAL_I2C_Mem_Read_DMA: 6636 .LVL443: 6637 .LFB350: 3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6638 .loc 1 3120 1 is_stmt 1 view -0 6639 .cfi_startproc 6640 @ args = 8, pretend = 0, frame = 0 6641 @ frame_needed = 0, uses_anonymous_args = 0 3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6642 .loc 1 3120 1 is_stmt 0 view .LVU2320 6643 0000 F0B5 push {r4, r5, r6, r7, lr} 6644 .LCFI78: 6645 .cfi_def_cfa_offset 20 6646 .cfi_offset 4, -20 6647 .cfi_offset 5, -16 6648 .cfi_offset 6, -12 6649 .cfi_offset 7, -8 6650 .cfi_offset 14, -4 6651 0002 83B0 sub sp, sp, #12 6652 .LCFI79: 6653 .cfi_def_cfa_offset 32 6654 0004 0446 mov r4, r0 6655 0006 1F46 mov r7, r3 6656 0008 089D ldr r5, [sp, #32] 6657 000a BDF82430 ldrh r3, [sp, #36] 6658 .LVL444: 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6659 .loc 1 3121 3 is_stmt 1 view .LVU2321 3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6660 .loc 1 3124 3 view .LVU2322 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6661 .loc 1 3126 3 view .LVU2323 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6662 .loc 1 3126 11 is_stmt 0 view .LVU2324 6663 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6664 .LVL445: 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6665 .loc 1 3126 11 view .LVU2325 6666 0012 C0B2 uxtb r0, r0 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6667 .loc 1 3126 6 view .LVU2326 6668 0014 2028 cmp r0, #32 6669 0016 7BD1 bne .L440 6670 0018 0E46 mov r6, r1 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 287 6671 .loc 1 3128 5 is_stmt 1 view .LVU2327 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6672 .loc 1 3128 8 is_stmt 0 view .LVU2328 6673 001a 002D cmp r5, #0 6674 001c 4CD0 beq .L431 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6675 .loc 1 3128 25 discriminator 1 view .LVU2329 6676 001e 002B cmp r3, #0 6677 0020 4AD0 beq .L431 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6678 .loc 1 3134 5 is_stmt 1 view .LVU2330 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6679 .loc 1 3134 9 is_stmt 0 view .LVU2331 6680 0022 2168 ldr r1, [r4] 6681 .LVL446: 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6682 .loc 1 3134 9 view .LVU2332 6683 0024 8869 ldr r0, [r1, #24] 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6684 .loc 1 3134 8 view .LVU2333 6685 0026 10F4004F tst r0, #32768 6686 002a 75D1 bne .L441 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6687 .loc 1 3140 5 is_stmt 1 view .LVU2334 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6688 .loc 1 3140 5 view .LVU2335 6689 002c 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 6690 0030 0128 cmp r0, #1 6691 0032 73D0 beq .L442 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6692 .loc 1 3140 5 discriminator 2 view .LVU2336 6693 0034 0120 movs r0, #1 6694 0036 84F84000 strb r0, [r4, #64] 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6695 .loc 1 3140 5 discriminator 2 view .LVU2337 3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6696 .loc 1 3142 5 view .LVU2338 3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6697 .loc 1 3142 23 is_stmt 0 view .LVU2339 6698 003a 2220 movs r0, #34 6699 003c 84F84100 strb r0, [r4, #65] 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6700 .loc 1 3143 5 is_stmt 1 view .LVU2340 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6701 .loc 1 3143 23 is_stmt 0 view .LVU2341 6702 0040 4020 movs r0, #64 6703 0042 84F84200 strb r0, [r4, #66] 3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6704 .loc 1 3144 5 is_stmt 1 view .LVU2342 3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6705 .loc 1 3144 23 is_stmt 0 view .LVU2343 6706 0046 0020 movs r0, #0 6707 0048 6064 str r0, [r4, #68] 3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6708 .loc 1 3147 5 is_stmt 1 view .LVU2344 3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 6709 .loc 1 3147 23 is_stmt 0 view .LVU2345 ARM GAS /tmp/ccclMPzv.s page 288 6710 004a 6562 str r5, [r4, #36] 3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6711 .loc 1 3148 5 is_stmt 1 view .LVU2346 3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6712 .loc 1 3148 23 is_stmt 0 view .LVU2347 6713 004c 6385 strh r3, [r4, #42] @ movhi 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6714 .loc 1 3149 5 is_stmt 1 view .LVU2348 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6715 .loc 1 3149 23 is_stmt 0 view .LVU2349 6716 004e 344B ldr r3, .L447 6717 0050 E362 str r3, [r4, #44] 3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6718 .loc 1 3150 5 is_stmt 1 view .LVU2350 3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6719 .loc 1 3150 23 is_stmt 0 view .LVU2351 6720 0052 344B ldr r3, .L447+4 6721 0054 6363 str r3, [r4, #52] 3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6722 .loc 1 3151 5 is_stmt 1 view .LVU2352 3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6723 .loc 1 3151 23 is_stmt 0 view .LVU2353 6724 0056 E664 str r6, [r4, #76] 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6725 .loc 1 3153 5 is_stmt 1 view .LVU2354 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6726 .loc 1 3153 13 is_stmt 0 view .LVU2355 6727 0058 638D ldrh r3, [r4, #42] 6728 005a 9BB2 uxth r3, r3 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6729 .loc 1 3153 8 view .LVU2356 6730 005c FF2B cmp r3, #255 6731 005e 30D9 bls .L433 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6732 .loc 1 3155 7 is_stmt 1 view .LVU2357 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6733 .loc 1 3155 22 is_stmt 0 view .LVU2358 6734 0060 FF23 movs r3, #255 6735 0062 2385 strh r3, [r4, #40] @ movhi 6736 .L434: 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6737 .loc 1 3163 5 is_stmt 1 view .LVU2359 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6738 .loc 1 3163 8 is_stmt 0 view .LVU2360 6739 0064 012F cmp r7, #1 6740 0066 2FD0 beq .L445 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6741 .loc 1 3175 7 is_stmt 1 view .LVU2361 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6742 .loc 1 3175 30 is_stmt 0 view .LVU2362 6743 0068 130A lsrs r3, r2, #8 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6744 .loc 1 3175 28 view .LVU2363 6745 006a 8B62 str r3, [r1, #40] 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6746 .loc 1 3178 7 is_stmt 1 view .LVU2364 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 289 6747 .loc 1 3178 26 is_stmt 0 view .LVU2365 6748 006c D2B2 uxtb r2, r2 6749 .LVL447: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6750 .loc 1 3178 24 view .LVU2366 6751 006e 2265 str r2, [r4, #80] 6752 .L436: 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6753 .loc 1 3181 5 is_stmt 1 view .LVU2367 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6754 .loc 1 3181 13 is_stmt 0 view .LVU2368 6755 0070 E36B ldr r3, [r4, #60] 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6756 .loc 1 3181 8 view .LVU2369 6757 0072 002B cmp r3, #0 6758 0074 2ED0 beq .L437 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6759 .loc 1 3184 7 is_stmt 1 view .LVU2370 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6760 .loc 1 3184 38 is_stmt 0 view .LVU2371 6761 0076 2C4A ldr r2, .L447+8 6762 0078 DA62 str r2, [r3, #44] 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6763 .loc 1 3187 7 is_stmt 1 view .LVU2372 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6764 .loc 1 3187 11 is_stmt 0 view .LVU2373 6765 007a E36B ldr r3, [r4, #60] 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6766 .loc 1 3187 39 view .LVU2374 6767 007c 2B4A ldr r2, .L447+12 6768 007e 5A63 str r2, [r3, #52] 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6769 .loc 1 3190 7 is_stmt 1 view .LVU2375 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6770 .loc 1 3190 11 is_stmt 0 view .LVU2376 6771 0080 E26B ldr r2, [r4, #60] 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6772 .loc 1 3190 42 view .LVU2377 6773 0082 0023 movs r3, #0 6774 0084 1363 str r3, [r2, #48] 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6775 .loc 1 3191 7 is_stmt 1 view .LVU2378 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6776 .loc 1 3191 11 is_stmt 0 view .LVU2379 6777 0086 E26B ldr r2, [r4, #60] 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6778 .loc 1 3191 39 view .LVU2380 6779 0088 9363 str r3, [r2, #56] 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6780 .loc 1 3194 7 is_stmt 1 view .LVU2381 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6781 .loc 1 3194 69 is_stmt 0 view .LVU2382 6782 008a 2168 ldr r1, [r4] 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 6783 .loc 1 3194 23 view .LVU2383 6784 008c 238D ldrh r3, [r4, #40] 6785 008e 2A46 mov r2, r5 ARM GAS /tmp/ccclMPzv.s page 290 6786 0090 2431 adds r1, r1, #36 6787 0092 E06B ldr r0, [r4, #60] 6788 0094 FFF7FEFF bl HAL_DMA_Start_IT 6789 .LVL448: 3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6790 .loc 1 3212 5 is_stmt 1 view .LVU2384 3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6791 .loc 1 3212 8 is_stmt 0 view .LVU2385 6792 0098 0546 mov r5, r0 6793 009a 48B3 cbz r0, .L446 3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6794 .loc 1 3232 7 is_stmt 1 view .LVU2386 3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6795 .loc 1 3232 23 is_stmt 0 view .LVU2387 6796 009c 2023 movs r3, #32 6797 009e 84F84130 strb r3, [r4, #65] 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6798 .loc 1 3233 7 is_stmt 1 view .LVU2388 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6799 .loc 1 3233 23 is_stmt 0 view .LVU2389 6800 00a2 0022 movs r2, #0 6801 00a4 84F84220 strb r2, [r4, #66] 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6802 .loc 1 3236 7 is_stmt 1 view .LVU2390 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6803 .loc 1 3236 11 is_stmt 0 view .LVU2391 6804 00a8 636C ldr r3, [r4, #68] 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6805 .loc 1 3236 23 view .LVU2392 6806 00aa 43F01003 orr r3, r3, #16 6807 00ae 6364 str r3, [r4, #68] 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6808 .loc 1 3239 7 is_stmt 1 view .LVU2393 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6809 .loc 1 3239 7 view .LVU2394 6810 00b0 84F84020 strb r2, [r4, #64] 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6811 .loc 1 3239 7 view .LVU2395 3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6812 .loc 1 3241 7 view .LVU2396 3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6813 .loc 1 3241 14 is_stmt 0 view .LVU2397 6814 00b4 0125 movs r5, #1 6815 00b6 2CE0 b .L430 6816 .LVL449: 6817 .L431: 3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6818 .loc 1 3130 7 is_stmt 1 view .LVU2398 3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 6819 .loc 1 3130 23 is_stmt 0 view .LVU2399 6820 00b8 4FF40073 mov r3, #512 6821 00bc 6364 str r3, [r4, #68] 3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6822 .loc 1 3131 7 is_stmt 1 view .LVU2400 3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6823 .loc 1 3131 15 is_stmt 0 view .LVU2401 6824 00be 0125 movs r5, #1 ARM GAS /tmp/ccclMPzv.s page 291 6825 00c0 27E0 b .L430 6826 .LVL450: 6827 .L433: 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6828 .loc 1 3159 7 is_stmt 1 view .LVU2402 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6829 .loc 1 3159 28 is_stmt 0 view .LVU2403 6830 00c2 638D ldrh r3, [r4, #42] 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6831 .loc 1 3159 22 view .LVU2404 6832 00c4 2385 strh r3, [r4, #40] @ movhi 6833 00c6 CDE7 b .L434 6834 .L445: 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6835 .loc 1 3166 7 is_stmt 1 view .LVU2405 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6836 .loc 1 3166 30 is_stmt 0 view .LVU2406 6837 00c8 D2B2 uxtb r2, r2 6838 .LVL451: 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6839 .loc 1 3166 28 view .LVU2407 6840 00ca 8A62 str r2, [r1, #40] 3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6841 .loc 1 3169 7 is_stmt 1 view .LVU2408 3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6842 .loc 1 3169 24 is_stmt 0 view .LVU2409 6843 00cc 4FF0FF33 mov r3, #-1 6844 00d0 2365 str r3, [r4, #80] 6845 00d2 CDE7 b .L436 6846 .L437: 3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6847 .loc 1 3200 7 is_stmt 1 view .LVU2410 3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6848 .loc 1 3200 23 is_stmt 0 view .LVU2411 6849 00d4 2023 movs r3, #32 6850 00d6 84F84130 strb r3, [r4, #65] 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6851 .loc 1 3201 7 is_stmt 1 view .LVU2412 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6852 .loc 1 3201 23 is_stmt 0 view .LVU2413 6853 00da 0022 movs r2, #0 6854 00dc 84F84220 strb r2, [r4, #66] 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6855 .loc 1 3204 7 is_stmt 1 view .LVU2414 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6856 .loc 1 3204 11 is_stmt 0 view .LVU2415 6857 00e0 636C ldr r3, [r4, #68] 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6858 .loc 1 3204 23 view .LVU2416 6859 00e2 43F08003 orr r3, r3, #128 6860 00e6 6364 str r3, [r4, #68] 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6861 .loc 1 3207 7 is_stmt 1 view .LVU2417 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6862 .loc 1 3207 7 view .LVU2418 6863 00e8 84F84020 strb r2, [r4, #64] 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 292 6864 .loc 1 3207 7 view .LVU2419 3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6865 .loc 1 3209 7 view .LVU2420 3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6866 .loc 1 3209 14 is_stmt 0 view .LVU2421 6867 00ec 0125 movs r5, #1 6868 00ee 10E0 b .L430 6869 .LVL452: 6870 .L446: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6871 .loc 1 3215 7 is_stmt 1 view .LVU2422 6872 00f0 0F4B ldr r3, .L447+16 6873 00f2 0093 str r3, [sp] 6874 00f4 0023 movs r3, #0 6875 00f6 FAB2 uxtb r2, r7 6876 00f8 3146 mov r1, r6 6877 00fa 2046 mov r0, r4 6878 .LVL453: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6879 .loc 1 3215 7 is_stmt 0 view .LVU2423 6880 00fc FFF7FEFF bl I2C_TransferConfig 6881 .LVL454: 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6882 .loc 1 3218 7 is_stmt 1 view .LVU2424 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6883 .loc 1 3218 7 view .LVU2425 6884 0100 0023 movs r3, #0 6885 0102 84F84030 strb r3, [r4, #64] 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6886 .loc 1 3218 7 view .LVU2426 3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6887 .loc 1 3227 7 view .LVU2427 6888 0106 0121 movs r1, #1 6889 0108 2046 mov r0, r4 6890 010a FFF7FEFF bl I2C_Enable_IRQ 6891 .LVL455: 3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6892 .loc 1 3244 5 view .LVU2428 3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6893 .loc 1 3244 12 is_stmt 0 view .LVU2429 6894 010e 00E0 b .L430 6895 .LVL456: 6896 .L440: 3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6897 .loc 1 3248 12 view .LVU2430 6898 0110 0225 movs r5, #2 6899 .LVL457: 6900 .L430: 3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6901 .loc 1 3250 1 view .LVU2431 6902 0112 2846 mov r0, r5 6903 0114 03B0 add sp, sp, #12 6904 .LCFI80: 6905 .cfi_remember_state 6906 .cfi_def_cfa_offset 20 6907 @ sp needed 6908 0116 F0BD pop {r4, r5, r6, r7, pc} ARM GAS /tmp/ccclMPzv.s page 293 6909 .LVL458: 6910 .L441: 6911 .LCFI81: 6912 .cfi_restore_state 3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 6913 .loc 1 3136 14 view .LVU2432 6914 0118 0225 movs r5, #2 6915 011a FAE7 b .L430 6916 .L442: 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6917 .loc 1 3140 5 discriminator 1 view .LVU2433 6918 011c 0225 movs r5, #2 6919 011e F8E7 b .L430 6920 .L448: 6921 .align 2 6922 .L447: 6923 0120 0000FFFF .word -65536 6924 0124 00000000 .word I2C_Mem_ISR_DMA 6925 0128 00000000 .word I2C_DMAMasterReceiveCplt 6926 012c 00000000 .word I2C_DMAError 6927 0130 00200080 .word -2147475456 6928 .cfi_endproc 6929 .LFE350: 6931 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6932 .align 1 6933 .global HAL_I2C_IsDeviceReady 6934 .syntax unified 6935 .thumb 6936 .thumb_func 6938 HAL_I2C_IsDeviceReady: 6939 .LVL459: 6940 .LFB351: 3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 6941 .loc 1 3265 1 is_stmt 1 view -0 6942 .cfi_startproc 6943 @ args = 0, pretend = 0, frame = 8 6944 @ frame_needed = 0, uses_anonymous_args = 0 3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tickstart; 6945 .loc 1 3265 1 is_stmt 0 view .LVU2435 6946 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6947 .LCFI82: 6948 .cfi_def_cfa_offset 28 6949 .cfi_offset 4, -28 6950 .cfi_offset 5, -24 6951 .cfi_offset 6, -20 6952 .cfi_offset 7, -16 6953 .cfi_offset 8, -12 6954 .cfi_offset 9, -8 6955 .cfi_offset 14, -4 6956 0004 85B0 sub sp, sp, #20 6957 .LCFI83: 6958 .cfi_def_cfa_offset 48 6959 0006 1D46 mov r5, r3 3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6960 .loc 1 3266 3 is_stmt 1 view .LVU2436 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6961 .loc 1 3268 3 view .LVU2437 ARM GAS /tmp/ccclMPzv.s page 294 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6962 .loc 1 3268 17 is_stmt 0 view .LVU2438 6963 0008 0023 movs r3, #0 6964 .LVL460: 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6965 .loc 1 3268 17 view .LVU2439 6966 000a 0393 str r3, [sp, #12] 3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** FlagStatus tmp2; 6967 .loc 1 3270 3 is_stmt 1 view .LVU2440 3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6968 .loc 1 3271 3 view .LVU2441 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6969 .loc 1 3273 3 view .LVU2442 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6970 .loc 1 3273 11 is_stmt 0 view .LVU2443 6971 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6972 0010 DBB2 uxtb r3, r3 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6973 .loc 1 3273 6 view .LVU2444 6974 0012 202B cmp r3, #32 6975 0014 40F08980 bne .L460 6976 0018 0646 mov r6, r0 6977 001a 8846 mov r8, r1 6978 001c 9146 mov r9, r2 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6979 .loc 1 3275 5 is_stmt 1 view .LVU2445 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6980 .loc 1 3275 9 is_stmt 0 view .LVU2446 6981 001e 0368 ldr r3, [r0] 6982 0020 9B69 ldr r3, [r3, #24] 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 6983 .loc 1 3275 8 view .LVU2447 6984 0022 13F4004F tst r3, #32768 6985 0026 40F08280 bne .L461 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6986 .loc 1 3281 5 is_stmt 1 view .LVU2448 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6987 .loc 1 3281 5 view .LVU2449 6988 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6989 002e 012B cmp r3, #1 6990 0030 7FD0 beq .L462 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6991 .loc 1 3281 5 discriminator 2 view .LVU2450 6992 0032 0123 movs r3, #1 6993 0034 80F84030 strb r3, [r0, #64] 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6994 .loc 1 3281 5 discriminator 2 view .LVU2451 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6995 .loc 1 3283 5 view .LVU2452 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6996 .loc 1 3283 17 is_stmt 0 view .LVU2453 6997 0038 2423 movs r3, #36 6998 003a 80F84130 strb r3, [r0, #65] 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 6999 .loc 1 3284 5 is_stmt 1 view .LVU2454 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7000 .loc 1 3284 21 is_stmt 0 view .LVU2455 ARM GAS /tmp/ccclMPzv.s page 295 7001 003e 0023 movs r3, #0 7002 0040 4364 str r3, [r0, #68] 7003 0042 41E0 b .L459 7004 .LVL461: 7005 .L468: 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7006 .loc 1 3289 29 discriminator 1 view .LVU2456 7007 0044 C8F30903 ubfx r3, r8, #0, #10 7008 0048 43F00073 orr r3, r3, #33554432 7009 004c 43F40053 orr r3, r3, #8192 7010 0050 43E0 b .L452 7011 .LVL462: 7012 .L454: 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7013 .loc 1 3317 9 is_stmt 1 view .LVU2457 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7014 .loc 1 3317 16 is_stmt 0 view .LVU2458 7015 0052 3368 ldr r3, [r6] 7016 0054 9C69 ldr r4, [r3, #24] 7017 .LVL463: 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7018 .loc 1 3317 16 view .LVU2459 7019 0056 C4F34014 ubfx r4, r4, #5, #1 7020 .LVL464: 3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7021 .loc 1 3318 9 is_stmt 1 view .LVU2460 3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7022 .loc 1 3318 16 is_stmt 0 view .LVU2461 7023 005a 9B69 ldr r3, [r3, #24] 7024 005c C3F30013 ubfx r3, r3, #4, #1 7025 .LVL465: 7026 .L453: 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7027 .loc 1 3298 30 is_stmt 1 view .LVU2462 7028 0060 C4B9 cbnz r4, .L456 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7029 .loc 1 3298 30 is_stmt 0 discriminator 1 view .LVU2463 7030 0062 BBB9 cbnz r3, .L456 3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7031 .loc 1 3300 9 is_stmt 1 view .LVU2464 3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7032 .loc 1 3300 12 is_stmt 0 view .LVU2465 7033 0064 B5F1FF3F cmp r5, #-1 7034 0068 F3D0 beq .L454 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7035 .loc 1 3302 11 is_stmt 1 view .LVU2466 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7036 .loc 1 3302 17 is_stmt 0 view .LVU2467 7037 006a FFF7FEFF bl HAL_GetTick 7038 .LVL466: 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7039 .loc 1 3302 31 discriminator 1 view .LVU2468 7040 006e C01B subs r0, r0, r7 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7041 .loc 1 3302 14 discriminator 1 view .LVU2469 7042 0070 A842 cmp r0, r5 7043 0072 01D8 bhi .L455 ARM GAS /tmp/ccclMPzv.s page 296 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7044 .loc 1 3302 55 discriminator 1 view .LVU2470 7045 0074 002D cmp r5, #0 7046 0076 ECD1 bne .L454 7047 .L455: 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7048 .loc 1 3305 13 is_stmt 1 view .LVU2471 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7049 .loc 1 3305 25 is_stmt 0 view .LVU2472 7050 0078 2023 movs r3, #32 7051 007a 86F84130 strb r3, [r6, #65] 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7052 .loc 1 3308 13 is_stmt 1 view .LVU2473 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7053 .loc 1 3308 17 is_stmt 0 view .LVU2474 7054 007e 736C ldr r3, [r6, #68] 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7055 .loc 1 3308 29 view .LVU2475 7056 0080 43F02003 orr r3, r3, #32 7057 0084 7364 str r3, [r6, #68] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7058 .loc 1 3311 13 is_stmt 1 view .LVU2476 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7059 .loc 1 3311 13 view .LVU2477 7060 0086 0023 movs r3, #0 7061 0088 86F84030 strb r3, [r6, #64] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7062 .loc 1 3311 13 view .LVU2478 3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7063 .loc 1 3313 13 view .LVU2479 3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7064 .loc 1 3313 20 is_stmt 0 view .LVU2480 7065 008c 0120 movs r0, #1 7066 .LVL467: 7067 .L450: 3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7068 .loc 1 3375 1 view .LVU2481 7069 008e 05B0 add sp, sp, #20 7070 .LCFI84: 7071 .cfi_remember_state 7072 .cfi_def_cfa_offset 28 7073 @ sp needed 7074 0090 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7075 .LVL468: 7076 .L456: 7077 .LCFI85: 7078 .cfi_restore_state 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7079 .loc 1 3322 7 is_stmt 1 view .LVU2482 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7080 .loc 1 3322 11 is_stmt 0 view .LVU2483 7081 0094 3368 ldr r3, [r6] 7082 .LVL469: 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7083 .loc 1 3322 11 view .LVU2484 7084 0096 9B69 ldr r3, [r3, #24] 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 297 7085 .loc 1 3322 10 view .LVU2485 7086 0098 13F0100F tst r3, #16 7087 009c 2AD0 beq .L466 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7088 .loc 1 3344 9 is_stmt 1 view .LVU2486 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7089 .loc 1 3344 13 is_stmt 0 view .LVU2487 7090 009e 0097 str r7, [sp] 7091 00a0 2B46 mov r3, r5 7092 00a2 0022 movs r2, #0 7093 00a4 2021 movs r1, #32 7094 00a6 3046 mov r0, r6 7095 00a8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7096 .LVL470: 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7097 .loc 1 3344 12 discriminator 1 view .LVU2488 7098 00ac 0028 cmp r0, #0 7099 00ae 44D1 bne .L464 3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7100 .loc 1 3350 9 is_stmt 1 view .LVU2489 7101 00b0 3368 ldr r3, [r6] 7102 00b2 1022 movs r2, #16 7103 00b4 DA61 str r2, [r3, #28] 3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7104 .loc 1 3353 9 view .LVU2490 7105 00b6 3368 ldr r3, [r6] 7106 00b8 2022 movs r2, #32 7107 00ba DA61 str r2, [r3, #28] 3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7108 .loc 1 3357 7 view .LVU2491 3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7109 .loc 1 3357 17 is_stmt 0 view .LVU2492 7110 00bc 039B ldr r3, [sp, #12] 7111 00be 0133 adds r3, r3, #1 7112 00c0 0393 str r3, [sp, #12] 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7113 .loc 1 3358 25 is_stmt 1 view .LVU2493 7114 00c2 039B ldr r3, [sp, #12] 7115 00c4 4B45 cmp r3, r9 7116 00c6 26D2 bcs .L467 7117 .LVL471: 7118 .L459: 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7119 .loc 1 3286 5 view .LVU2494 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7120 .loc 1 3289 7 view .LVU2495 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7121 .loc 1 3289 29 is_stmt 0 view .LVU2496 7122 00c8 F368 ldr r3, [r6, #12] 7123 00ca 012B cmp r3, #1 7124 00cc BAD0 beq .L468 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7125 .loc 1 3289 29 discriminator 2 view .LVU2497 7126 00ce C8F30903 ubfx r3, r8, #0, #10 7127 00d2 43F00073 orr r3, r3, #33554432 7128 00d6 43F42053 orr r3, r3, #10240 7129 .L452: ARM GAS /tmp/ccclMPzv.s page 298 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7130 .loc 1 3289 11 discriminator 4 view .LVU2498 7131 00da 3268 ldr r2, [r6] 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7132 .loc 1 3289 27 discriminator 4 view .LVU2499 7133 00dc 5360 str r3, [r2, #4] 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7134 .loc 1 3293 7 is_stmt 1 view .LVU2500 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7135 .loc 1 3293 19 is_stmt 0 view .LVU2501 7136 00de FFF7FEFF bl HAL_GetTick 7137 .LVL472: 7138 00e2 0746 mov r7, r0 7139 .LVL473: 3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7140 .loc 1 3295 7 is_stmt 1 view .LVU2502 3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7141 .loc 1 3295 14 is_stmt 0 view .LVU2503 7142 00e4 3368 ldr r3, [r6] 7143 00e6 9C69 ldr r4, [r3, #24] 7144 00e8 C4F34014 ubfx r4, r4, #5, #1 7145 .LVL474: 3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7146 .loc 1 3296 7 is_stmt 1 view .LVU2504 3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7147 .loc 1 3296 14 is_stmt 0 view .LVU2505 7148 00ec 9B69 ldr r3, [r3, #24] 7149 00ee C3F30013 ubfx r3, r3, #4, #1 7150 .LVL475: 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7151 .loc 1 3298 7 is_stmt 1 view .LVU2506 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7152 .loc 1 3298 13 is_stmt 0 view .LVU2507 7153 00f2 B5E7 b .L453 7154 .LVL476: 7155 .L466: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7156 .loc 1 3325 9 is_stmt 1 view .LVU2508 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7157 .loc 1 3325 13 is_stmt 0 view .LVU2509 7158 00f4 0097 str r7, [sp] 7159 00f6 2B46 mov r3, r5 7160 00f8 0022 movs r2, #0 7161 00fa 2021 movs r1, #32 7162 00fc 3046 mov r0, r6 7163 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7164 .LVL477: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7165 .loc 1 3325 12 discriminator 1 view .LVU2510 7166 0102 C0B9 cbnz r0, .L463 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7167 .loc 1 3331 9 is_stmt 1 view .LVU2511 7168 0104 3268 ldr r2, [r6] 7169 0106 2023 movs r3, #32 7170 0108 D361 str r3, [r2, #28] 3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7171 .loc 1 3334 9 view .LVU2512 ARM GAS /tmp/ccclMPzv.s page 299 3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7172 .loc 1 3334 21 is_stmt 0 view .LVU2513 7173 010a 86F84130 strb r3, [r6, #65] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7174 .loc 1 3337 9 is_stmt 1 view .LVU2514 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7175 .loc 1 3337 9 view .LVU2515 7176 010e 0023 movs r3, #0 7177 0110 86F84030 strb r3, [r6, #64] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7178 .loc 1 3337 9 view .LVU2516 3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7179 .loc 1 3339 9 view .LVU2517 3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7180 .loc 1 3339 16 is_stmt 0 view .LVU2518 7181 0114 BBE7 b .L450 7182 .L467: 3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7183 .loc 1 3361 5 is_stmt 1 view .LVU2519 3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7184 .loc 1 3361 17 is_stmt 0 view .LVU2520 7185 0116 86F84120 strb r2, [r6, #65] 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7186 .loc 1 3364 5 is_stmt 1 view .LVU2521 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7187 .loc 1 3364 9 is_stmt 0 view .LVU2522 7188 011a 736C ldr r3, [r6, #68] 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7189 .loc 1 3364 21 view .LVU2523 7190 011c 1343 orrs r3, r3, r2 7191 011e 7364 str r3, [r6, #68] 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7192 .loc 1 3367 5 is_stmt 1 view .LVU2524 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7193 .loc 1 3367 5 view .LVU2525 7194 0120 0023 movs r3, #0 7195 0122 86F84030 strb r3, [r6, #64] 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7196 .loc 1 3367 5 view .LVU2526 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7197 .loc 1 3369 5 view .LVU2527 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7198 .loc 1 3369 12 is_stmt 0 view .LVU2528 7199 0126 0120 movs r0, #1 7200 0128 B1E7 b .L450 7201 .LVL478: 7202 .L460: 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7203 .loc 1 3373 12 view .LVU2529 7204 012a 0220 movs r0, #2 7205 .LVL479: 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7206 .loc 1 3373 12 view .LVU2530 7207 012c AFE7 b .L450 7208 .LVL480: 7209 .L461: 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 300 7210 .loc 1 3277 14 view .LVU2531 7211 012e 0220 movs r0, #2 7212 .LVL481: 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7213 .loc 1 3277 14 view .LVU2532 7214 0130 ADE7 b .L450 7215 .LVL482: 7216 .L462: 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7217 .loc 1 3281 5 discriminator 1 view .LVU2533 7218 0132 0220 movs r0, #2 7219 .LVL483: 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7220 .loc 1 3281 5 discriminator 1 view .LVU2534 7221 0134 ABE7 b .L450 7222 .LVL484: 7223 .L463: 3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7224 .loc 1 3327 18 view .LVU2535 7225 0136 0120 movs r0, #1 7226 0138 A9E7 b .L450 7227 .L464: 3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7228 .loc 1 3346 18 view .LVU2536 7229 013a 0120 movs r0, #1 7230 013c A7E7 b .L450 7231 .cfi_endproc 7232 .LFE351: 7234 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 7235 .align 1 7236 .global HAL_I2C_Master_Seq_Transmit_IT 7237 .syntax unified 7238 .thumb 7239 .thumb_func 7241 HAL_I2C_Master_Seq_Transmit_IT: 7242 .LVL485: 7243 .LFB352: 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7244 .loc 1 3391 1 is_stmt 1 view -0 7245 .cfi_startproc 7246 @ args = 4, pretend = 0, frame = 0 7247 @ frame_needed = 0, uses_anonymous_args = 0 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7248 .loc 1 3391 1 is_stmt 0 view .LVU2538 7249 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7250 .LCFI86: 7251 .cfi_def_cfa_offset 24 7252 .cfi_offset 4, -24 7253 .cfi_offset 5, -20 7254 .cfi_offset 6, -16 7255 .cfi_offset 7, -12 7256 .cfi_offset 8, -8 7257 .cfi_offset 14, -4 7258 0004 82B0 sub sp, sp, #8 7259 .LCFI87: 7260 .cfi_def_cfa_offset 32 7261 0006 0446 mov r4, r0 ARM GAS /tmp/ccclMPzv.s page 301 7262 0008 089E ldr r6, [sp, #32] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7263 .loc 1 3392 3 is_stmt 1 view .LVU2539 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7264 .loc 1 3393 3 view .LVU2540 7265 .LVL486: 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7266 .loc 1 3394 3 view .LVU2541 3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7267 .loc 1 3397 3 view .LVU2542 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7268 .loc 1 3399 3 view .LVU2543 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7269 .loc 1 3399 11 is_stmt 0 view .LVU2544 7270 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7271 .LVL487: 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7272 .loc 1 3399 11 view .LVU2545 7273 000e C0B2 uxtb r0, r0 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7274 .loc 1 3399 6 view .LVU2546 7275 0010 2028 cmp r0, #32 7276 0012 71D1 bne .L480 7277 0014 0D46 mov r5, r1 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7278 .loc 1 3402 5 is_stmt 1 view .LVU2547 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7279 .loc 1 3402 5 view .LVU2548 7280 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7281 .LVL488: 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7282 .loc 1 3402 5 is_stmt 0 view .LVU2549 7283 001a 0129 cmp r1, #1 7284 001c 6ED0 beq .L481 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7285 .loc 1 3402 5 is_stmt 1 discriminator 2 view .LVU2550 7286 001e 0121 movs r1, #1 7287 0020 84F84010 strb r1, [r4, #64] 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7288 .loc 1 3402 5 discriminator 2 view .LVU2551 3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7289 .loc 1 3404 5 view .LVU2552 3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7290 .loc 1 3404 21 is_stmt 0 view .LVU2553 7291 0024 2121 movs r1, #33 7292 0026 84F84110 strb r1, [r4, #65] 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7293 .loc 1 3405 5 is_stmt 1 view .LVU2554 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7294 .loc 1 3405 21 is_stmt 0 view .LVU2555 7295 002a 1021 movs r1, #16 7296 002c 84F84210 strb r1, [r4, #66] 3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7297 .loc 1 3406 5 is_stmt 1 view .LVU2556 3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7298 .loc 1 3406 21 is_stmt 0 view .LVU2557 7299 0030 0021 movs r1, #0 ARM GAS /tmp/ccclMPzv.s page 302 7300 0032 6164 str r1, [r4, #68] 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7301 .loc 1 3409 5 is_stmt 1 view .LVU2558 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7302 .loc 1 3409 23 is_stmt 0 view .LVU2559 7303 0034 6262 str r2, [r4, #36] 3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7304 .loc 1 3410 5 is_stmt 1 view .LVU2560 3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7305 .loc 1 3410 23 is_stmt 0 view .LVU2561 7306 0036 6385 strh r3, [r4, #42] @ movhi 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7307 .loc 1 3411 5 is_stmt 1 view .LVU2562 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7308 .loc 1 3411 23 is_stmt 0 view .LVU2563 7309 0038 E662 str r6, [r4, #44] 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7310 .loc 1 3412 5 is_stmt 1 view .LVU2564 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7311 .loc 1 3412 23 is_stmt 0 view .LVU2565 7312 003a 314B ldr r3, .L487 7313 .LVL489: 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7314 .loc 1 3412 23 view .LVU2566 7315 003c 6363 str r3, [r4, #52] 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7316 .loc 1 3415 5 is_stmt 1 view .LVU2567 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7317 .loc 1 3415 13 is_stmt 0 view .LVU2568 7318 003e 638D ldrh r3, [r4, #42] 7319 0040 9BB2 uxth r3, r3 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7320 .loc 1 3415 8 view .LVU2569 7321 0042 FF2B cmp r3, #255 7322 0044 0CD9 bls .L471 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7323 .loc 1 3417 7 is_stmt 1 view .LVU2570 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7324 .loc 1 3417 22 is_stmt 0 view .LVU2571 7325 0046 FF23 movs r3, #255 7326 0048 2385 strh r3, [r4, #40] @ movhi 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7327 .loc 1 3418 7 is_stmt 1 view .LVU2572 7328 .LVL490: 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7329 .loc 1 3418 16 is_stmt 0 view .LVU2573 7330 004a 4FF08077 mov r7, #16777216 7331 .LVL491: 7332 .L472: 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7333 .loc 1 3426 5 is_stmt 1 view .LVU2574 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7334 .loc 1 3426 14 is_stmt 0 view .LVU2575 7335 004e 238D ldrh r3, [r4, #40] 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7336 .loc 1 3426 8 view .LVU2576 7337 0050 DBB1 cbz r3, .L482 ARM GAS /tmp/ccclMPzv.s page 303 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7338 .loc 1 3426 31 discriminator 1 view .LVU2577 7339 0052 4EB1 cbz r6, .L474 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7340 .loc 1 3426 68 discriminator 2 view .LVU2578 7341 0054 B6F1007F cmp r6, #33554432 7342 0058 06D0 beq .L474 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7343 .loc 1 3394 12 view .LVU2579 7344 005a 4FF00008 mov r8, #0 7345 005e 16E0 b .L473 7346 .LVL492: 7347 .L471: 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7348 .loc 1 3422 7 is_stmt 1 view .LVU2580 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7349 .loc 1 3422 28 is_stmt 0 view .LVU2581 7350 0060 638D ldrh r3, [r4, #42] 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7351 .loc 1 3422 22 view .LVU2582 7352 0062 2385 strh r3, [r4, #40] @ movhi 3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7353 .loc 1 3423 7 is_stmt 1 view .LVU2583 3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7354 .loc 1 3423 16 is_stmt 0 view .LVU2584 7355 0064 E76A ldr r7, [r4, #44] 7356 .LVL493: 3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7357 .loc 1 3423 16 view .LVU2585 7358 0066 F2E7 b .L472 7359 .L474: 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7360 .loc 1 3431 7 is_stmt 1 view .LVU2586 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7361 .loc 1 3431 11 is_stmt 0 view .LVU2587 7362 0068 2368 ldr r3, [r4] 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7363 .loc 1 3431 30 view .LVU2588 7364 006a 1278 ldrb r2, [r2] @ zero_extendqisi2 7365 .LVL494: 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7366 .loc 1 3431 28 view .LVU2589 7367 006c 9A62 str r2, [r3, #40] 7368 .LVL495: 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7369 .loc 1 3434 7 is_stmt 1 view .LVU2590 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7370 .loc 1 3434 11 is_stmt 0 view .LVU2591 7371 006e 636A ldr r3, [r4, #36] 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7372 .loc 1 3434 21 view .LVU2592 7373 0070 0133 adds r3, r3, #1 7374 0072 6362 str r3, [r4, #36] 3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 7375 .loc 1 3436 7 is_stmt 1 view .LVU2593 3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 7376 .loc 1 3436 24 is_stmt 0 view .LVU2594 ARM GAS /tmp/ccclMPzv.s page 304 7377 0074 B4F82880 ldrh r8, [r4, #40] 7378 .LVL496: 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7379 .loc 1 3437 7 is_stmt 1 view .LVU2595 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7380 .loc 1 3437 11 is_stmt 0 view .LVU2596 7381 0078 638D ldrh r3, [r4, #42] 7382 007a 9BB2 uxth r3, r3 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7383 .loc 1 3437 22 view .LVU2597 7384 007c 013B subs r3, r3, #1 7385 007e 9BB2 uxth r3, r3 7386 0080 6385 strh r3, [r4, #42] @ movhi 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7387 .loc 1 3438 7 is_stmt 1 view .LVU2598 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7388 .loc 1 3438 21 is_stmt 0 view .LVU2599 7389 0082 08F1FF33 add r3, r8, #-1 7390 0086 2385 strh r3, [r4, #40] @ movhi 7391 0088 01E0 b .L473 7392 .LVL497: 7393 .L482: 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7394 .loc 1 3394 12 view .LVU2600 7395 008a 4FF00008 mov r8, #0 7396 .LVL498: 7397 .L473: 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7398 .loc 1 3444 5 is_stmt 1 view .LVU2601 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7399 .loc 1 3444 14 is_stmt 0 view .LVU2602 7400 008e 236B ldr r3, [r4, #48] 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7401 .loc 1 3444 8 view .LVU2603 7402 0090 112B cmp r3, #17 7403 0092 06D1 bne .L475 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7404 .loc 1 3445 10 view .LVU2604 7405 0094 AA2E cmp r6, #170 7406 0096 04D0 beq .L475 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7407 .loc 1 3445 10 discriminator 2 view .LVU2605 7408 0098 B6F52A4F cmp r6, #43520 7409 009c 01D0 beq .L475 3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7410 .loc 1 3447 19 view .LVU2606 7411 009e 0023 movs r3, #0 7412 00a0 08E0 b .L476 7413 .L475: 3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7414 .loc 1 3452 7 is_stmt 1 view .LVU2607 7415 00a2 2046 mov r0, r4 7416 00a4 FFF7FEFF bl I2C_ConvertOtherXferOptions 7417 .LVL499: 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7418 .loc 1 3455 7 view .LVU2608 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 305 7419 .loc 1 3455 15 is_stmt 0 view .LVU2609 7420 00a8 638D ldrh r3, [r4, #42] 7421 00aa 9BB2 uxth r3, r3 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7422 .loc 1 3455 10 view .LVU2610 7423 00ac FF2B cmp r3, #255 7424 00ae 18D8 bhi .L485 3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7425 .loc 1 3457 9 is_stmt 1 view .LVU2611 3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7426 .loc 1 3457 18 is_stmt 0 view .LVU2612 7427 00b0 E76A ldr r7, [r4, #44] 7428 .LVL500: 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7429 .loc 1 3393 12 view .LVU2613 7430 00b2 144B ldr r3, .L487+4 7431 .L476: 7432 .LVL501: 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7433 .loc 1 3462 5 is_stmt 1 view .LVU2614 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7434 .loc 1 3462 8 is_stmt 0 view .LVU2615 7435 00b4 16B1 cbz r6, .L477 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7436 .loc 1 3462 42 discriminator 1 view .LVU2616 7437 00b6 B6F1007F cmp r6, #33554432 7438 00ba 14D1 bne .L478 7439 .L477: 3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7440 .loc 1 3464 7 is_stmt 1 view .LVU2617 7441 00bc 0093 str r3, [sp] 7442 00be 3B46 mov r3, r7 7443 .LVL502: 3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7444 .loc 1 3464 7 is_stmt 0 view .LVU2618 7445 00c0 5FFA88F2 uxtb r2, r8 7446 00c4 2946 mov r1, r5 7447 00c6 2046 mov r0, r4 7448 00c8 FFF7FEFF bl I2C_TransferConfig 7449 .LVL503: 7450 .L479: 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7451 .loc 1 3472 5 is_stmt 1 view .LVU2619 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7452 .loc 1 3472 5 view .LVU2620 7453 00cc 0025 movs r5, #0 7454 .LVL504: 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7455 .loc 1 3472 5 is_stmt 0 view .LVU2621 7456 00ce 84F84050 strb r5, [r4, #64] 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7457 .loc 1 3472 5 is_stmt 1 view .LVU2622 3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7458 .loc 1 3481 5 view .LVU2623 7459 00d2 0121 movs r1, #1 7460 00d4 2046 mov r0, r4 7461 00d6 FFF7FEFF bl I2C_Enable_IRQ ARM GAS /tmp/ccclMPzv.s page 306 7462 .LVL505: 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7463 .loc 1 3483 5 view .LVU2624 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7464 .loc 1 3483 12 is_stmt 0 view .LVU2625 7465 00da 2846 mov r0, r5 7466 .LVL506: 7467 .L470: 3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7468 .loc 1 3489 1 view .LVU2626 7469 00dc 02B0 add sp, sp, #8 7470 .LCFI88: 7471 .cfi_remember_state 7472 .cfi_def_cfa_offset 24 7473 @ sp needed 7474 00de BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7475 .LVL507: 7476 .L485: 7477 .LCFI89: 7478 .cfi_restore_state 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7479 .loc 1 3393 12 view .LVU2627 7480 00e2 084B ldr r3, .L487+4 7481 00e4 E6E7 b .L476 7482 .LVL508: 7483 .L478: 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7484 .loc 1 3468 7 is_stmt 1 view .LVU2628 7485 00e6 0093 str r3, [sp] 7486 00e8 3B46 mov r3, r7 7487 .LVL509: 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7488 .loc 1 3468 7 is_stmt 0 view .LVU2629 7489 00ea 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7490 00ee 2946 mov r1, r5 7491 00f0 2046 mov r0, r4 7492 00f2 FFF7FEFF bl I2C_TransferConfig 7493 .LVL510: 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7494 .loc 1 3468 7 view .LVU2630 7495 00f6 E9E7 b .L479 7496 .LVL511: 7497 .L480: 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7498 .loc 1 3487 12 view .LVU2631 7499 00f8 0220 movs r0, #2 7500 00fa EFE7 b .L470 7501 .LVL512: 7502 .L481: 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7503 .loc 1 3402 5 discriminator 1 view .LVU2632 7504 00fc 0220 movs r0, #2 7505 00fe EDE7 b .L470 7506 .L488: 7507 .align 2 7508 .L487: 7509 0100 00000000 .word I2C_Master_ISR_IT ARM GAS /tmp/ccclMPzv.s page 307 7510 0104 00200080 .word -2147475456 7511 .cfi_endproc 7512 .LFE352: 7514 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7515 .align 1 7516 .global HAL_I2C_Master_Seq_Transmit_DMA 7517 .syntax unified 7518 .thumb 7519 .thumb_func 7521 HAL_I2C_Master_Seq_Transmit_DMA: 7522 .LVL513: 7523 .LFB353: 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7524 .loc 1 3505 1 is_stmt 1 view -0 7525 .cfi_startproc 7526 @ args = 4, pretend = 0, frame = 0 7527 @ frame_needed = 0, uses_anonymous_args = 0 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7528 .loc 1 3505 1 is_stmt 0 view .LVU2634 7529 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 7530 .LCFI90: 7531 .cfi_def_cfa_offset 28 7532 .cfi_offset 4, -28 7533 .cfi_offset 5, -24 7534 .cfi_offset 6, -20 7535 .cfi_offset 7, -16 7536 .cfi_offset 8, -12 7537 .cfi_offset 9, -8 7538 .cfi_offset 14, -4 7539 0004 83B0 sub sp, sp, #12 7540 .LCFI91: 7541 .cfi_def_cfa_offset 40 7542 0006 0446 mov r4, r0 7543 0008 0A9E ldr r6, [sp, #40] 3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7544 .loc 1 3506 3 is_stmt 1 view .LVU2635 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7545 .loc 1 3507 3 view .LVU2636 7546 .LVL514: 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7547 .loc 1 3508 3 view .LVU2637 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7548 .loc 1 3509 3 view .LVU2638 3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7549 .loc 1 3512 3 view .LVU2639 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7550 .loc 1 3514 3 view .LVU2640 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7551 .loc 1 3514 11 is_stmt 0 view .LVU2641 7552 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7553 .LVL515: 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7554 .loc 1 3514 11 view .LVU2642 7555 000e C0B2 uxtb r0, r0 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7556 .loc 1 3514 6 view .LVU2643 7557 0010 2028 cmp r0, #32 ARM GAS /tmp/ccclMPzv.s page 308 7558 0012 40F0D480 bne .L508 7559 0016 0D46 mov r5, r1 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7560 .loc 1 3517 5 is_stmt 1 view .LVU2644 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7561 .loc 1 3517 5 view .LVU2645 7562 0018 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7563 .LVL516: 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7564 .loc 1 3517 5 is_stmt 0 view .LVU2646 7565 001c 0129 cmp r1, #1 7566 001e 00F0D280 beq .L509 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7567 .loc 1 3517 5 is_stmt 1 discriminator 2 view .LVU2647 7568 0022 0121 movs r1, #1 7569 0024 84F84010 strb r1, [r4, #64] 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7570 .loc 1 3517 5 discriminator 2 view .LVU2648 3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7571 .loc 1 3519 5 view .LVU2649 3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7572 .loc 1 3519 21 is_stmt 0 view .LVU2650 7573 0028 2121 movs r1, #33 7574 002a 84F84110 strb r1, [r4, #65] 3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7575 .loc 1 3520 5 is_stmt 1 view .LVU2651 3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7576 .loc 1 3520 21 is_stmt 0 view .LVU2652 7577 002e 1021 movs r1, #16 7578 0030 84F84210 strb r1, [r4, #66] 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7579 .loc 1 3521 5 is_stmt 1 view .LVU2653 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7580 .loc 1 3521 21 is_stmt 0 view .LVU2654 7581 0034 0021 movs r1, #0 7582 0036 6164 str r1, [r4, #68] 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7583 .loc 1 3524 5 is_stmt 1 view .LVU2655 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 7584 .loc 1 3524 23 is_stmt 0 view .LVU2656 7585 0038 6262 str r2, [r4, #36] 3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7586 .loc 1 3525 5 is_stmt 1 view .LVU2657 3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7587 .loc 1 3525 23 is_stmt 0 view .LVU2658 7588 003a 6385 strh r3, [r4, #42] @ movhi 3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7589 .loc 1 3526 5 is_stmt 1 view .LVU2659 3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7590 .loc 1 3526 23 is_stmt 0 view .LVU2660 7591 003c E662 str r6, [r4, #44] 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7592 .loc 1 3527 5 is_stmt 1 view .LVU2661 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7593 .loc 1 3527 23 is_stmt 0 view .LVU2662 7594 003e 634B ldr r3, .L516 7595 .LVL517: ARM GAS /tmp/ccclMPzv.s page 309 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7596 .loc 1 3527 23 view .LVU2663 7597 0040 6363 str r3, [r4, #52] 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7598 .loc 1 3530 5 is_stmt 1 view .LVU2664 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7599 .loc 1 3530 13 is_stmt 0 view .LVU2665 7600 0042 638D ldrh r3, [r4, #42] 7601 0044 9BB2 uxth r3, r3 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7602 .loc 1 3530 8 view .LVU2666 7603 0046 FF2B cmp r3, #255 7604 0048 0CD9 bls .L491 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7605 .loc 1 3532 7 is_stmt 1 view .LVU2667 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7606 .loc 1 3532 22 is_stmt 0 view .LVU2668 7607 004a FF23 movs r3, #255 7608 004c 2385 strh r3, [r4, #40] @ movhi 3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7609 .loc 1 3533 7 is_stmt 1 view .LVU2669 7610 .LVL518: 3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7611 .loc 1 3533 16 is_stmt 0 view .LVU2670 7612 004e 4FF08077 mov r7, #16777216 7613 .LVL519: 7614 .L492: 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7615 .loc 1 3541 5 is_stmt 1 view .LVU2671 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7616 .loc 1 3541 14 is_stmt 0 view .LVU2672 7617 0052 238D ldrh r3, [r4, #40] 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7618 .loc 1 3541 8 view .LVU2673 7619 0054 DBB1 cbz r3, .L510 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7620 .loc 1 3541 31 discriminator 1 view .LVU2674 7621 0056 4EB1 cbz r6, .L494 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7622 .loc 1 3541 68 discriminator 2 view .LVU2675 7623 0058 B6F1007F cmp r6, #33554432 7624 005c 06D0 beq .L494 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7625 .loc 1 3509 12 view .LVU2676 7626 005e 4FF00008 mov r8, #0 7627 0062 16E0 b .L493 7628 .LVL520: 7629 .L491: 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7630 .loc 1 3537 7 is_stmt 1 view .LVU2677 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7631 .loc 1 3537 28 is_stmt 0 view .LVU2678 7632 0064 638D ldrh r3, [r4, #42] 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7633 .loc 1 3537 22 view .LVU2679 7634 0066 2385 strh r3, [r4, #40] @ movhi 3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 310 7635 .loc 1 3538 7 is_stmt 1 view .LVU2680 3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7636 .loc 1 3538 16 is_stmt 0 view .LVU2681 7637 0068 E76A ldr r7, [r4, #44] 7638 .LVL521: 3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7639 .loc 1 3538 16 view .LVU2682 7640 006a F2E7 b .L492 7641 .L494: 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7642 .loc 1 3546 7 is_stmt 1 view .LVU2683 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7643 .loc 1 3546 11 is_stmt 0 view .LVU2684 7644 006c 2368 ldr r3, [r4] 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7645 .loc 1 3546 30 view .LVU2685 7646 006e 1278 ldrb r2, [r2] @ zero_extendqisi2 7647 .LVL522: 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7648 .loc 1 3546 28 view .LVU2686 7649 0070 9A62 str r2, [r3, #40] 7650 .LVL523: 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7651 .loc 1 3549 7 is_stmt 1 view .LVU2687 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7652 .loc 1 3549 11 is_stmt 0 view .LVU2688 7653 0072 636A ldr r3, [r4, #36] 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7654 .loc 1 3549 21 view .LVU2689 7655 0074 0133 adds r3, r3, #1 7656 0076 6362 str r3, [r4, #36] 3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 7657 .loc 1 3551 7 is_stmt 1 view .LVU2690 3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 7658 .loc 1 3551 24 is_stmt 0 view .LVU2691 7659 0078 B4F82880 ldrh r8, [r4, #40] 7660 .LVL524: 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7661 .loc 1 3552 7 is_stmt 1 view .LVU2692 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7662 .loc 1 3552 11 is_stmt 0 view .LVU2693 7663 007c 638D ldrh r3, [r4, #42] 7664 007e 9BB2 uxth r3, r3 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 7665 .loc 1 3552 22 view .LVU2694 7666 0080 013B subs r3, r3, #1 7667 0082 9BB2 uxth r3, r3 7668 0084 6385 strh r3, [r4, #42] @ movhi 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7669 .loc 1 3553 7 is_stmt 1 view .LVU2695 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7670 .loc 1 3553 21 is_stmt 0 view .LVU2696 7671 0086 08F1FF33 add r3, r8, #-1 7672 008a 2385 strh r3, [r4, #40] @ movhi 7673 008c 01E0 b .L493 7674 .LVL525: 7675 .L510: ARM GAS /tmp/ccclMPzv.s page 311 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7676 .loc 1 3509 12 view .LVU2697 7677 008e 4FF00008 mov r8, #0 7678 .LVL526: 7679 .L493: 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7680 .loc 1 3559 5 is_stmt 1 view .LVU2698 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7681 .loc 1 3559 14 is_stmt 0 view .LVU2699 7682 0092 236B ldr r3, [r4, #48] 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7683 .loc 1 3559 8 view .LVU2700 7684 0094 112B cmp r3, #17 7685 0096 07D1 bne .L495 3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7686 .loc 1 3560 10 view .LVU2701 7687 0098 AA2E cmp r6, #170 7688 009a 05D0 beq .L495 3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7689 .loc 1 3560 10 discriminator 2 view .LVU2702 7690 009c B6F52A4F cmp r6, #43520 7691 00a0 02D0 beq .L495 3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7692 .loc 1 3562 19 view .LVU2703 7693 00a2 4FF00009 mov r9, #0 7694 00a6 09E0 b .L496 7695 .L495: 3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7696 .loc 1 3567 7 is_stmt 1 view .LVU2704 7697 00a8 2046 mov r0, r4 7698 00aa FFF7FEFF bl I2C_ConvertOtherXferOptions 7699 .LVL527: 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7700 .loc 1 3570 7 view .LVU2705 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7701 .loc 1 3570 15 is_stmt 0 view .LVU2706 7702 00ae 638D ldrh r3, [r4, #42] 7703 00b0 9BB2 uxth r3, r3 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7704 .loc 1 3570 10 view .LVU2707 7705 00b2 FF2B cmp r3, #255 7706 00b4 27D8 bhi .L513 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7707 .loc 1 3572 9 is_stmt 1 view .LVU2708 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7708 .loc 1 3572 18 is_stmt 0 view .LVU2709 7709 00b6 E76A ldr r7, [r4, #44] 7710 .LVL528: 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7711 .loc 1 3507 12 view .LVU2710 7712 00b8 DFF82091 ldr r9, .L516+16 7713 .L496: 7714 .LVL529: 3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7715 .loc 1 3576 5 is_stmt 1 view .LVU2711 3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7716 .loc 1 3576 13 is_stmt 0 view .LVU2712 ARM GAS /tmp/ccclMPzv.s page 312 7717 00bc 228D ldrh r2, [r4, #40] 3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7718 .loc 1 3576 8 view .LVU2713 7719 00be 002A cmp r2, #0 7720 00c0 5CD0 beq .L497 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7721 .loc 1 3578 7 is_stmt 1 view .LVU2714 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7722 .loc 1 3578 15 is_stmt 0 view .LVU2715 7723 00c2 A36B ldr r3, [r4, #56] 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7724 .loc 1 3578 10 view .LVU2716 7725 00c4 13B3 cbz r3, .L498 3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7726 .loc 1 3581 9 is_stmt 1 view .LVU2717 3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7727 .loc 1 3581 40 is_stmt 0 view .LVU2718 7728 00c6 424A ldr r2, .L516+4 7729 00c8 DA62 str r2, [r3, #44] 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7730 .loc 1 3584 9 is_stmt 1 view .LVU2719 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7731 .loc 1 3584 13 is_stmt 0 view .LVU2720 7732 00ca A36B ldr r3, [r4, #56] 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7733 .loc 1 3584 41 view .LVU2721 7734 00cc 414A ldr r2, .L516+8 7735 00ce 5A63 str r2, [r3, #52] 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7736 .loc 1 3587 9 is_stmt 1 view .LVU2722 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7737 .loc 1 3587 13 is_stmt 0 view .LVU2723 7738 00d0 A26B ldr r2, [r4, #56] 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7739 .loc 1 3587 44 view .LVU2724 7740 00d2 0023 movs r3, #0 7741 00d4 1363 str r3, [r2, #48] 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7742 .loc 1 3588 9 is_stmt 1 view .LVU2725 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7743 .loc 1 3588 13 is_stmt 0 view .LVU2726 7744 00d6 A26B ldr r2, [r4, #56] 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7745 .loc 1 3588 41 view .LVU2727 7746 00d8 9363 str r3, [r2, #56] 3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7747 .loc 1 3591 9 is_stmt 1 view .LVU2728 3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7748 .loc 1 3592 57 is_stmt 0 view .LVU2729 7749 00da 2268 ldr r2, [r4] 3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7750 .loc 1 3591 25 view .LVU2730 7751 00dc 238D ldrh r3, [r4, #40] 7752 00de 2832 adds r2, r2, #40 7753 00e0 616A ldr r1, [r4, #36] 7754 00e2 A06B ldr r0, [r4, #56] 7755 00e4 FFF7FEFF bl HAL_DMA_Start_IT ARM GAS /tmp/ccclMPzv.s page 313 7756 .LVL530: 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7757 .loc 1 3609 7 is_stmt 1 view .LVU2731 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7758 .loc 1 3609 10 is_stmt 0 view .LVU2732 7759 00e8 F0B1 cbz r0, .L499 3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7760 .loc 1 3639 9 is_stmt 1 view .LVU2733 3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7761 .loc 1 3639 25 is_stmt 0 view .LVU2734 7762 00ea 2023 movs r3, #32 7763 00ec 84F84130 strb r3, [r4, #65] 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7764 .loc 1 3640 9 is_stmt 1 view .LVU2735 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7765 .loc 1 3640 25 is_stmt 0 view .LVU2736 7766 00f0 0022 movs r2, #0 7767 00f2 84F84220 strb r2, [r4, #66] 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7768 .loc 1 3643 9 is_stmt 1 view .LVU2737 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7769 .loc 1 3643 13 is_stmt 0 view .LVU2738 7770 00f6 636C ldr r3, [r4, #68] 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7771 .loc 1 3643 25 view .LVU2739 7772 00f8 43F01003 orr r3, r3, #16 7773 00fc 6364 str r3, [r4, #68] 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7774 .loc 1 3646 9 is_stmt 1 view .LVU2740 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7775 .loc 1 3646 9 view .LVU2741 7776 00fe 84F84020 strb r2, [r4, #64] 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7777 .loc 1 3646 9 view .LVU2742 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7778 .loc 1 3648 9 view .LVU2743 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7779 .loc 1 3648 16 is_stmt 0 view .LVU2744 7780 0102 0120 movs r0, #1 7781 .LVL531: 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7782 .loc 1 3648 16 view .LVU2745 7783 0104 5CE0 b .L490 7784 .LVL532: 7785 .L513: 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7786 .loc 1 3507 12 view .LVU2746 7787 0106 DFF8D490 ldr r9, .L516+16 7788 010a D7E7 b .L496 7789 .LVL533: 7790 .L498: 3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7791 .loc 1 3597 9 is_stmt 1 view .LVU2747 3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7792 .loc 1 3597 25 is_stmt 0 view .LVU2748 7793 010c 2023 movs r3, #32 7794 010e 84F84130 strb r3, [r4, #65] ARM GAS /tmp/ccclMPzv.s page 314 3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7795 .loc 1 3598 9 is_stmt 1 view .LVU2749 3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7796 .loc 1 3598 25 is_stmt 0 view .LVU2750 7797 0112 0022 movs r2, #0 7798 0114 84F84220 strb r2, [r4, #66] 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7799 .loc 1 3601 9 is_stmt 1 view .LVU2751 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7800 .loc 1 3601 13 is_stmt 0 view .LVU2752 7801 0118 636C ldr r3, [r4, #68] 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7802 .loc 1 3601 25 view .LVU2753 7803 011a 43F08003 orr r3, r3, #128 7804 011e 6364 str r3, [r4, #68] 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7805 .loc 1 3604 9 is_stmt 1 view .LVU2754 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7806 .loc 1 3604 9 view .LVU2755 7807 0120 84F84020 strb r2, [r4, #64] 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7808 .loc 1 3604 9 view .LVU2756 3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7809 .loc 1 3606 9 view .LVU2757 3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7810 .loc 1 3606 16 is_stmt 0 view .LVU2758 7811 0124 0120 movs r0, #1 7812 0126 4BE0 b .L490 7813 .LVL534: 7814 .L499: 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7815 .loc 1 3612 9 is_stmt 1 view .LVU2759 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7816 .loc 1 3612 12 is_stmt 0 view .LVU2760 7817 0128 16B1 cbz r6, .L501 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7818 .loc 1 3612 46 discriminator 1 view .LVU2761 7819 012a B6F1007F cmp r6, #33554432 7820 012e 1BD1 bne .L502 7821 .L501: 3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7822 .loc 1 3614 11 is_stmt 1 view .LVU2762 7823 0130 CDF80090 str r9, [sp] 7824 0134 3B46 mov r3, r7 7825 0136 5FFA88F2 uxtb r2, r8 7826 013a 2946 mov r1, r5 7827 013c 2046 mov r0, r4 7828 .LVL535: 3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7829 .loc 1 3614 11 is_stmt 0 view .LVU2763 7830 013e FFF7FEFF bl I2C_TransferConfig 7831 .LVL536: 7832 .L503: 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7833 .loc 1 3622 9 is_stmt 1 view .LVU2764 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7834 .loc 1 3622 13 is_stmt 0 view .LVU2765 ARM GAS /tmp/ccclMPzv.s page 315 7835 0142 638D ldrh r3, [r4, #42] 7836 0144 9BB2 uxth r3, r3 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7837 .loc 1 3622 32 view .LVU2766 7838 0146 228D ldrh r2, [r4, #40] 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7839 .loc 1 3622 25 view .LVU2767 7840 0148 9B1A subs r3, r3, r2 7841 014a 9BB2 uxth r3, r3 7842 014c 6385 strh r3, [r4, #42] @ movhi 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7843 .loc 1 3625 9 is_stmt 1 view .LVU2768 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7844 .loc 1 3625 9 view .LVU2769 7845 014e 0023 movs r3, #0 7846 0150 84F84030 strb r3, [r4, #64] 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7847 .loc 1 3625 9 view .LVU2770 3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7848 .loc 1 3631 9 view .LVU2771 7849 0154 1021 movs r1, #16 7850 0156 2046 mov r0, r4 7851 0158 FFF7FEFF bl I2C_Enable_IRQ 7852 .LVL537: 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7853 .loc 1 3634 9 view .LVU2772 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7854 .loc 1 3634 13 is_stmt 0 view .LVU2773 7855 015c 2268 ldr r2, [r4] 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7856 .loc 1 3634 23 view .LVU2774 7857 015e 1368 ldr r3, [r2] 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7858 .loc 1 3634 29 view .LVU2775 7859 0160 43F48043 orr r3, r3, #16384 7860 0164 1360 str r3, [r2] 7861 0166 1FE0 b .L504 7862 .LVL538: 7863 .L502: 3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7864 .loc 1 3618 11 is_stmt 1 view .LVU2776 7865 0168 CDF80090 str r9, [sp] 7866 016c 3B46 mov r3, r7 7867 016e 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7868 0172 2946 mov r1, r5 7869 0174 2046 mov r0, r4 7870 .LVL539: 3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7871 .loc 1 3618 11 is_stmt 0 view .LVU2777 7872 0176 FFF7FEFF bl I2C_TransferConfig 7873 .LVL540: 7874 017a E2E7 b .L503 7875 .LVL541: 7876 .L497: 3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7877 .loc 1 3654 7 is_stmt 1 view .LVU2778 3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 316 7878 .loc 1 3654 21 is_stmt 0 view .LVU2779 7879 017c 164B ldr r3, .L516+12 7880 017e 6363 str r3, [r4, #52] 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7881 .loc 1 3658 7 is_stmt 1 view .LVU2780 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7882 .loc 1 3658 10 is_stmt 0 view .LVU2781 7883 0180 16B1 cbz r6, .L505 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7884 .loc 1 3658 44 discriminator 1 view .LVU2782 7885 0182 B6F1007F cmp r6, #33554432 7886 0186 11D1 bne .L506 7887 .L505: 3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7888 .loc 1 3660 9 is_stmt 1 view .LVU2783 7889 0188 CDF80090 str r9, [sp] 7890 018c 3B46 mov r3, r7 7891 018e 5FFA88F2 uxtb r2, r8 7892 0192 2946 mov r1, r5 7893 0194 2046 mov r0, r4 7894 0196 FFF7FEFF bl I2C_TransferConfig 7895 .LVL542: 7896 .L507: 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7897 .loc 1 3668 7 view .LVU2784 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7898 .loc 1 3668 7 view .LVU2785 7899 019a 0023 movs r3, #0 7900 019c 84F84030 strb r3, [r4, #64] 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7901 .loc 1 3668 7 view .LVU2786 3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7902 .loc 1 3677 7 view .LVU2787 7903 01a0 0121 movs r1, #1 7904 01a2 2046 mov r0, r4 7905 01a4 FFF7FEFF bl I2C_Enable_IRQ 7906 .LVL543: 7907 .L504: 3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7908 .loc 1 3680 5 view .LVU2788 3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7909 .loc 1 3680 12 is_stmt 0 view .LVU2789 7910 01a8 0020 movs r0, #0 7911 01aa 09E0 b .L490 7912 .L506: 3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7913 .loc 1 3664 9 is_stmt 1 view .LVU2790 7914 01ac CDF80090 str r9, [sp] 7915 01b0 3B46 mov r3, r7 7916 01b2 D2B2 uxtb r2, r2 7917 01b4 2946 mov r1, r5 7918 01b6 2046 mov r0, r4 7919 01b8 FFF7FEFF bl I2C_TransferConfig 7920 .LVL544: 7921 01bc EDE7 b .L507 7922 .LVL545: 7923 .L508: ARM GAS /tmp/ccclMPzv.s page 317 3684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 7924 .loc 1 3684 12 is_stmt 0 view .LVU2791 7925 01be 0220 movs r0, #2 7926 .LVL546: 7927 .L490: 3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7928 .loc 1 3686 1 view .LVU2792 7929 01c0 03B0 add sp, sp, #12 7930 .LCFI92: 7931 .cfi_remember_state 7932 .cfi_def_cfa_offset 28 7933 @ sp needed 7934 01c2 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7935 .LVL547: 7936 .L509: 7937 .LCFI93: 7938 .cfi_restore_state 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7939 .loc 1 3517 5 discriminator 1 view .LVU2793 7940 01c6 0220 movs r0, #2 7941 01c8 FAE7 b .L490 7942 .L517: 7943 01ca 00BF .align 2 7944 .L516: 7945 01cc 00000000 .word I2C_Master_ISR_DMA 7946 01d0 00000000 .word I2C_DMAMasterTransmitCplt 7947 01d4 00000000 .word I2C_DMAError 7948 01d8 00000000 .word I2C_Master_ISR_IT 7949 01dc 00200080 .word -2147475456 7950 .cfi_endproc 7951 .LFE353: 7953 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7954 .align 1 7955 .global HAL_I2C_Master_Seq_Receive_IT 7956 .syntax unified 7957 .thumb 7958 .thumb_func 7960 HAL_I2C_Master_Seq_Receive_IT: 7961 .LVL548: 7962 .LFB354: 3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7963 .loc 1 3702 1 is_stmt 1 view -0 7964 .cfi_startproc 7965 @ args = 4, pretend = 0, frame = 0 7966 @ frame_needed = 0, uses_anonymous_args = 0 3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 7967 .loc 1 3702 1 is_stmt 0 view .LVU2795 7968 0000 70B5 push {r4, r5, r6, lr} 7969 .LCFI94: 7970 .cfi_def_cfa_offset 16 7971 .cfi_offset 4, -16 7972 .cfi_offset 5, -12 7973 .cfi_offset 6, -8 7974 .cfi_offset 14, -4 7975 0002 82B0 sub sp, sp, #8 7976 .LCFI95: 7977 .cfi_def_cfa_offset 24 ARM GAS /tmp/ccclMPzv.s page 318 7978 0004 0446 mov r4, r0 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7979 .loc 1 3703 3 is_stmt 1 view .LVU2796 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7980 .loc 1 3704 3 view .LVU2797 7981 .LVL549: 3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7982 .loc 1 3707 3 view .LVU2798 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7983 .loc 1 3709 3 view .LVU2799 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7984 .loc 1 3709 11 is_stmt 0 view .LVU2800 7985 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7986 .LVL550: 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7987 .loc 1 3709 11 view .LVU2801 7988 000a C0B2 uxtb r0, r0 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 7989 .loc 1 3709 6 view .LVU2802 7990 000c 2028 cmp r0, #32 7991 000e 49D1 bne .L524 7992 0010 0D46 mov r5, r1 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7993 .loc 1 3712 5 is_stmt 1 view .LVU2803 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7994 .loc 1 3712 5 view .LVU2804 7995 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7996 .LVL551: 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 7997 .loc 1 3712 5 is_stmt 0 view .LVU2805 7998 0016 0129 cmp r1, #1 7999 0018 46D0 beq .L525 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8000 .loc 1 3712 5 is_stmt 1 discriminator 2 view .LVU2806 8001 001a 0121 movs r1, #1 8002 001c 84F84010 strb r1, [r4, #64] 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8003 .loc 1 3712 5 discriminator 2 view .LVU2807 3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8004 .loc 1 3714 5 view .LVU2808 3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8005 .loc 1 3714 21 is_stmt 0 view .LVU2809 8006 0020 2221 movs r1, #34 8007 0022 84F84110 strb r1, [r4, #65] 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8008 .loc 1 3715 5 is_stmt 1 view .LVU2810 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8009 .loc 1 3715 21 is_stmt 0 view .LVU2811 8010 0026 1021 movs r1, #16 8011 0028 84F84210 strb r1, [r4, #66] 3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8012 .loc 1 3716 5 is_stmt 1 view .LVU2812 3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8013 .loc 1 3716 21 is_stmt 0 view .LVU2813 8014 002c 0021 movs r1, #0 8015 002e 6164 str r1, [r4, #68] 3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccclMPzv.s page 319 8016 .loc 1 3719 5 is_stmt 1 view .LVU2814 3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8017 .loc 1 3719 23 is_stmt 0 view .LVU2815 8018 0030 6262 str r2, [r4, #36] 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8019 .loc 1 3720 5 is_stmt 1 view .LVU2816 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8020 .loc 1 3720 23 is_stmt 0 view .LVU2817 8021 0032 6385 strh r3, [r4, #42] @ movhi 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 8022 .loc 1 3721 5 is_stmt 1 view .LVU2818 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 8023 .loc 1 3721 23 is_stmt 0 view .LVU2819 8024 0034 069B ldr r3, [sp, #24] 8025 .LVL552: 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 8026 .loc 1 3721 23 view .LVU2820 8027 0036 E362 str r3, [r4, #44] 8028 .LVL553: 3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8029 .loc 1 3722 5 is_stmt 1 view .LVU2821 3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8030 .loc 1 3722 23 is_stmt 0 view .LVU2822 8031 0038 1C4B ldr r3, .L529 8032 003a 6363 str r3, [r4, #52] 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8033 .loc 1 3725 5 is_stmt 1 view .LVU2823 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8034 .loc 1 3725 13 is_stmt 0 view .LVU2824 8035 003c 638D ldrh r3, [r4, #42] 8036 003e 9BB2 uxth r3, r3 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8037 .loc 1 3725 8 view .LVU2825 8038 0040 FF2B cmp r3, #255 8039 0042 0ED9 bls .L520 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8040 .loc 1 3727 7 is_stmt 1 view .LVU2826 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8041 .loc 1 3727 22 is_stmt 0 view .LVU2827 8042 0044 FF23 movs r3, #255 8043 0046 2385 strh r3, [r4, #40] @ movhi 3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8044 .loc 1 3728 7 is_stmt 1 view .LVU2828 8045 .LVL554: 3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8046 .loc 1 3728 16 is_stmt 0 view .LVU2829 8047 0048 4FF08076 mov r6, #16777216 8048 .LVL555: 8049 .L521: 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8050 .loc 1 3739 5 is_stmt 1 view .LVU2830 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8051 .loc 1 3739 14 is_stmt 0 view .LVU2831 8052 004c 236B ldr r3, [r4, #48] 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8053 .loc 1 3739 8 view .LVU2832 8054 004e 122B cmp r3, #18 ARM GAS /tmp/ccclMPzv.s page 320 8055 0050 0BD1 bne .L522 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8056 .loc 1 3740 10 view .LVU2833 8057 0052 069B ldr r3, [sp, #24] 8058 0054 AA2B cmp r3, #170 8059 0056 08D0 beq .L522 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8060 .loc 1 3740 10 discriminator 2 view .LVU2834 8061 0058 B3F52A4F cmp r3, #43520 8062 005c 05D0 beq .L522 3742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8063 .loc 1 3742 19 view .LVU2835 8064 005e 0023 movs r3, #0 8065 0060 0CE0 b .L523 8066 .LVL556: 8067 .L520: 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8068 .loc 1 3732 7 is_stmt 1 view .LVU2836 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8069 .loc 1 3732 28 is_stmt 0 view .LVU2837 8070 0062 638D ldrh r3, [r4, #42] 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8071 .loc 1 3732 22 view .LVU2838 8072 0064 2385 strh r3, [r4, #40] @ movhi 3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8073 .loc 1 3733 7 is_stmt 1 view .LVU2839 3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8074 .loc 1 3733 16 is_stmt 0 view .LVU2840 8075 0066 E66A ldr r6, [r4, #44] 8076 .LVL557: 3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8077 .loc 1 3733 16 view .LVU2841 8078 0068 F0E7 b .L521 8079 .L522: 3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8080 .loc 1 3747 7 is_stmt 1 view .LVU2842 8081 006a 2046 mov r0, r4 8082 006c FFF7FEFF bl I2C_ConvertOtherXferOptions 8083 .LVL558: 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8084 .loc 1 3750 7 view .LVU2843 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8085 .loc 1 3750 15 is_stmt 0 view .LVU2844 8086 0070 638D ldrh r3, [r4, #42] 8087 0072 9BB2 uxth r3, r3 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8088 .loc 1 3750 10 view .LVU2845 8089 0074 FF2B cmp r3, #255 8090 0076 13D8 bhi .L527 3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8091 .loc 1 3752 9 is_stmt 1 view .LVU2846 3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8092 .loc 1 3752 18 is_stmt 0 view .LVU2847 8093 0078 E66A ldr r6, [r4, #44] 8094 .LVL559: 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8095 .loc 1 3704 12 view .LVU2848 ARM GAS /tmp/ccclMPzv.s page 321 8096 007a 0D4B ldr r3, .L529+4 8097 .L523: 8098 .LVL560: 3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8099 .loc 1 3757 5 is_stmt 1 view .LVU2849 8100 007c 0093 str r3, [sp] 8101 007e 3346 mov r3, r6 8102 .LVL561: 3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8103 .loc 1 3757 5 is_stmt 0 view .LVU2850 8104 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8105 0084 2946 mov r1, r5 8106 0086 2046 mov r0, r4 8107 0088 FFF7FEFF bl I2C_TransferConfig 8108 .LVL562: 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8109 .loc 1 3760 5 is_stmt 1 view .LVU2851 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8110 .loc 1 3760 5 view .LVU2852 8111 008c 0025 movs r5, #0 8112 .LVL563: 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8113 .loc 1 3760 5 is_stmt 0 view .LVU2853 8114 008e 84F84050 strb r5, [r4, #64] 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8115 .loc 1 3760 5 is_stmt 1 view .LVU2854 3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8116 .loc 1 3765 5 view .LVU2855 8117 0092 0221 movs r1, #2 8118 0094 2046 mov r0, r4 8119 0096 FFF7FEFF bl I2C_Enable_IRQ 8120 .LVL564: 3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8121 .loc 1 3767 5 view .LVU2856 3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8122 .loc 1 3767 12 is_stmt 0 view .LVU2857 8123 009a 2846 mov r0, r5 8124 .LVL565: 8125 .L519: 3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8126 .loc 1 3773 1 view .LVU2858 8127 009c 02B0 add sp, sp, #8 8128 .LCFI96: 8129 .cfi_remember_state 8130 .cfi_def_cfa_offset 16 8131 @ sp needed 8132 009e 70BD pop {r4, r5, r6, pc} 8133 .LVL566: 8134 .L527: 8135 .LCFI97: 8136 .cfi_restore_state 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8137 .loc 1 3704 12 view .LVU2859 8138 00a0 034B ldr r3, .L529+4 8139 00a2 EBE7 b .L523 8140 .LVL567: 8141 .L524: ARM GAS /tmp/ccclMPzv.s page 322 3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8142 .loc 1 3771 12 view .LVU2860 8143 00a4 0220 movs r0, #2 8144 00a6 F9E7 b .L519 8145 .LVL568: 8146 .L525: 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8147 .loc 1 3712 5 discriminator 1 view .LVU2861 8148 00a8 0220 movs r0, #2 8149 00aa F7E7 b .L519 8150 .L530: 8151 .align 2 8152 .L529: 8153 00ac 00000000 .word I2C_Master_ISR_IT 8154 00b0 00240080 .word -2147474432 8155 .cfi_endproc 8156 .LFE354: 8158 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8159 .align 1 8160 .global HAL_I2C_Master_Seq_Receive_DMA 8161 .syntax unified 8162 .thumb 8163 .thumb_func 8165 HAL_I2C_Master_Seq_Receive_DMA: 8166 .LVL569: 8167 .LFB355: 3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 8168 .loc 1 3789 1 is_stmt 1 view -0 8169 .cfi_startproc 8170 @ args = 4, pretend = 0, frame = 0 8171 @ frame_needed = 0, uses_anonymous_args = 0 3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 8172 .loc 1 3789 1 is_stmt 0 view .LVU2863 8173 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 8174 .LCFI98: 8175 .cfi_def_cfa_offset 24 8176 .cfi_offset 4, -24 8177 .cfi_offset 5, -20 8178 .cfi_offset 6, -16 8179 .cfi_offset 7, -12 8180 .cfi_offset 8, -8 8181 .cfi_offset 14, -4 8182 0004 82B0 sub sp, sp, #8 8183 .LCFI99: 8184 .cfi_def_cfa_offset 32 8185 0006 0446 mov r4, r0 8186 0008 1546 mov r5, r2 8187 000a 089A ldr r2, [sp, #32] 8188 .LVL570: 3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8189 .loc 1 3790 3 is_stmt 1 view .LVU2864 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8190 .loc 1 3791 3 view .LVU2865 3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8191 .loc 1 3792 3 view .LVU2866 3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8192 .loc 1 3795 3 view .LVU2867 ARM GAS /tmp/ccclMPzv.s page 323 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8193 .loc 1 3797 3 view .LVU2868 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8194 .loc 1 3797 11 is_stmt 0 view .LVU2869 8195 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8196 .LVL571: 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8197 .loc 1 3797 11 view .LVU2870 8198 0010 C0B2 uxtb r0, r0 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8199 .loc 1 3797 6 view .LVU2871 8200 0012 2028 cmp r0, #32 8201 0014 40F09D80 bne .L542 8202 0018 0E46 mov r6, r1 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8203 .loc 1 3800 5 is_stmt 1 view .LVU2872 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8204 .loc 1 3800 5 view .LVU2873 8205 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 8206 .LVL572: 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8207 .loc 1 3800 5 is_stmt 0 view .LVU2874 8208 001e 0129 cmp r1, #1 8209 0020 00F09B80 beq .L543 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8210 .loc 1 3800 5 is_stmt 1 discriminator 2 view .LVU2875 8211 0024 0121 movs r1, #1 8212 0026 84F84010 strb r1, [r4, #64] 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8213 .loc 1 3800 5 discriminator 2 view .LVU2876 3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8214 .loc 1 3802 5 view .LVU2877 3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8215 .loc 1 3802 21 is_stmt 0 view .LVU2878 8216 002a 2221 movs r1, #34 8217 002c 84F84110 strb r1, [r4, #65] 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8218 .loc 1 3803 5 is_stmt 1 view .LVU2879 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8219 .loc 1 3803 21 is_stmt 0 view .LVU2880 8220 0030 1021 movs r1, #16 8221 0032 84F84210 strb r1, [r4, #66] 3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8222 .loc 1 3804 5 is_stmt 1 view .LVU2881 3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8223 .loc 1 3804 21 is_stmt 0 view .LVU2882 8224 0036 0021 movs r1, #0 8225 0038 6164 str r1, [r4, #68] 3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8226 .loc 1 3807 5 is_stmt 1 view .LVU2883 3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8227 .loc 1 3807 23 is_stmt 0 view .LVU2884 8228 003a 6562 str r5, [r4, #36] 3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8229 .loc 1 3808 5 is_stmt 1 view .LVU2885 3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8230 .loc 1 3808 23 is_stmt 0 view .LVU2886 ARM GAS /tmp/ccclMPzv.s page 324 8231 003c 6385 strh r3, [r4, #42] @ movhi 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8232 .loc 1 3809 5 is_stmt 1 view .LVU2887 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8233 .loc 1 3809 23 is_stmt 0 view .LVU2888 8234 003e E262 str r2, [r4, #44] 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8235 .loc 1 3810 5 is_stmt 1 view .LVU2889 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8236 .loc 1 3810 23 is_stmt 0 view .LVU2890 8237 0040 474B ldr r3, .L549 8238 .LVL573: 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8239 .loc 1 3810 23 view .LVU2891 8240 0042 6363 str r3, [r4, #52] 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8241 .loc 1 3813 5 is_stmt 1 view .LVU2892 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8242 .loc 1 3813 13 is_stmt 0 view .LVU2893 8243 0044 638D ldrh r3, [r4, #42] 8244 0046 9BB2 uxth r3, r3 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8245 .loc 1 3813 8 view .LVU2894 8246 0048 FF2B cmp r3, #255 8247 004a 0ED9 bls .L533 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8248 .loc 1 3815 7 is_stmt 1 view .LVU2895 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8249 .loc 1 3815 22 is_stmt 0 view .LVU2896 8250 004c FF23 movs r3, #255 8251 004e 2385 strh r3, [r4, #40] @ movhi 3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8252 .loc 1 3816 7 is_stmt 1 view .LVU2897 8253 .LVL574: 3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8254 .loc 1 3816 16 is_stmt 0 view .LVU2898 8255 0050 4FF08077 mov r7, #16777216 8256 .LVL575: 8257 .L534: 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8258 .loc 1 3827 5 is_stmt 1 view .LVU2899 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8259 .loc 1 3827 14 is_stmt 0 view .LVU2900 8260 0054 236B ldr r3, [r4, #48] 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8261 .loc 1 3827 8 view .LVU2901 8262 0056 122B cmp r3, #18 8263 0058 0BD1 bne .L535 3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8264 .loc 1 3828 10 view .LVU2902 8265 005a AA2A cmp r2, #170 8266 005c 09D0 beq .L535 3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8267 .loc 1 3828 10 discriminator 2 view .LVU2903 8268 005e B2F52A4F cmp r2, #43520 8269 0062 06D0 beq .L535 3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 325 8270 .loc 1 3830 19 view .LVU2904 8271 0064 4FF00008 mov r8, #0 8272 0068 0DE0 b .L536 8273 .LVL576: 8274 .L533: 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8275 .loc 1 3820 7 is_stmt 1 view .LVU2905 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8276 .loc 1 3820 28 is_stmt 0 view .LVU2906 8277 006a 638D ldrh r3, [r4, #42] 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8278 .loc 1 3820 22 view .LVU2907 8279 006c 2385 strh r3, [r4, #40] @ movhi 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8280 .loc 1 3821 7 is_stmt 1 view .LVU2908 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8281 .loc 1 3821 16 is_stmt 0 view .LVU2909 8282 006e E76A ldr r7, [r4, #44] 8283 .LVL577: 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8284 .loc 1 3821 16 view .LVU2910 8285 0070 F0E7 b .L534 8286 .L535: 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8287 .loc 1 3835 7 is_stmt 1 view .LVU2911 8288 0072 2046 mov r0, r4 8289 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 8290 .LVL578: 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8291 .loc 1 3838 7 view .LVU2912 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8292 .loc 1 3838 15 is_stmt 0 view .LVU2913 8293 0078 638D ldrh r3, [r4, #42] 8294 007a 9BB2 uxth r3, r3 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8295 .loc 1 3838 10 view .LVU2914 8296 007c FF2B cmp r3, #255 8297 007e 27D8 bhi .L545 3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8298 .loc 1 3840 9 is_stmt 1 view .LVU2915 3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8299 .loc 1 3840 18 is_stmt 0 view .LVU2916 8300 0080 E76A ldr r7, [r4, #44] 8301 .LVL579: 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8302 .loc 1 3791 12 view .LVU2917 8303 0082 DFF8EC80 ldr r8, .L549+16 8304 .L536: 8305 .LVL580: 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8306 .loc 1 3844 5 is_stmt 1 view .LVU2918 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8307 .loc 1 3844 13 is_stmt 0 view .LVU2919 8308 0086 228D ldrh r2, [r4, #40] 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8309 .loc 1 3844 8 view .LVU2920 8310 0088 002A cmp r2, #0 ARM GAS /tmp/ccclMPzv.s page 326 8311 008a 4ED0 beq .L537 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8312 .loc 1 3846 7 is_stmt 1 view .LVU2921 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8313 .loc 1 3846 15 is_stmt 0 view .LVU2922 8314 008c E36B ldr r3, [r4, #60] 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8315 .loc 1 3846 10 view .LVU2923 8316 008e 13B3 cbz r3, .L538 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8317 .loc 1 3849 9 is_stmt 1 view .LVU2924 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8318 .loc 1 3849 40 is_stmt 0 view .LVU2925 8319 0090 344A ldr r2, .L549+4 8320 0092 DA62 str r2, [r3, #44] 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8321 .loc 1 3852 9 is_stmt 1 view .LVU2926 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8322 .loc 1 3852 13 is_stmt 0 view .LVU2927 8323 0094 E36B ldr r3, [r4, #60] 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8324 .loc 1 3852 41 view .LVU2928 8325 0096 344A ldr r2, .L549+8 8326 0098 5A63 str r2, [r3, #52] 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8327 .loc 1 3855 9 is_stmt 1 view .LVU2929 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8328 .loc 1 3855 13 is_stmt 0 view .LVU2930 8329 009a E26B ldr r2, [r4, #60] 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8330 .loc 1 3855 44 view .LVU2931 8331 009c 0023 movs r3, #0 8332 009e 1363 str r3, [r2, #48] 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8333 .loc 1 3856 9 is_stmt 1 view .LVU2932 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8334 .loc 1 3856 13 is_stmt 0 view .LVU2933 8335 00a0 E26B ldr r2, [r4, #60] 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8336 .loc 1 3856 41 view .LVU2934 8337 00a2 9363 str r3, [r2, #56] 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8338 .loc 1 3859 9 is_stmt 1 view .LVU2935 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8339 .loc 1 3859 71 is_stmt 0 view .LVU2936 8340 00a4 2168 ldr r1, [r4] 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8341 .loc 1 3859 25 view .LVU2937 8342 00a6 238D ldrh r3, [r4, #40] 8343 00a8 2A46 mov r2, r5 8344 00aa 2431 adds r1, r1, #36 8345 00ac E06B ldr r0, [r4, #60] 8346 00ae FFF7FEFF bl HAL_DMA_Start_IT 8347 .LVL581: 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8348 .loc 1 3877 7 is_stmt 1 view .LVU2938 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 327 8349 .loc 1 3877 10 is_stmt 0 view .LVU2939 8350 00b2 F0B1 cbz r0, .L548 3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8351 .loc 1 3900 9 is_stmt 1 view .LVU2940 3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8352 .loc 1 3900 25 is_stmt 0 view .LVU2941 8353 00b4 2023 movs r3, #32 8354 00b6 84F84130 strb r3, [r4, #65] 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8355 .loc 1 3901 9 is_stmt 1 view .LVU2942 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8356 .loc 1 3901 25 is_stmt 0 view .LVU2943 8357 00ba 0022 movs r2, #0 8358 00bc 84F84220 strb r2, [r4, #66] 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8359 .loc 1 3904 9 is_stmt 1 view .LVU2944 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8360 .loc 1 3904 13 is_stmt 0 view .LVU2945 8361 00c0 636C ldr r3, [r4, #68] 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8362 .loc 1 3904 25 view .LVU2946 8363 00c2 43F01003 orr r3, r3, #16 8364 00c6 6364 str r3, [r4, #68] 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8365 .loc 1 3907 9 is_stmt 1 view .LVU2947 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8366 .loc 1 3907 9 view .LVU2948 8367 00c8 84F84020 strb r2, [r4, #64] 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8368 .loc 1 3907 9 view .LVU2949 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8369 .loc 1 3909 9 view .LVU2950 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8370 .loc 1 3909 16 is_stmt 0 view .LVU2951 8371 00cc 0120 movs r0, #1 8372 .LVL582: 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8373 .loc 1 3909 16 view .LVU2952 8374 00ce 41E0 b .L532 8375 .LVL583: 8376 .L545: 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8377 .loc 1 3791 12 view .LVU2953 8378 00d0 DFF89C80 ldr r8, .L549+16 8379 00d4 D7E7 b .L536 8380 .LVL584: 8381 .L538: 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8382 .loc 1 3865 9 is_stmt 1 view .LVU2954 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8383 .loc 1 3865 25 is_stmt 0 view .LVU2955 8384 00d6 2023 movs r3, #32 8385 00d8 84F84130 strb r3, [r4, #65] 3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8386 .loc 1 3866 9 is_stmt 1 view .LVU2956 3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8387 .loc 1 3866 25 is_stmt 0 view .LVU2957 ARM GAS /tmp/ccclMPzv.s page 328 8388 00dc 0022 movs r2, #0 8389 00de 84F84220 strb r2, [r4, #66] 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8390 .loc 1 3869 9 is_stmt 1 view .LVU2958 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8391 .loc 1 3869 13 is_stmt 0 view .LVU2959 8392 00e2 636C ldr r3, [r4, #68] 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8393 .loc 1 3869 25 view .LVU2960 8394 00e4 43F08003 orr r3, r3, #128 8395 00e8 6364 str r3, [r4, #68] 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8396 .loc 1 3872 9 is_stmt 1 view .LVU2961 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8397 .loc 1 3872 9 view .LVU2962 8398 00ea 84F84020 strb r2, [r4, #64] 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8399 .loc 1 3872 9 view .LVU2963 3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8400 .loc 1 3874 9 view .LVU2964 3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8401 .loc 1 3874 16 is_stmt 0 view .LVU2965 8402 00ee 0120 movs r0, #1 8403 00f0 30E0 b .L532 8404 .LVL585: 8405 .L548: 3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8406 .loc 1 3880 9 is_stmt 1 view .LVU2966 8407 00f2 CDF80080 str r8, [sp] 8408 00f6 3B46 mov r3, r7 8409 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8410 00fc 3146 mov r1, r6 8411 00fe 2046 mov r0, r4 8412 .LVL586: 3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8413 .loc 1 3880 9 is_stmt 0 view .LVU2967 8414 0100 FFF7FEFF bl I2C_TransferConfig 8415 .LVL587: 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8416 .loc 1 3883 9 is_stmt 1 view .LVU2968 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8417 .loc 1 3883 13 is_stmt 0 view .LVU2969 8418 0104 638D ldrh r3, [r4, #42] 8419 0106 9BB2 uxth r3, r3 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8420 .loc 1 3883 32 view .LVU2970 8421 0108 228D ldrh r2, [r4, #40] 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8422 .loc 1 3883 25 view .LVU2971 8423 010a 9B1A subs r3, r3, r2 8424 010c 9BB2 uxth r3, r3 8425 010e 6385 strh r3, [r4, #42] @ movhi 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8426 .loc 1 3886 9 is_stmt 1 view .LVU2972 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8427 .loc 1 3886 9 view .LVU2973 8428 0110 0023 movs r3, #0 ARM GAS /tmp/ccclMPzv.s page 329 8429 0112 84F84030 strb r3, [r4, #64] 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8430 .loc 1 3886 9 view .LVU2974 3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8431 .loc 1 3892 9 view .LVU2975 8432 0116 1021 movs r1, #16 8433 0118 2046 mov r0, r4 8434 011a FFF7FEFF bl I2C_Enable_IRQ 8435 .LVL588: 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8436 .loc 1 3895 9 view .LVU2976 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8437 .loc 1 3895 13 is_stmt 0 view .LVU2977 8438 011e 2268 ldr r2, [r4] 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8439 .loc 1 3895 23 view .LVU2978 8440 0120 1368 ldr r3, [r2] 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8441 .loc 1 3895 29 view .LVU2979 8442 0122 43F40043 orr r3, r3, #32768 8443 0126 1360 str r3, [r2] 8444 0128 11E0 b .L541 8445 .LVL589: 8446 .L537: 3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8447 .loc 1 3915 7 is_stmt 1 view .LVU2980 3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8448 .loc 1 3915 21 is_stmt 0 view .LVU2981 8449 012a 104B ldr r3, .L549+12 8450 012c 6363 str r3, [r4, #52] 3919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8451 .loc 1 3919 7 is_stmt 1 view .LVU2982 8452 012e 104B ldr r3, .L549+16 8453 0130 0093 str r3, [sp] 8454 0132 4FF00073 mov r3, #33554432 8455 0136 D2B2 uxtb r2, r2 8456 0138 3146 mov r1, r6 8457 013a 2046 mov r0, r4 8458 013c FFF7FEFF bl I2C_TransferConfig 8459 .LVL590: 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8460 .loc 1 3923 7 view .LVU2983 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8461 .loc 1 3923 7 view .LVU2984 8462 0140 0023 movs r3, #0 8463 0142 84F84030 strb r3, [r4, #64] 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8464 .loc 1 3923 7 view .LVU2985 3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8465 .loc 1 3932 7 view .LVU2986 8466 0146 0221 movs r1, #2 8467 0148 2046 mov r0, r4 8468 014a FFF7FEFF bl I2C_Enable_IRQ 8469 .LVL591: 8470 .L541: 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8471 .loc 1 3935 5 view .LVU2987 ARM GAS /tmp/ccclMPzv.s page 330 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8472 .loc 1 3935 12 is_stmt 0 view .LVU2988 8473 014e 0020 movs r0, #0 8474 0150 00E0 b .L532 8475 .LVL592: 8476 .L542: 3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8477 .loc 1 3939 12 view .LVU2989 8478 0152 0220 movs r0, #2 8479 .LVL593: 8480 .L532: 3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8481 .loc 1 3941 1 view .LVU2990 8482 0154 02B0 add sp, sp, #8 8483 .LCFI100: 8484 .cfi_remember_state 8485 .cfi_def_cfa_offset 24 8486 @ sp needed 8487 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8488 .LVL594: 8489 .L543: 8490 .LCFI101: 8491 .cfi_restore_state 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8492 .loc 1 3800 5 discriminator 1 view .LVU2991 8493 015a 0220 movs r0, #2 8494 015c FAE7 b .L532 8495 .L550: 8496 015e 00BF .align 2 8497 .L549: 8498 0160 00000000 .word I2C_Master_ISR_DMA 8499 0164 00000000 .word I2C_DMAMasterReceiveCplt 8500 0168 00000000 .word I2C_DMAError 8501 016c 00000000 .word I2C_Master_ISR_IT 8502 0170 00240080 .word -2147474432 8503 .cfi_endproc 8504 .LFE355: 8506 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8507 .align 1 8508 .global HAL_I2C_Slave_Seq_Transmit_IT 8509 .syntax unified 8510 .thumb 8511 .thumb_func 8513 HAL_I2C_Slave_Seq_Transmit_IT: 8514 .LVL595: 8515 .LFB356: 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8516 .loc 1 3955 1 is_stmt 1 view -0 8517 .cfi_startproc 8518 @ args = 0, pretend = 0, frame = 0 8519 @ 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 */ 8520 .loc 1 3955 1 is_stmt 0 view .LVU2993 8521 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8522 .LCFI102: 8523 .cfi_def_cfa_offset 24 8524 .cfi_offset 3, -24 ARM GAS /tmp/ccclMPzv.s page 331 8525 .cfi_offset 4, -20 8526 .cfi_offset 5, -16 8527 .cfi_offset 6, -12 8528 .cfi_offset 7, -8 8529 .cfi_offset 14, -4 8530 0002 0446 mov r4, r0 3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8531 .loc 1 3957 3 is_stmt 1 view .LVU2994 3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8532 .loc 1 3960 3 view .LVU2995 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8533 .loc 1 3962 3 view .LVU2996 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8534 .loc 1 3962 22 is_stmt 0 view .LVU2997 8535 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8536 .LVL596: 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8537 .loc 1 3962 6 view .LVU2998 8538 0008 00F02800 and r0, r0, #40 8539 000c 2828 cmp r0, #40 8540 000e 5ED1 bne .L557 8541 0010 0F46 mov r7, r1 8542 0012 1646 mov r6, r2 8543 0014 1D46 mov r5, r3 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8544 .loc 1 3964 5 is_stmt 1 view .LVU2999 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8545 .loc 1 3964 8 is_stmt 0 view .LVU3000 8546 0016 01B1 cbz r1, .L553 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8547 .loc 1 3964 25 discriminator 1 view .LVU3001 8548 0018 22B9 cbnz r2, .L554 8549 .L553: 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8550 .loc 1 3966 7 is_stmt 1 view .LVU3002 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8551 .loc 1 3966 23 is_stmt 0 view .LVU3003 8552 001a 4FF40073 mov r3, #512 8553 .LVL597: 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8554 .loc 1 3966 23 view .LVU3004 8555 001e 6364 str r3, [r4, #68] 3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8556 .loc 1 3967 7 is_stmt 1 view .LVU3005 3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8557 .loc 1 3967 15 is_stmt 0 view .LVU3006 8558 0020 0120 movs r0, #1 8559 0022 55E0 b .L552 8560 .LVL598: 8561 .L554: 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8562 .loc 1 3971 5 is_stmt 1 view .LVU3007 8563 0024 48F20101 movw r1, #32769 8564 .LVL599: 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8565 .loc 1 3971 5 is_stmt 0 view .LVU3008 8566 0028 2046 mov r0, r4 ARM GAS /tmp/ccclMPzv.s page 332 8567 002a FFF7FEFF bl I2C_Disable_IRQ 8568 .LVL600: 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8569 .loc 1 3974 5 is_stmt 1 view .LVU3009 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8570 .loc 1 3974 5 view .LVU3010 8571 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8572 0032 012B cmp r3, #1 8573 0034 4DD0 beq .L558 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8574 .loc 1 3974 5 discriminator 2 view .LVU3011 8575 0036 0123 movs r3, #1 8576 0038 84F84030 strb r3, [r4, #64] 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8577 .loc 1 3974 5 discriminator 2 view .LVU3012 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8578 .loc 1 3978 5 view .LVU3013 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8579 .loc 1 3978 13 is_stmt 0 view .LVU3014 8580 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8581 0040 DBB2 uxtb r3, r3 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8582 .loc 1 3978 8 view .LVU3015 8583 0042 2A2B cmp r3, #42 8584 0044 28D0 beq .L560 8585 .L555: 4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8586 .loc 1 4004 5 is_stmt 1 view .LVU3016 4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8587 .loc 1 4004 21 is_stmt 0 view .LVU3017 8588 0046 2923 movs r3, #41 8589 0048 84F84130 strb r3, [r4, #65] 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8590 .loc 1 4005 5 is_stmt 1 view .LVU3018 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8591 .loc 1 4005 21 is_stmt 0 view .LVU3019 8592 004c 2023 movs r3, #32 8593 004e 84F84230 strb r3, [r4, #66] 4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8594 .loc 1 4006 5 is_stmt 1 view .LVU3020 4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8595 .loc 1 4006 21 is_stmt 0 view .LVU3021 8596 0052 0023 movs r3, #0 8597 0054 6364 str r3, [r4, #68] 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8598 .loc 1 4009 5 is_stmt 1 view .LVU3022 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8599 .loc 1 4009 9 is_stmt 0 view .LVU3023 8600 0056 2268 ldr r2, [r4] 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8601 .loc 1 4009 19 view .LVU3024 8602 0058 5368 ldr r3, [r2, #4] 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8603 .loc 1 4009 25 view .LVU3025 8604 005a 23F40043 bic r3, r3, #32768 8605 005e 5360 str r3, [r2, #4] 4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccclMPzv.s page 333 8606 .loc 1 4012 5 is_stmt 1 view .LVU3026 4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8607 .loc 1 4012 23 is_stmt 0 view .LVU3027 8608 0060 6762 str r7, [r4, #36] 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8609 .loc 1 4013 5 is_stmt 1 view .LVU3028 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8610 .loc 1 4013 23 is_stmt 0 view .LVU3029 8611 0062 6685 strh r6, [r4, #42] @ movhi 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8612 .loc 1 4014 5 is_stmt 1 view .LVU3030 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8613 .loc 1 4014 29 is_stmt 0 view .LVU3031 8614 0064 638D ldrh r3, [r4, #42] 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8615 .loc 1 4014 23 view .LVU3032 8616 0066 2385 strh r3, [r4, #40] @ movhi 4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8617 .loc 1 4015 5 is_stmt 1 view .LVU3033 4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8618 .loc 1 4015 23 is_stmt 0 view .LVU3034 8619 0068 E562 str r5, [r4, #44] 4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8620 .loc 1 4016 5 is_stmt 1 view .LVU3035 4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8621 .loc 1 4016 23 is_stmt 0 view .LVU3036 8622 006a 1B4B ldr r3, .L561 8623 006c 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)) 8624 .loc 1 4018 5 is_stmt 1 view .LVU3037 4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8625 .loc 1 4018 11 is_stmt 0 view .LVU3038 8626 006e 2268 ldr r2, [r4] 8627 0070 9369 ldr r3, [r2, #24] 8628 0072 03F00803 and r3, r3, #8 8629 .LVL601: 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8630 .loc 1 4019 5 is_stmt 1 view .LVU3039 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8631 .loc 1 4019 10 is_stmt 0 view .LVU3040 8632 0076 9169 ldr r1, [r2, #24] 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8633 .loc 1 4019 8 view .LVU3041 8634 0078 11F4803F tst r1, #65536 8635 007c 02D0 beq .L556 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8636 .loc 1 4019 54 discriminator 1 view .LVU3042 8637 007e 0BB1 cbz r3, .L556 4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8638 .loc 1 4023 7 is_stmt 1 view .LVU3043 8639 0080 0823 movs r3, #8 8640 .LVL602: 4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8641 .loc 1 4023 7 is_stmt 0 view .LVU3044 8642 0082 D361 str r3, [r2, #28] 8643 .L556: 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 334 8644 .loc 1 4027 5 is_stmt 1 view .LVU3045 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8645 .loc 1 4027 5 view .LVU3046 8646 0084 0025 movs r5, #0 8647 .LVL603: 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8648 .loc 1 4027 5 is_stmt 0 view .LVU3047 8649 0086 84F84050 strb r5, [r4, #64] 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8650 .loc 1 4027 5 is_stmt 1 view .LVU3048 4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8651 .loc 1 4033 5 view .LVU3049 8652 008a 48F20101 movw r1, #32769 8653 008e 2046 mov r0, r4 8654 0090 FFF7FEFF bl I2C_Enable_IRQ 8655 .LVL604: 4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8656 .loc 1 4035 5 view .LVU3050 4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8657 .loc 1 4035 12 is_stmt 0 view .LVU3051 8658 0094 2846 mov r0, r5 8659 0096 1BE0 b .L552 8660 .LVL605: 8661 .L560: 3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8662 .loc 1 3981 7 is_stmt 1 view .LVU3052 8663 0098 0221 movs r1, #2 8664 009a 2046 mov r0, r4 8665 009c FFF7FEFF bl I2C_Disable_IRQ 8666 .LVL606: 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8667 .loc 1 3984 7 view .LVU3053 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8668 .loc 1 3984 16 is_stmt 0 view .LVU3054 8669 00a0 2368 ldr r3, [r4] 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8670 .loc 1 3984 26 view .LVU3055 8671 00a2 1A68 ldr r2, [r3] 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8672 .loc 1 3984 10 view .LVU3056 8673 00a4 12F4004F tst r2, #32768 8674 00a8 CDD0 beq .L555 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8675 .loc 1 3986 9 is_stmt 1 view .LVU3057 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8676 .loc 1 3986 23 is_stmt 0 view .LVU3058 8677 00aa 1A68 ldr r2, [r3] 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8678 .loc 1 3986 29 view .LVU3059 8679 00ac 22F40042 bic r2, r2, #32768 8680 00b0 1A60 str r2, [r3] 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8681 .loc 1 3988 9 is_stmt 1 view .LVU3060 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8682 .loc 1 3988 17 is_stmt 0 view .LVU3061 8683 00b2 E36B ldr r3, [r4, #60] 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 335 8684 .loc 1 3988 12 view .LVU3062 8685 00b4 002B cmp r3, #0 8686 00b6 C6D0 beq .L555 3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8687 .loc 1 3992 11 is_stmt 1 view .LVU3063 3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8688 .loc 1 3992 43 is_stmt 0 view .LVU3064 8689 00b8 084A ldr r2, .L561+4 8690 00ba 9A63 str r2, [r3, #56] 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8691 .loc 1 3995 11 is_stmt 1 view .LVU3065 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8692 .loc 1 3995 15 is_stmt 0 view .LVU3066 8693 00bc E06B ldr r0, [r4, #60] 8694 00be FFF7FEFF bl HAL_DMA_Abort_IT 8695 .LVL607: 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8696 .loc 1 3995 14 discriminator 1 view .LVU3067 8697 00c2 0028 cmp r0, #0 8698 00c4 BFD0 beq .L555 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8699 .loc 1 3998 13 is_stmt 1 view .LVU3068 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8700 .loc 1 3998 17 is_stmt 0 view .LVU3069 8701 00c6 E06B ldr r0, [r4, #60] 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8702 .loc 1 3998 25 view .LVU3070 8703 00c8 836B ldr r3, [r0, #56] 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8704 .loc 1 3998 13 view .LVU3071 8705 00ca 9847 blx r3 8706 .LVL608: 8707 00cc BBE7 b .L555 8708 .LVL609: 8709 .L557: 4039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8710 .loc 1 4039 12 view .LVU3072 8711 00ce 0120 movs r0, #1 8712 .LVL610: 8713 .L552: 4041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8714 .loc 1 4041 1 view .LVU3073 8715 00d0 F8BD pop {r3, r4, r5, r6, r7, pc} 8716 .LVL611: 8717 .L558: 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8718 .loc 1 3974 5 discriminator 1 view .LVU3074 8719 00d2 0220 movs r0, #2 8720 00d4 FCE7 b .L552 8721 .L562: 8722 00d6 00BF .align 2 8723 .L561: 8724 00d8 00000000 .word I2C_Slave_ISR_IT 8725 00dc 00000000 .word I2C_DMAAbort 8726 .cfi_endproc 8727 .LFE356: 8729 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits ARM GAS /tmp/ccclMPzv.s page 336 8730 .align 1 8731 .global HAL_I2C_Slave_Seq_Transmit_DMA 8732 .syntax unified 8733 .thumb 8734 .thumb_func 8736 HAL_I2C_Slave_Seq_Transmit_DMA: 8737 .LVL612: 8738 .LFB357: 4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8739 .loc 1 4055 1 is_stmt 1 view -0 8740 .cfi_startproc 8741 @ args = 0, pretend = 0, frame = 0 8742 @ 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 */ 8743 .loc 1 4055 1 is_stmt 0 view .LVU3076 8744 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8745 .LCFI103: 8746 .cfi_def_cfa_offset 24 8747 .cfi_offset 3, -24 8748 .cfi_offset 4, -20 8749 .cfi_offset 5, -16 8750 .cfi_offset 6, -12 8751 .cfi_offset 7, -8 8752 .cfi_offset 14, -4 8753 0002 0446 mov r4, r0 4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8754 .loc 1 4057 3 is_stmt 1 view .LVU3077 4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8755 .loc 1 4058 3 view .LVU3078 4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8756 .loc 1 4061 3 view .LVU3079 4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8757 .loc 1 4063 3 view .LVU3080 4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8758 .loc 1 4063 22 is_stmt 0 view .LVU3081 8759 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8760 .LVL613: 4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8761 .loc 1 4063 6 view .LVU3082 8762 0008 00F02800 and r0, r0, #40 8763 000c 2828 cmp r0, #40 8764 000e 40F0C080 bne .L574 8765 0012 0F46 mov r7, r1 8766 0014 1646 mov r6, r2 8767 0016 1D46 mov r5, r3 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8768 .loc 1 4065 5 is_stmt 1 view .LVU3083 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8769 .loc 1 4065 8 is_stmt 0 view .LVU3084 8770 0018 0029 cmp r1, #0 8771 001a 51D0 beq .L565 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8772 .loc 1 4065 25 discriminator 1 view .LVU3085 8773 001c 002A cmp r2, #0 8774 001e 4FD0 beq .L565 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8775 .loc 1 4072 5 is_stmt 1 view .LVU3086 ARM GAS /tmp/ccclMPzv.s page 337 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8776 .loc 1 4072 5 view .LVU3087 8777 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8778 .LVL614: 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8779 .loc 1 4072 5 is_stmt 0 view .LVU3088 8780 0024 012B cmp r3, #1 8781 0026 00F0B780 beq .L575 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8782 .loc 1 4072 5 is_stmt 1 discriminator 2 view .LVU3089 8783 002a 0123 movs r3, #1 8784 002c 84F84030 strb r3, [r4, #64] 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8785 .loc 1 4072 5 discriminator 2 view .LVU3090 4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8786 .loc 1 4075 5 view .LVU3091 8787 0030 48F20101 movw r1, #32769 8788 .LVL615: 4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8789 .loc 1 4075 5 is_stmt 0 view .LVU3092 8790 0034 2046 mov r0, r4 8791 0036 FFF7FEFF bl I2C_Disable_IRQ 8792 .LVL616: 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8793 .loc 1 4079 5 is_stmt 1 view .LVU3093 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8794 .loc 1 4079 13 is_stmt 0 view .LVU3094 8795 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8796 003e DBB2 uxtb r3, r3 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8797 .loc 1 4079 8 view .LVU3095 8798 0040 2A2B cmp r3, #42 8799 0042 42D0 beq .L578 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8800 .loc 1 4104 10 is_stmt 1 view .LVU3096 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8801 .loc 1 4104 18 is_stmt 0 view .LVU3097 8802 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8803 0048 DBB2 uxtb r3, r3 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8804 .loc 1 4104 13 view .LVU3098 8805 004a 292B cmp r3, #41 8806 004c 59D0 beq .L579 8807 .L568: 4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8808 .loc 1 4129 5 is_stmt 1 view .LVU3099 4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8809 .loc 1 4131 5 view .LVU3100 4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8810 .loc 1 4131 21 is_stmt 0 view .LVU3101 8811 004e 2923 movs r3, #41 8812 0050 84F84130 strb r3, [r4, #65] 4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8813 .loc 1 4132 5 is_stmt 1 view .LVU3102 4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8814 .loc 1 4132 21 is_stmt 0 view .LVU3103 8815 0054 2023 movs r3, #32 ARM GAS /tmp/ccclMPzv.s page 338 8816 0056 84F84230 strb r3, [r4, #66] 4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8817 .loc 1 4133 5 is_stmt 1 view .LVU3104 4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8818 .loc 1 4133 21 is_stmt 0 view .LVU3105 8819 005a 0023 movs r3, #0 8820 005c 6364 str r3, [r4, #68] 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8821 .loc 1 4136 5 is_stmt 1 view .LVU3106 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8822 .loc 1 4136 9 is_stmt 0 view .LVU3107 8823 005e 2268 ldr r2, [r4] 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8824 .loc 1 4136 19 view .LVU3108 8825 0060 5368 ldr r3, [r2, #4] 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8826 .loc 1 4136 25 view .LVU3109 8827 0062 23F40043 bic r3, r3, #32768 8828 0066 5360 str r3, [r2, #4] 4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8829 .loc 1 4139 5 is_stmt 1 view .LVU3110 4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 8830 .loc 1 4139 23 is_stmt 0 view .LVU3111 8831 0068 6762 str r7, [r4, #36] 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8832 .loc 1 4140 5 is_stmt 1 view .LVU3112 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8833 .loc 1 4140 23 is_stmt 0 view .LVU3113 8834 006a 6685 strh r6, [r4, #42] @ movhi 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8835 .loc 1 4141 5 is_stmt 1 view .LVU3114 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8836 .loc 1 4141 29 is_stmt 0 view .LVU3115 8837 006c 638D ldrh r3, [r4, #42] 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8838 .loc 1 4141 23 view .LVU3116 8839 006e 2385 strh r3, [r4, #40] @ movhi 4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8840 .loc 1 4142 5 is_stmt 1 view .LVU3117 4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8841 .loc 1 4142 23 is_stmt 0 view .LVU3118 8842 0070 E562 str r5, [r4, #44] 4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8843 .loc 1 4143 5 is_stmt 1 view .LVU3119 4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8844 .loc 1 4143 23 is_stmt 0 view .LVU3120 8845 0072 4A4B ldr r3, .L580 8846 0074 6363 str r3, [r4, #52] 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8847 .loc 1 4145 5 is_stmt 1 view .LVU3121 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8848 .loc 1 4145 13 is_stmt 0 view .LVU3122 8849 0076 A36B ldr r3, [r4, #56] 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8850 .loc 1 4145 8 view .LVU3123 8851 0078 002B cmp r3, #0 8852 007a 59D0 beq .L569 ARM GAS /tmp/ccclMPzv.s page 339 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8853 .loc 1 4148 7 is_stmt 1 view .LVU3124 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8854 .loc 1 4148 38 is_stmt 0 view .LVU3125 8855 007c 484A ldr r2, .L580+4 8856 007e DA62 str r2, [r3, #44] 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8857 .loc 1 4151 7 is_stmt 1 view .LVU3126 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8858 .loc 1 4151 11 is_stmt 0 view .LVU3127 8859 0080 A36B ldr r3, [r4, #56] 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8860 .loc 1 4151 39 view .LVU3128 8861 0082 484A ldr r2, .L580+8 8862 0084 5A63 str r2, [r3, #52] 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8863 .loc 1 4154 7 is_stmt 1 view .LVU3129 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8864 .loc 1 4154 11 is_stmt 0 view .LVU3130 8865 0086 A26B ldr r2, [r4, #56] 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8866 .loc 1 4154 42 view .LVU3131 8867 0088 0023 movs r3, #0 8868 008a 1363 str r3, [r2, #48] 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8869 .loc 1 4155 7 is_stmt 1 view .LVU3132 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8870 .loc 1 4155 11 is_stmt 0 view .LVU3133 8871 008c A26B ldr r2, [r4, #56] 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8872 .loc 1 4155 39 view .LVU3134 8873 008e 9363 str r3, [r2, #56] 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8874 .loc 1 4158 7 is_stmt 1 view .LVU3135 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8875 .loc 1 4158 86 is_stmt 0 view .LVU3136 8876 0090 2268 ldr r2, [r4] 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize); 8877 .loc 1 4158 23 view .LVU3137 8878 0092 238D ldrh r3, [r4, #40] 8879 0094 2832 adds r2, r2, #40 8880 0096 3946 mov r1, r7 8881 0098 A06B ldr r0, [r4, #56] 8882 009a FFF7FEFF bl HAL_DMA_Start_IT 8883 .LVL617: 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8884 .loc 1 4176 5 is_stmt 1 view .LVU3138 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8885 .loc 1 4176 8 is_stmt 0 view .LVU3139 8886 009e 0546 mov r5, r0 8887 .LVL618: 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8888 .loc 1 4176 8 view .LVU3140 8889 00a0 0028 cmp r0, #0 8890 00a2 53D0 beq .L570 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8891 .loc 1 4187 7 is_stmt 1 view .LVU3141 ARM GAS /tmp/ccclMPzv.s page 340 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8892 .loc 1 4187 23 is_stmt 0 view .LVU3142 8893 00a4 2823 movs r3, #40 8894 00a6 84F84130 strb r3, [r4, #65] 4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8895 .loc 1 4188 7 is_stmt 1 view .LVU3143 4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8896 .loc 1 4188 23 is_stmt 0 view .LVU3144 8897 00aa 0022 movs r2, #0 8898 00ac 84F84220 strb r2, [r4, #66] 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8899 .loc 1 4191 7 is_stmt 1 view .LVU3145 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8900 .loc 1 4191 11 is_stmt 0 view .LVU3146 8901 00b0 636C ldr r3, [r4, #68] 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8902 .loc 1 4191 23 view .LVU3147 8903 00b2 43F01003 orr r3, r3, #16 8904 00b6 6364 str r3, [r4, #68] 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8905 .loc 1 4194 7 is_stmt 1 view .LVU3148 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8906 .loc 1 4194 7 view .LVU3149 8907 00b8 84F84020 strb r2, [r4, #64] 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8908 .loc 1 4194 7 view .LVU3150 4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8909 .loc 1 4196 7 view .LVU3151 4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8910 .loc 1 4196 14 is_stmt 0 view .LVU3152 8911 00bc 0125 movs r5, #1 8912 00be 69E0 b .L564 8913 .LVL619: 8914 .L565: 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8915 .loc 1 4067 7 is_stmt 1 view .LVU3153 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8916 .loc 1 4067 23 is_stmt 0 view .LVU3154 8917 00c0 4FF40073 mov r3, #512 8918 .LVL620: 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 8919 .loc 1 4067 23 view .LVU3155 8920 00c4 6364 str r3, [r4, #68] 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8921 .loc 1 4068 7 is_stmt 1 view .LVU3156 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8922 .loc 1 4068 15 is_stmt 0 view .LVU3157 8923 00c6 0125 movs r5, #1 8924 .LVL621: 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8925 .loc 1 4068 15 view .LVU3158 8926 00c8 64E0 b .L564 8927 .LVL622: 8928 .L578: 4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8929 .loc 1 4082 7 is_stmt 1 view .LVU3159 8930 00ca 0221 movs r1, #2 ARM GAS /tmp/ccclMPzv.s page 341 8931 00cc 2046 mov r0, r4 8932 00ce FFF7FEFF bl I2C_Disable_IRQ 8933 .LVL623: 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8934 .loc 1 4084 7 view .LVU3160 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8935 .loc 1 4084 16 is_stmt 0 view .LVU3161 8936 00d2 2368 ldr r3, [r4] 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8937 .loc 1 4084 26 view .LVU3162 8938 00d4 1A68 ldr r2, [r3] 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8939 .loc 1 4084 10 view .LVU3163 8940 00d6 12F4004F tst r2, #32768 8941 00da B8D0 beq .L568 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8942 .loc 1 4087 9 is_stmt 1 view .LVU3164 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8943 .loc 1 4087 17 is_stmt 0 view .LVU3165 8944 00dc E26B ldr r2, [r4, #60] 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8945 .loc 1 4087 12 view .LVU3166 8946 00de 002A cmp r2, #0 8947 00e0 B5D0 beq .L568 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8948 .loc 1 4089 11 is_stmt 1 view .LVU3167 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8949 .loc 1 4089 25 is_stmt 0 view .LVU3168 8950 00e2 1A68 ldr r2, [r3] 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8951 .loc 1 4089 31 view .LVU3169 8952 00e4 22F40042 bic r2, r2, #32768 8953 00e8 1A60 str r2, [r3] 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8954 .loc 1 4093 11 is_stmt 1 view .LVU3170 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8955 .loc 1 4093 15 is_stmt 0 view .LVU3171 8956 00ea E36B ldr r3, [r4, #60] 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8957 .loc 1 4093 43 view .LVU3172 8958 00ec 2E4A ldr r2, .L580+12 8959 00ee 9A63 str r2, [r3, #56] 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8960 .loc 1 4096 11 is_stmt 1 view .LVU3173 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8961 .loc 1 4096 15 is_stmt 0 view .LVU3174 8962 00f0 E06B ldr r0, [r4, #60] 8963 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 8964 .LVL624: 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8965 .loc 1 4096 14 discriminator 1 view .LVU3175 8966 00f6 0028 cmp r0, #0 8967 00f8 A9D0 beq .L568 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8968 .loc 1 4099 13 is_stmt 1 view .LVU3176 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8969 .loc 1 4099 17 is_stmt 0 view .LVU3177 ARM GAS /tmp/ccclMPzv.s page 342 8970 00fa E06B ldr r0, [r4, #60] 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8971 .loc 1 4099 25 view .LVU3178 8972 00fc 836B ldr r3, [r0, #56] 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 8973 .loc 1 4099 13 view .LVU3179 8974 00fe 9847 blx r3 8975 .LVL625: 8976 0100 A5E7 b .L568 8977 .L579: 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8978 .loc 1 4106 7 is_stmt 1 view .LVU3180 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8979 .loc 1 4106 16 is_stmt 0 view .LVU3181 8980 0102 2368 ldr r3, [r4] 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8981 .loc 1 4106 26 view .LVU3182 8982 0104 1A68 ldr r2, [r3] 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8983 .loc 1 4106 10 view .LVU3183 8984 0106 12F4804F tst r2, #16384 8985 010a A0D0 beq .L568 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8986 .loc 1 4108 9 is_stmt 1 view .LVU3184 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8987 .loc 1 4108 23 is_stmt 0 view .LVU3185 8988 010c 1A68 ldr r2, [r3] 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8989 .loc 1 4108 29 view .LVU3186 8990 010e 22F48042 bic r2, r2, #16384 8991 0112 1A60 str r2, [r3] 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8992 .loc 1 4111 9 is_stmt 1 view .LVU3187 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8993 .loc 1 4111 17 is_stmt 0 view .LVU3188 8994 0114 A36B ldr r3, [r4, #56] 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 8995 .loc 1 4111 12 view .LVU3189 8996 0116 002B cmp r3, #0 8997 0118 99D0 beq .L568 4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8998 .loc 1 4115 11 is_stmt 1 view .LVU3190 4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 8999 .loc 1 4115 43 is_stmt 0 view .LVU3191 9000 011a 234A ldr r2, .L580+12 9001 011c 9A63 str r2, [r3, #56] 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9002 .loc 1 4118 11 is_stmt 1 view .LVU3192 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9003 .loc 1 4118 15 is_stmt 0 view .LVU3193 9004 011e A06B ldr r0, [r4, #56] 9005 0120 FFF7FEFF bl HAL_DMA_Abort_IT 9006 .LVL626: 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9007 .loc 1 4118 14 discriminator 1 view .LVU3194 9008 0124 0028 cmp r0, #0 9009 0126 92D0 beq .L568 ARM GAS /tmp/ccclMPzv.s page 343 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9010 .loc 1 4121 13 is_stmt 1 view .LVU3195 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9011 .loc 1 4121 17 is_stmt 0 view .LVU3196 9012 0128 A06B ldr r0, [r4, #56] 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9013 .loc 1 4121 25 view .LVU3197 9014 012a 836B ldr r3, [r0, #56] 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9015 .loc 1 4121 13 view .LVU3198 9016 012c 9847 blx r3 9017 .LVL627: 9018 012e 8EE7 b .L568 9019 .L569: 4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9020 .loc 1 4164 7 is_stmt 1 view .LVU3199 4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9021 .loc 1 4164 23 is_stmt 0 view .LVU3200 9022 0130 2823 movs r3, #40 9023 0132 84F84130 strb r3, [r4, #65] 4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9024 .loc 1 4165 7 is_stmt 1 view .LVU3201 4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9025 .loc 1 4165 23 is_stmt 0 view .LVU3202 9026 0136 0022 movs r2, #0 9027 0138 84F84220 strb r2, [r4, #66] 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9028 .loc 1 4168 7 is_stmt 1 view .LVU3203 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9029 .loc 1 4168 11 is_stmt 0 view .LVU3204 9030 013c 636C ldr r3, [r4, #68] 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9031 .loc 1 4168 23 view .LVU3205 9032 013e 43F08003 orr r3, r3, #128 9033 0142 6364 str r3, [r4, #68] 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9034 .loc 1 4171 7 is_stmt 1 view .LVU3206 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9035 .loc 1 4171 7 view .LVU3207 9036 0144 84F84020 strb r2, [r4, #64] 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9037 .loc 1 4171 7 view .LVU3208 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9038 .loc 1 4173 7 view .LVU3209 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9039 .loc 1 4173 14 is_stmt 0 view .LVU3210 9040 0148 0125 movs r5, #1 9041 .LVL628: 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9042 .loc 1 4173 14 view .LVU3211 9043 014a 23E0 b .L564 9044 .LVL629: 9045 .L570: 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9046 .loc 1 4179 7 is_stmt 1 view .LVU3212 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9047 .loc 1 4179 11 is_stmt 0 view .LVU3213 ARM GAS /tmp/ccclMPzv.s page 344 9048 014c 638D ldrh r3, [r4, #42] 9049 014e 9BB2 uxth r3, r3 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9050 .loc 1 4179 30 view .LVU3214 9051 0150 228D ldrh r2, [r4, #40] 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9052 .loc 1 4179 23 view .LVU3215 9053 0152 9B1A subs r3, r3, r2 9054 0154 9BB2 uxth r3, r3 9055 0156 6385 strh r3, [r4, #42] @ movhi 4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9056 .loc 1 4182 7 is_stmt 1 view .LVU3216 4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9057 .loc 1 4182 22 is_stmt 0 view .LVU3217 9058 0158 0023 movs r3, #0 9059 015a 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)) 9060 .loc 1 4199 5 is_stmt 1 view .LVU3218 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9061 .loc 1 4199 11 is_stmt 0 view .LVU3219 9062 015c 2268 ldr r2, [r4] 9063 015e 9369 ldr r3, [r2, #24] 9064 0160 03F00803 and r3, r3, #8 9065 .LVL630: 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9066 .loc 1 4200 5 is_stmt 1 view .LVU3220 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9067 .loc 1 4200 10 is_stmt 0 view .LVU3221 9068 0164 9169 ldr r1, [r2, #24] 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9069 .loc 1 4200 8 view .LVU3222 9070 0166 11F4803F tst r1, #65536 9071 016a 0DD1 bne .L572 9072 .LVL631: 9073 .L573: 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9074 .loc 1 4208 5 is_stmt 1 view .LVU3223 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9075 .loc 1 4208 5 view .LVU3224 9076 016c 0023 movs r3, #0 9077 016e 84F84030 strb r3, [r4, #64] 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9078 .loc 1 4208 5 view .LVU3225 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9079 .loc 1 4211 5 view .LVU3226 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9080 .loc 1 4211 9 is_stmt 0 view .LVU3227 9081 0172 2268 ldr r2, [r4] 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9082 .loc 1 4211 19 view .LVU3228 9083 0174 1368 ldr r3, [r2] 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9084 .loc 1 4211 25 view .LVU3229 9085 0176 43F48043 orr r3, r3, #16384 9086 017a 1360 str r3, [r2] 4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9087 .loc 1 4217 5 is_stmt 1 view .LVU3230 ARM GAS /tmp/ccclMPzv.s page 345 9088 017c 4FF40041 mov r1, #32768 9089 0180 2046 mov r0, r4 9090 .LVL632: 4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9091 .loc 1 4217 5 is_stmt 0 view .LVU3231 9092 0182 FFF7FEFF bl I2C_Enable_IRQ 9093 .LVL633: 4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9094 .loc 1 4219 5 is_stmt 1 view .LVU3232 4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9095 .loc 1 4219 12 is_stmt 0 view .LVU3233 9096 0186 05E0 b .L564 9097 .LVL634: 9098 .L572: 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9099 .loc 1 4200 54 discriminator 1 view .LVU3234 9100 0188 002B cmp r3, #0 9101 018a EFD0 beq .L573 4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9102 .loc 1 4204 7 is_stmt 1 view .LVU3235 9103 018c 0823 movs r3, #8 9104 .LVL635: 4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9105 .loc 1 4204 7 is_stmt 0 view .LVU3236 9106 018e D361 str r3, [r2, #28] 9107 0190 ECE7 b .L573 9108 .LVL636: 9109 .L574: 4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9110 .loc 1 4223 12 view .LVU3237 9111 0192 0125 movs r5, #1 9112 .LVL637: 9113 .L564: 4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9114 .loc 1 4225 1 view .LVU3238 9115 0194 2846 mov r0, r5 9116 0196 F8BD pop {r3, r4, r5, r6, r7, pc} 9117 .LVL638: 9118 .L575: 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9119 .loc 1 4072 5 discriminator 1 view .LVU3239 9120 0198 0225 movs r5, #2 9121 .LVL639: 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9122 .loc 1 4072 5 discriminator 1 view .LVU3240 9123 019a FBE7 b .L564 9124 .L581: 9125 .align 2 9126 .L580: 9127 019c 00000000 .word I2C_Slave_ISR_DMA 9128 01a0 00000000 .word I2C_DMASlaveTransmitCplt 9129 01a4 00000000 .word I2C_DMAError 9130 01a8 00000000 .word I2C_DMAAbort 9131 .cfi_endproc 9132 .LFE357: 9134 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 9135 .align 1 ARM GAS /tmp/ccclMPzv.s page 346 9136 .global HAL_I2C_Slave_Seq_Receive_IT 9137 .syntax unified 9138 .thumb 9139 .thumb_func 9141 HAL_I2C_Slave_Seq_Receive_IT: 9142 .LVL640: 9143 .LFB358: 4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9144 .loc 1 4239 1 is_stmt 1 view -0 9145 .cfi_startproc 9146 @ args = 0, pretend = 0, frame = 0 9147 @ 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 */ 9148 .loc 1 4239 1 is_stmt 0 view .LVU3242 9149 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9150 .LCFI104: 9151 .cfi_def_cfa_offset 24 9152 .cfi_offset 3, -24 9153 .cfi_offset 4, -20 9154 .cfi_offset 5, -16 9155 .cfi_offset 6, -12 9156 .cfi_offset 7, -8 9157 .cfi_offset 14, -4 9158 0002 0446 mov r4, r0 4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9159 .loc 1 4241 3 is_stmt 1 view .LVU3243 4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9160 .loc 1 4244 3 view .LVU3244 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9161 .loc 1 4246 3 view .LVU3245 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9162 .loc 1 4246 22 is_stmt 0 view .LVU3246 9163 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9164 .LVL641: 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9165 .loc 1 4246 6 view .LVU3247 9166 0008 00F02800 and r0, r0, #40 9167 000c 2828 cmp r0, #40 9168 000e 5ED1 bne .L588 9169 0010 0F46 mov r7, r1 9170 0012 1646 mov r6, r2 9171 0014 1D46 mov r5, r3 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9172 .loc 1 4248 5 is_stmt 1 view .LVU3248 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9173 .loc 1 4248 8 is_stmt 0 view .LVU3249 9174 0016 01B1 cbz r1, .L584 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9175 .loc 1 4248 25 discriminator 1 view .LVU3250 9176 0018 22B9 cbnz r2, .L585 9177 .L584: 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9178 .loc 1 4250 7 is_stmt 1 view .LVU3251 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9179 .loc 1 4250 23 is_stmt 0 view .LVU3252 9180 001a 4FF40073 mov r3, #512 9181 .LVL642: ARM GAS /tmp/ccclMPzv.s page 347 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9182 .loc 1 4250 23 view .LVU3253 9183 001e 6364 str r3, [r4, #68] 4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9184 .loc 1 4251 7 is_stmt 1 view .LVU3254 4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9185 .loc 1 4251 15 is_stmt 0 view .LVU3255 9186 0020 0120 movs r0, #1 9187 0022 55E0 b .L583 9188 .LVL643: 9189 .L585: 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9190 .loc 1 4255 5 is_stmt 1 view .LVU3256 9191 0024 48F20201 movw r1, #32770 9192 .LVL644: 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9193 .loc 1 4255 5 is_stmt 0 view .LVU3257 9194 0028 2046 mov r0, r4 9195 002a FFF7FEFF bl I2C_Disable_IRQ 9196 .LVL645: 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9197 .loc 1 4258 5 is_stmt 1 view .LVU3258 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9198 .loc 1 4258 5 view .LVU3259 9199 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9200 0032 012B cmp r3, #1 9201 0034 4DD0 beq .L589 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9202 .loc 1 4258 5 discriminator 2 view .LVU3260 9203 0036 0123 movs r3, #1 9204 0038 84F84030 strb r3, [r4, #64] 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9205 .loc 1 4258 5 discriminator 2 view .LVU3261 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9206 .loc 1 4262 5 view .LVU3262 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9207 .loc 1 4262 13 is_stmt 0 view .LVU3263 9208 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9209 0040 DBB2 uxtb r3, r3 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9210 .loc 1 4262 8 view .LVU3264 9211 0042 292B cmp r3, #41 9212 0044 28D0 beq .L591 9213 .L586: 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9214 .loc 1 4288 5 is_stmt 1 view .LVU3265 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9215 .loc 1 4288 21 is_stmt 0 view .LVU3266 9216 0046 2A23 movs r3, #42 9217 0048 84F84130 strb r3, [r4, #65] 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9218 .loc 1 4289 5 is_stmt 1 view .LVU3267 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9219 .loc 1 4289 21 is_stmt 0 view .LVU3268 9220 004c 2023 movs r3, #32 9221 004e 84F84230 strb r3, [r4, #66] 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 348 9222 .loc 1 4290 5 is_stmt 1 view .LVU3269 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9223 .loc 1 4290 21 is_stmt 0 view .LVU3270 9224 0052 0023 movs r3, #0 9225 0054 6364 str r3, [r4, #68] 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9226 .loc 1 4293 5 is_stmt 1 view .LVU3271 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9227 .loc 1 4293 9 is_stmt 0 view .LVU3272 9228 0056 2268 ldr r2, [r4] 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9229 .loc 1 4293 19 view .LVU3273 9230 0058 5368 ldr r3, [r2, #4] 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9231 .loc 1 4293 25 view .LVU3274 9232 005a 23F40043 bic r3, r3, #32768 9233 005e 5360 str r3, [r2, #4] 4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9234 .loc 1 4296 5 is_stmt 1 view .LVU3275 4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9235 .loc 1 4296 23 is_stmt 0 view .LVU3276 9236 0060 6762 str r7, [r4, #36] 4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9237 .loc 1 4297 5 is_stmt 1 view .LVU3277 4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9238 .loc 1 4297 23 is_stmt 0 view .LVU3278 9239 0062 6685 strh r6, [r4, #42] @ movhi 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9240 .loc 1 4298 5 is_stmt 1 view .LVU3279 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9241 .loc 1 4298 29 is_stmt 0 view .LVU3280 9242 0064 638D ldrh r3, [r4, #42] 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9243 .loc 1 4298 23 view .LVU3281 9244 0066 2385 strh r3, [r4, #40] @ movhi 4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9245 .loc 1 4299 5 is_stmt 1 view .LVU3282 4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9246 .loc 1 4299 23 is_stmt 0 view .LVU3283 9247 0068 E562 str r5, [r4, #44] 4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9248 .loc 1 4300 5 is_stmt 1 view .LVU3284 4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9249 .loc 1 4300 23 is_stmt 0 view .LVU3285 9250 006a 1B4B ldr r3, .L592 9251 006c 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)) 9252 .loc 1 4302 5 is_stmt 1 view .LVU3286 4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9253 .loc 1 4302 11 is_stmt 0 view .LVU3287 9254 006e 2268 ldr r2, [r4] 9255 0070 9369 ldr r3, [r2, #24] 9256 0072 03F00803 and r3, r3, #8 9257 .LVL646: 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9258 .loc 1 4303 5 is_stmt 1 view .LVU3288 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 349 9259 .loc 1 4303 10 is_stmt 0 view .LVU3289 9260 0076 9169 ldr r1, [r2, #24] 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9261 .loc 1 4303 8 view .LVU3290 9262 0078 11F4803F tst r1, #65536 9263 007c 02D1 bne .L587 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9264 .loc 1 4303 55 discriminator 1 view .LVU3291 9265 007e 0BB1 cbz r3, .L587 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9266 .loc 1 4307 7 is_stmt 1 view .LVU3292 9267 0080 0823 movs r3, #8 9268 .LVL647: 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9269 .loc 1 4307 7 is_stmt 0 view .LVU3293 9270 0082 D361 str r3, [r2, #28] 9271 .L587: 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9272 .loc 1 4311 5 is_stmt 1 view .LVU3294 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9273 .loc 1 4311 5 view .LVU3295 9274 0084 0025 movs r5, #0 9275 .LVL648: 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9276 .loc 1 4311 5 is_stmt 0 view .LVU3296 9277 0086 84F84050 strb r5, [r4, #64] 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9278 .loc 1 4311 5 is_stmt 1 view .LVU3297 4317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9279 .loc 1 4317 5 view .LVU3298 9280 008a 48F20201 movw r1, #32770 9281 008e 2046 mov r0, r4 9282 0090 FFF7FEFF bl I2C_Enable_IRQ 9283 .LVL649: 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9284 .loc 1 4319 5 view .LVU3299 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9285 .loc 1 4319 12 is_stmt 0 view .LVU3300 9286 0094 2846 mov r0, r5 9287 0096 1BE0 b .L583 9288 .LVL650: 9289 .L591: 4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9290 .loc 1 4265 7 is_stmt 1 view .LVU3301 9291 0098 0121 movs r1, #1 9292 009a 2046 mov r0, r4 9293 009c FFF7FEFF bl I2C_Disable_IRQ 9294 .LVL651: 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9295 .loc 1 4267 7 view .LVU3302 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9296 .loc 1 4267 16 is_stmt 0 view .LVU3303 9297 00a0 2368 ldr r3, [r4] 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9298 .loc 1 4267 26 view .LVU3304 9299 00a2 1A68 ldr r2, [r3] 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 350 9300 .loc 1 4267 10 view .LVU3305 9301 00a4 12F4804F tst r2, #16384 9302 00a8 CDD0 beq .L586 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9303 .loc 1 4269 9 is_stmt 1 view .LVU3306 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9304 .loc 1 4269 23 is_stmt 0 view .LVU3307 9305 00aa 1A68 ldr r2, [r3] 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9306 .loc 1 4269 29 view .LVU3308 9307 00ac 22F48042 bic r2, r2, #16384 9308 00b0 1A60 str r2, [r3] 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9309 .loc 1 4272 9 is_stmt 1 view .LVU3309 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9310 .loc 1 4272 17 is_stmt 0 view .LVU3310 9311 00b2 A36B ldr r3, [r4, #56] 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9312 .loc 1 4272 12 view .LVU3311 9313 00b4 002B cmp r3, #0 9314 00b6 C6D0 beq .L586 4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9315 .loc 1 4276 11 is_stmt 1 view .LVU3312 4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9316 .loc 1 4276 43 is_stmt 0 view .LVU3313 9317 00b8 084A ldr r2, .L592+4 9318 00ba 9A63 str r2, [r3, #56] 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9319 .loc 1 4279 11 is_stmt 1 view .LVU3314 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9320 .loc 1 4279 15 is_stmt 0 view .LVU3315 9321 00bc A06B ldr r0, [r4, #56] 9322 00be FFF7FEFF bl HAL_DMA_Abort_IT 9323 .LVL652: 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9324 .loc 1 4279 14 discriminator 1 view .LVU3316 9325 00c2 0028 cmp r0, #0 9326 00c4 BFD0 beq .L586 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9327 .loc 1 4282 13 is_stmt 1 view .LVU3317 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9328 .loc 1 4282 17 is_stmt 0 view .LVU3318 9329 00c6 A06B ldr r0, [r4, #56] 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9330 .loc 1 4282 25 view .LVU3319 9331 00c8 836B ldr r3, [r0, #56] 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9332 .loc 1 4282 13 view .LVU3320 9333 00ca 9847 blx r3 9334 .LVL653: 9335 00cc BBE7 b .L586 9336 .LVL654: 9337 .L588: 4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9338 .loc 1 4323 12 view .LVU3321 9339 00ce 0120 movs r0, #1 9340 .LVL655: ARM GAS /tmp/ccclMPzv.s page 351 9341 .L583: 4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9342 .loc 1 4325 1 view .LVU3322 9343 00d0 F8BD pop {r3, r4, r5, r6, r7, pc} 9344 .LVL656: 9345 .L589: 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9346 .loc 1 4258 5 discriminator 1 view .LVU3323 9347 00d2 0220 movs r0, #2 9348 00d4 FCE7 b .L583 9349 .L593: 9350 00d6 00BF .align 2 9351 .L592: 9352 00d8 00000000 .word I2C_Slave_ISR_IT 9353 00dc 00000000 .word I2C_DMAAbort 9354 .cfi_endproc 9355 .LFE358: 9357 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9358 .align 1 9359 .global HAL_I2C_Slave_Seq_Receive_DMA 9360 .syntax unified 9361 .thumb 9362 .thumb_func 9364 HAL_I2C_Slave_Seq_Receive_DMA: 9365 .LVL657: 9366 .LFB359: 4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9367 .loc 1 4339 1 is_stmt 1 view -0 9368 .cfi_startproc 9369 @ args = 0, pretend = 0, frame = 0 9370 @ 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 */ 9371 .loc 1 4339 1 is_stmt 0 view .LVU3325 9372 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9373 .LCFI105: 9374 .cfi_def_cfa_offset 24 9375 .cfi_offset 3, -24 9376 .cfi_offset 4, -20 9377 .cfi_offset 5, -16 9378 .cfi_offset 6, -12 9379 .cfi_offset 7, -8 9380 .cfi_offset 14, -4 9381 0002 0446 mov r4, r0 4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9382 .loc 1 4341 3 is_stmt 1 view .LVU3326 4342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9383 .loc 1 4342 3 view .LVU3327 4345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9384 .loc 1 4345 3 view .LVU3328 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9385 .loc 1 4347 3 view .LVU3329 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9386 .loc 1 4347 22 is_stmt 0 view .LVU3330 9387 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9388 .LVL658: 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9389 .loc 1 4347 6 view .LVU3331 ARM GAS /tmp/ccclMPzv.s page 352 9390 0008 00F02800 and r0, r0, #40 9391 000c 2828 cmp r0, #40 9392 000e 40F0BE80 bne .L605 9393 0012 0F46 mov r7, r1 9394 0014 1646 mov r6, r2 9395 0016 1D46 mov r5, r3 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9396 .loc 1 4349 5 is_stmt 1 view .LVU3332 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9397 .loc 1 4349 8 is_stmt 0 view .LVU3333 9398 0018 01B1 cbz r1, .L596 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9399 .loc 1 4349 25 discriminator 1 view .LVU3334 9400 001a 22B9 cbnz r2, .L597 9401 .L596: 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9402 .loc 1 4351 7 is_stmt 1 view .LVU3335 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9403 .loc 1 4351 23 is_stmt 0 view .LVU3336 9404 001c 4FF40073 mov r3, #512 9405 .LVL659: 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return HAL_ERROR; 9406 .loc 1 4351 23 view .LVU3337 9407 0020 6364 str r3, [r4, #68] 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9408 .loc 1 4352 7 is_stmt 1 view .LVU3338 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9409 .loc 1 4352 15 is_stmt 0 view .LVU3339 9410 0022 0125 movs r5, #1 9411 .LVL660: 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9412 .loc 1 4352 15 view .LVU3340 9413 0024 B4E0 b .L595 9414 .LVL661: 9415 .L597: 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9416 .loc 1 4356 5 is_stmt 1 view .LVU3341 9417 0026 48F20201 movw r1, #32770 9418 .LVL662: 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9419 .loc 1 4356 5 is_stmt 0 view .LVU3342 9420 002a 2046 mov r0, r4 9421 002c FFF7FEFF bl I2C_Disable_IRQ 9422 .LVL663: 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9423 .loc 1 4359 5 is_stmt 1 view .LVU3343 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9424 .loc 1 4359 5 view .LVU3344 9425 0030 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9426 0034 012B cmp r3, #1 9427 0036 00F0AD80 beq .L606 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9428 .loc 1 4359 5 discriminator 2 view .LVU3345 9429 003a 0123 movs r3, #1 9430 003c 84F84030 strb r3, [r4, #64] 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9431 .loc 1 4359 5 discriminator 2 view .LVU3346 ARM GAS /tmp/ccclMPzv.s page 353 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9432 .loc 1 4363 5 view .LVU3347 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9433 .loc 1 4363 13 is_stmt 0 view .LVU3348 9434 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9435 0044 DBB2 uxtb r3, r3 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9436 .loc 1 4363 8 view .LVU3349 9437 0046 292B cmp r3, #41 9438 0048 3DD0 beq .L609 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9439 .loc 1 4388 10 is_stmt 1 view .LVU3350 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9440 .loc 1 4388 18 is_stmt 0 view .LVU3351 9441 004a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9442 004e DBB2 uxtb r3, r3 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9443 .loc 1 4388 13 view .LVU3352 9444 0050 2A2B cmp r3, #42 9445 0052 54D0 beq .L610 9446 .L599: 4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9447 .loc 1 4413 5 is_stmt 1 view .LVU3353 4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9448 .loc 1 4415 5 view .LVU3354 4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9449 .loc 1 4415 21 is_stmt 0 view .LVU3355 9450 0054 2A23 movs r3, #42 9451 0056 84F84130 strb r3, [r4, #65] 4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9452 .loc 1 4416 5 is_stmt 1 view .LVU3356 4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9453 .loc 1 4416 21 is_stmt 0 view .LVU3357 9454 005a 2023 movs r3, #32 9455 005c 84F84230 strb r3, [r4, #66] 4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9456 .loc 1 4417 5 is_stmt 1 view .LVU3358 4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9457 .loc 1 4417 21 is_stmt 0 view .LVU3359 9458 0060 0023 movs r3, #0 9459 0062 6364 str r3, [r4, #68] 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9460 .loc 1 4420 5 is_stmt 1 view .LVU3360 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9461 .loc 1 4420 9 is_stmt 0 view .LVU3361 9462 0064 2268 ldr r2, [r4] 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9463 .loc 1 4420 19 view .LVU3362 9464 0066 5368 ldr r3, [r2, #4] 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9465 .loc 1 4420 25 view .LVU3363 9466 0068 23F40043 bic r3, r3, #32768 9467 006c 5360 str r3, [r2, #4] 4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9468 .loc 1 4423 5 is_stmt 1 view .LVU3364 4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = Size; 9469 .loc 1 4423 23 is_stmt 0 view .LVU3365 ARM GAS /tmp/ccclMPzv.s page 354 9470 006e 6762 str r7, [r4, #36] 4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9471 .loc 1 4424 5 is_stmt 1 view .LVU3366 4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9472 .loc 1 4424 23 is_stmt 0 view .LVU3367 9473 0070 6685 strh r6, [r4, #42] @ movhi 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9474 .loc 1 4425 5 is_stmt 1 view .LVU3368 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9475 .loc 1 4425 29 is_stmt 0 view .LVU3369 9476 0072 638D ldrh r3, [r4, #42] 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9477 .loc 1 4425 23 view .LVU3370 9478 0074 2385 strh r3, [r4, #40] @ movhi 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9479 .loc 1 4426 5 is_stmt 1 view .LVU3371 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9480 .loc 1 4426 23 is_stmt 0 view .LVU3372 9481 0076 E562 str r5, [r4, #44] 4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9482 .loc 1 4427 5 is_stmt 1 view .LVU3373 4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9483 .loc 1 4427 23 is_stmt 0 view .LVU3374 9484 0078 474B ldr r3, .L611 9485 007a 6363 str r3, [r4, #52] 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9486 .loc 1 4429 5 is_stmt 1 view .LVU3375 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9487 .loc 1 4429 13 is_stmt 0 view .LVU3376 9488 007c E36B ldr r3, [r4, #60] 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9489 .loc 1 4429 8 view .LVU3377 9490 007e 002B cmp r3, #0 9491 0080 54D0 beq .L600 4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9492 .loc 1 4432 7 is_stmt 1 view .LVU3378 4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9493 .loc 1 4432 38 is_stmt 0 view .LVU3379 9494 0082 464A ldr r2, .L611+4 9495 0084 DA62 str r2, [r3, #44] 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9496 .loc 1 4435 7 is_stmt 1 view .LVU3380 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9497 .loc 1 4435 11 is_stmt 0 view .LVU3381 9498 0086 E36B ldr r3, [r4, #60] 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9499 .loc 1 4435 39 view .LVU3382 9500 0088 454A ldr r2, .L611+8 9501 008a 5A63 str r2, [r3, #52] 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9502 .loc 1 4438 7 is_stmt 1 view .LVU3383 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9503 .loc 1 4438 11 is_stmt 0 view .LVU3384 9504 008c E26B ldr r2, [r4, #60] 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9505 .loc 1 4438 42 view .LVU3385 9506 008e 0023 movs r3, #0 ARM GAS /tmp/ccclMPzv.s page 355 9507 0090 1363 str r3, [r2, #48] 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9508 .loc 1 4439 7 is_stmt 1 view .LVU3386 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9509 .loc 1 4439 11 is_stmt 0 view .LVU3387 9510 0092 E26B ldr r2, [r4, #60] 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9511 .loc 1 4439 39 view .LVU3388 9512 0094 9363 str r3, [r2, #56] 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9513 .loc 1 4442 7 is_stmt 1 view .LVU3389 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9514 .loc 1 4442 69 is_stmt 0 view .LVU3390 9515 0096 2168 ldr r1, [r4] 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9516 .loc 1 4442 23 view .LVU3391 9517 0098 238D ldrh r3, [r4, #40] 9518 009a 3A46 mov r2, r7 9519 009c 2431 adds r1, r1, #36 9520 009e E06B ldr r0, [r4, #60] 9521 00a0 FFF7FEFF bl HAL_DMA_Start_IT 9522 .LVL664: 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9523 .loc 1 4460 5 is_stmt 1 view .LVU3392 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9524 .loc 1 4460 8 is_stmt 0 view .LVU3393 9525 00a4 0546 mov r5, r0 9526 .LVL665: 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9527 .loc 1 4460 8 view .LVU3394 9528 00a6 0028 cmp r0, #0 9529 00a8 4ED0 beq .L601 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9530 .loc 1 4471 7 is_stmt 1 view .LVU3395 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9531 .loc 1 4471 23 is_stmt 0 view .LVU3396 9532 00aa 2823 movs r3, #40 9533 00ac 84F84130 strb r3, [r4, #65] 4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9534 .loc 1 4472 7 is_stmt 1 view .LVU3397 4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9535 .loc 1 4472 23 is_stmt 0 view .LVU3398 9536 00b0 0022 movs r2, #0 9537 00b2 84F84220 strb r2, [r4, #66] 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9538 .loc 1 4475 7 is_stmt 1 view .LVU3399 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9539 .loc 1 4475 11 is_stmt 0 view .LVU3400 9540 00b6 636C ldr r3, [r4, #68] 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9541 .loc 1 4475 23 view .LVU3401 9542 00b8 43F01003 orr r3, r3, #16 9543 00bc 6364 str r3, [r4, #68] 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9544 .loc 1 4478 7 is_stmt 1 view .LVU3402 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9545 .loc 1 4478 7 view .LVU3403 ARM GAS /tmp/ccclMPzv.s page 356 9546 00be 84F84020 strb r2, [r4, #64] 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9547 .loc 1 4478 7 view .LVU3404 4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9548 .loc 1 4480 7 view .LVU3405 4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9549 .loc 1 4480 14 is_stmt 0 view .LVU3406 9550 00c2 0125 movs r5, #1 9551 00c4 64E0 b .L595 9552 .LVL666: 9553 .L609: 4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9554 .loc 1 4366 7 is_stmt 1 view .LVU3407 9555 00c6 0121 movs r1, #1 9556 00c8 2046 mov r0, r4 9557 00ca FFF7FEFF bl I2C_Disable_IRQ 9558 .LVL667: 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9559 .loc 1 4368 7 view .LVU3408 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9560 .loc 1 4368 16 is_stmt 0 view .LVU3409 9561 00ce 2368 ldr r3, [r4] 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9562 .loc 1 4368 26 view .LVU3410 9563 00d0 1A68 ldr r2, [r3] 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9564 .loc 1 4368 10 view .LVU3411 9565 00d2 12F4804F tst r2, #16384 9566 00d6 BDD0 beq .L599 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9567 .loc 1 4371 9 is_stmt 1 view .LVU3412 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9568 .loc 1 4371 17 is_stmt 0 view .LVU3413 9569 00d8 A26B ldr r2, [r4, #56] 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9570 .loc 1 4371 12 view .LVU3414 9571 00da 002A cmp r2, #0 9572 00dc BAD0 beq .L599 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9573 .loc 1 4373 11 is_stmt 1 view .LVU3415 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9574 .loc 1 4373 25 is_stmt 0 view .LVU3416 9575 00de 1A68 ldr r2, [r3] 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9576 .loc 1 4373 31 view .LVU3417 9577 00e0 22F48042 bic r2, r2, #16384 9578 00e4 1A60 str r2, [r3] 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9579 .loc 1 4377 11 is_stmt 1 view .LVU3418 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9580 .loc 1 4377 15 is_stmt 0 view .LVU3419 9581 00e6 A36B ldr r3, [r4, #56] 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9582 .loc 1 4377 43 view .LVU3420 9583 00e8 2E4A ldr r2, .L611+12 9584 00ea 9A63 str r2, [r3, #56] 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 357 9585 .loc 1 4380 11 is_stmt 1 view .LVU3421 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9586 .loc 1 4380 15 is_stmt 0 view .LVU3422 9587 00ec A06B ldr r0, [r4, #56] 9588 00ee FFF7FEFF bl HAL_DMA_Abort_IT 9589 .LVL668: 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9590 .loc 1 4380 14 discriminator 1 view .LVU3423 9591 00f2 0028 cmp r0, #0 9592 00f4 AED0 beq .L599 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9593 .loc 1 4383 13 is_stmt 1 view .LVU3424 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9594 .loc 1 4383 17 is_stmt 0 view .LVU3425 9595 00f6 A06B ldr r0, [r4, #56] 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9596 .loc 1 4383 25 view .LVU3426 9597 00f8 836B ldr r3, [r0, #56] 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9598 .loc 1 4383 13 view .LVU3427 9599 00fa 9847 blx r3 9600 .LVL669: 9601 00fc AAE7 b .L599 9602 .L610: 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9603 .loc 1 4390 7 is_stmt 1 view .LVU3428 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9604 .loc 1 4390 16 is_stmt 0 view .LVU3429 9605 00fe 2368 ldr r3, [r4] 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9606 .loc 1 4390 26 view .LVU3430 9607 0100 1A68 ldr r2, [r3] 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9608 .loc 1 4390 10 view .LVU3431 9609 0102 12F4004F tst r2, #32768 9610 0106 A5D0 beq .L599 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9611 .loc 1 4392 9 is_stmt 1 view .LVU3432 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9612 .loc 1 4392 23 is_stmt 0 view .LVU3433 9613 0108 1A68 ldr r2, [r3] 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9614 .loc 1 4392 29 view .LVU3434 9615 010a 22F40042 bic r2, r2, #32768 9616 010e 1A60 str r2, [r3] 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9617 .loc 1 4395 9 is_stmt 1 view .LVU3435 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9618 .loc 1 4395 17 is_stmt 0 view .LVU3436 9619 0110 E36B ldr r3, [r4, #60] 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9620 .loc 1 4395 12 view .LVU3437 9621 0112 002B cmp r3, #0 9622 0114 9ED0 beq .L599 4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9623 .loc 1 4399 11 is_stmt 1 view .LVU3438 4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 358 9624 .loc 1 4399 43 is_stmt 0 view .LVU3439 9625 0116 234A ldr r2, .L611+12 9626 0118 9A63 str r2, [r3, #56] 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9627 .loc 1 4402 11 is_stmt 1 view .LVU3440 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9628 .loc 1 4402 15 is_stmt 0 view .LVU3441 9629 011a E06B ldr r0, [r4, #60] 9630 011c FFF7FEFF bl HAL_DMA_Abort_IT 9631 .LVL670: 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9632 .loc 1 4402 14 discriminator 1 view .LVU3442 9633 0120 0028 cmp r0, #0 9634 0122 97D0 beq .L599 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9635 .loc 1 4405 13 is_stmt 1 view .LVU3443 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9636 .loc 1 4405 17 is_stmt 0 view .LVU3444 9637 0124 E06B ldr r0, [r4, #60] 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9638 .loc 1 4405 25 view .LVU3445 9639 0126 836B ldr r3, [r0, #56] 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9640 .loc 1 4405 13 view .LVU3446 9641 0128 9847 blx r3 9642 .LVL671: 9643 012a 93E7 b .L599 9644 .L600: 4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9645 .loc 1 4448 7 is_stmt 1 view .LVU3447 4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9646 .loc 1 4448 23 is_stmt 0 view .LVU3448 9647 012c 2823 movs r3, #40 9648 012e 84F84130 strb r3, [r4, #65] 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9649 .loc 1 4449 7 is_stmt 1 view .LVU3449 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9650 .loc 1 4449 23 is_stmt 0 view .LVU3450 9651 0132 0022 movs r2, #0 9652 0134 84F84220 strb r2, [r4, #66] 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9653 .loc 1 4452 7 is_stmt 1 view .LVU3451 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9654 .loc 1 4452 11 is_stmt 0 view .LVU3452 9655 0138 636C ldr r3, [r4, #68] 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9656 .loc 1 4452 23 view .LVU3453 9657 013a 43F08003 orr r3, r3, #128 9658 013e 6364 str r3, [r4, #68] 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9659 .loc 1 4455 7 is_stmt 1 view .LVU3454 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9660 .loc 1 4455 7 view .LVU3455 9661 0140 84F84020 strb r2, [r4, #64] 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9662 .loc 1 4455 7 view .LVU3456 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 359 9663 .loc 1 4457 7 view .LVU3457 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9664 .loc 1 4457 14 is_stmt 0 view .LVU3458 9665 0144 0125 movs r5, #1 9666 .LVL672: 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9667 .loc 1 4457 14 view .LVU3459 9668 0146 23E0 b .L595 9669 .LVL673: 9670 .L601: 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9671 .loc 1 4463 7 is_stmt 1 view .LVU3460 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9672 .loc 1 4463 11 is_stmt 0 view .LVU3461 9673 0148 638D ldrh r3, [r4, #42] 9674 014a 9BB2 uxth r3, r3 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9675 .loc 1 4463 30 view .LVU3462 9676 014c 228D ldrh r2, [r4, #40] 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9677 .loc 1 4463 23 view .LVU3463 9678 014e 9B1A subs r3, r3, r2 9679 0150 9BB2 uxth r3, r3 9680 0152 6385 strh r3, [r4, #42] @ movhi 4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9681 .loc 1 4466 7 is_stmt 1 view .LVU3464 4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9682 .loc 1 4466 22 is_stmt 0 view .LVU3465 9683 0154 0023 movs r3, #0 9684 0156 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)) 9685 .loc 1 4483 5 is_stmt 1 view .LVU3466 4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9686 .loc 1 4483 11 is_stmt 0 view .LVU3467 9687 0158 2268 ldr r2, [r4] 9688 015a 9369 ldr r3, [r2, #24] 9689 015c 03F00803 and r3, r3, #8 9690 .LVL674: 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9691 .loc 1 4484 5 is_stmt 1 view .LVU3468 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9692 .loc 1 4484 10 is_stmt 0 view .LVU3469 9693 0160 9169 ldr r1, [r2, #24] 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9694 .loc 1 4484 8 view .LVU3470 9695 0162 11F4803F tst r1, #65536 9696 0166 0DD0 beq .L603 9697 .LVL675: 9698 .L604: 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9699 .loc 1 4492 5 is_stmt 1 view .LVU3471 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9700 .loc 1 4492 5 view .LVU3472 9701 0168 0023 movs r3, #0 9702 016a 84F84030 strb r3, [r4, #64] 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9703 .loc 1 4492 5 view .LVU3473 ARM GAS /tmp/ccclMPzv.s page 360 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9704 .loc 1 4495 5 view .LVU3474 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9705 .loc 1 4495 9 is_stmt 0 view .LVU3475 9706 016e 2268 ldr r2, [r4] 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9707 .loc 1 4495 19 view .LVU3476 9708 0170 1368 ldr r3, [r2] 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9709 .loc 1 4495 25 view .LVU3477 9710 0172 43F40043 orr r3, r3, #32768 9711 0176 1360 str r3, [r2] 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9712 .loc 1 4501 5 is_stmt 1 view .LVU3478 9713 0178 48F20201 movw r1, #32770 9714 017c 2046 mov r0, r4 9715 .LVL676: 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9716 .loc 1 4501 5 is_stmt 0 view .LVU3479 9717 017e FFF7FEFF bl I2C_Enable_IRQ 9718 .LVL677: 4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9719 .loc 1 4503 5 is_stmt 1 view .LVU3480 4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9720 .loc 1 4503 12 is_stmt 0 view .LVU3481 9721 0182 05E0 b .L595 9722 .LVL678: 9723 .L603: 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9724 .loc 1 4484 55 discriminator 1 view .LVU3482 9725 0184 002B cmp r3, #0 9726 0186 EFD0 beq .L604 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9727 .loc 1 4488 7 is_stmt 1 view .LVU3483 9728 0188 0823 movs r3, #8 9729 .LVL679: 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9730 .loc 1 4488 7 is_stmt 0 view .LVU3484 9731 018a D361 str r3, [r2, #28] 9732 018c ECE7 b .L604 9733 .LVL680: 9734 .L605: 4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9735 .loc 1 4507 12 view .LVU3485 9736 018e 0125 movs r5, #1 9737 .LVL681: 9738 .L595: 4509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9739 .loc 1 4509 1 view .LVU3486 9740 0190 2846 mov r0, r5 9741 0192 F8BD pop {r3, r4, r5, r6, r7, pc} 9742 .LVL682: 9743 .L606: 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9744 .loc 1 4359 5 discriminator 1 view .LVU3487 9745 0194 0225 movs r5, #2 9746 .LVL683: ARM GAS /tmp/ccclMPzv.s page 361 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9747 .loc 1 4359 5 discriminator 1 view .LVU3488 9748 0196 FBE7 b .L595 9749 .L612: 9750 .align 2 9751 .L611: 9752 0198 00000000 .word I2C_Slave_ISR_DMA 9753 019c 00000000 .word I2C_DMASlaveReceiveCplt 9754 01a0 00000000 .word I2C_DMAError 9755 01a4 00000000 .word I2C_DMAAbort 9756 .cfi_endproc 9757 .LFE359: 9759 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9760 .align 1 9761 .global HAL_I2C_EnableListen_IT 9762 .syntax unified 9763 .thumb 9764 .thumb_func 9766 HAL_I2C_EnableListen_IT: 9767 .LVL684: 9768 .LFB360: 4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9769 .loc 1 4518 1 is_stmt 1 view -0 9770 .cfi_startproc 9771 @ args = 0, pretend = 0, frame = 0 9772 @ frame_needed = 0, uses_anonymous_args = 0 4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9773 .loc 1 4518 1 is_stmt 0 view .LVU3490 9774 0000 08B5 push {r3, lr} 9775 .LCFI106: 9776 .cfi_def_cfa_offset 8 9777 .cfi_offset 3, -8 9778 .cfi_offset 14, -4 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9779 .loc 1 4519 3 is_stmt 1 view .LVU3491 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9780 .loc 1 4519 11 is_stmt 0 view .LVU3492 9781 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9782 0006 DBB2 uxtb r3, r3 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9783 .loc 1 4519 6 view .LVU3493 9784 0008 202B cmp r3, #32 9785 000a 01D0 beq .L617 4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9786 .loc 1 4531 12 view .LVU3494 9787 000c 0220 movs r0, #2 9788 .LVL685: 9789 .L614: 4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9790 .loc 1 4533 1 view .LVU3495 9791 000e 08BD pop {r3, pc} 9792 .LVL686: 9793 .L617: 4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9794 .loc 1 4521 5 is_stmt 1 view .LVU3496 4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9795 .loc 1 4521 17 is_stmt 0 view .LVU3497 ARM GAS /tmp/ccclMPzv.s page 362 9796 0010 2823 movs r3, #40 9797 0012 80F84130 strb r3, [r0, #65] 4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9798 .loc 1 4522 5 is_stmt 1 view .LVU3498 4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9799 .loc 1 4522 19 is_stmt 0 view .LVU3499 9800 0016 044B ldr r3, .L618 9801 0018 4363 str r3, [r0, #52] 4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9802 .loc 1 4525 5 is_stmt 1 view .LVU3500 9803 001a 4FF40041 mov r1, #32768 9804 001e FFF7FEFF bl I2C_Enable_IRQ 9805 .LVL687: 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9806 .loc 1 4527 5 view .LVU3501 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9807 .loc 1 4527 12 is_stmt 0 view .LVU3502 9808 0022 0020 movs r0, #0 9809 0024 F3E7 b .L614 9810 .L619: 9811 0026 00BF .align 2 9812 .L618: 9813 0028 00000000 .word I2C_Slave_ISR_IT 9814 .cfi_endproc 9815 .LFE360: 9817 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9818 .align 1 9819 .global HAL_I2C_DisableListen_IT 9820 .syntax unified 9821 .thumb 9822 .thumb_func 9824 HAL_I2C_DisableListen_IT: 9825 .LVL688: 9826 .LFB361: 4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9827 .loc 1 4542 1 is_stmt 1 view -0 9828 .cfi_startproc 9829 @ args = 0, pretend = 0, frame = 0 9830 @ frame_needed = 0, uses_anonymous_args = 0 4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9831 .loc 1 4544 3 view .LVU3504 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9832 .loc 1 4547 3 view .LVU3505 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9833 .loc 1 4547 11 is_stmt 0 view .LVU3506 9834 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9835 0004 DBB2 uxtb r3, r3 4547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9836 .loc 1 4547 6 view .LVU3507 9837 0006 282B cmp r3, #40 9838 0008 01D0 beq .L627 4562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9839 .loc 1 4562 12 view .LVU3508 9840 000a 0220 movs r0, #2 9841 .LVL689: 4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9842 .loc 1 4564 1 view .LVU3509 ARM GAS /tmp/ccclMPzv.s page 363 9843 000c 7047 bx lr 9844 .LVL690: 9845 .L627: 4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9846 .loc 1 4542 1 view .LVU3510 9847 000e 10B5 push {r4, lr} 9848 .LCFI107: 9849 .cfi_def_cfa_offset 8 9850 .cfi_offset 4, -8 9851 .cfi_offset 14, -4 4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9852 .loc 1 4549 5 is_stmt 1 view .LVU3511 4549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9853 .loc 1 4549 26 is_stmt 0 view .LVU3512 9854 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9855 .LVL691: 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9856 .loc 1 4550 5 is_stmt 1 view .LVU3513 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9857 .loc 1 4550 48 is_stmt 0 view .LVU3514 9858 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9859 .loc 1 4550 31 view .LVU3515 9860 0018 02F00302 and r2, r2, #3 9861 .LVL692: 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9862 .loc 1 4550 31 view .LVU3516 9863 001c 1343 orrs r3, r3, r2 4550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9864 .loc 1 4550 25 view .LVU3517 9865 001e 0363 str r3, [r0, #48] 4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9866 .loc 1 4551 5 is_stmt 1 view .LVU3518 4551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9867 .loc 1 4551 17 is_stmt 0 view .LVU3519 9868 0020 2023 movs r3, #32 9869 0022 80F84130 strb r3, [r0, #65] 4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9870 .loc 1 4552 5 is_stmt 1 view .LVU3520 4552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 9871 .loc 1 4552 16 is_stmt 0 view .LVU3521 9872 0026 0024 movs r4, #0 9873 0028 80F84240 strb r4, [r0, #66] 4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9874 .loc 1 4553 5 is_stmt 1 view .LVU3522 4553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9875 .loc 1 4553 19 is_stmt 0 view .LVU3523 9876 002c 4463 str r4, [r0, #52] 4556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9877 .loc 1 4556 5 is_stmt 1 view .LVU3524 9878 002e 4FF40041 mov r1, #32768 9879 0032 FFF7FEFF bl I2C_Disable_IRQ 9880 .LVL693: 4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9881 .loc 1 4558 5 view .LVU3525 4558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9882 .loc 1 4558 12 is_stmt 0 view .LVU3526 ARM GAS /tmp/ccclMPzv.s page 364 9883 0036 2046 mov r0, r4 4564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9884 .loc 1 4564 1 view .LVU3527 9885 0038 10BD pop {r4, pc} 9886 .cfi_endproc 9887 .LFE361: 9889 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9890 .align 1 9891 .global HAL_I2C_Master_Abort_IT 9892 .syntax unified 9893 .thumb 9894 .thumb_func 9896 HAL_I2C_Master_Abort_IT: 9897 .LVL694: 9898 .LFB362: 4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9899 .loc 1 4575 1 is_stmt 1 view -0 9900 .cfi_startproc 9901 @ args = 0, pretend = 0, frame = 0 9902 @ frame_needed = 0, uses_anonymous_args = 0 4575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9903 .loc 1 4575 1 is_stmt 0 view .LVU3529 9904 0000 30B5 push {r4, r5, lr} 9905 .LCFI108: 9906 .cfi_def_cfa_offset 12 9907 .cfi_offset 4, -12 9908 .cfi_offset 5, -8 9909 .cfi_offset 14, -4 9910 0002 83B0 sub sp, sp, #12 9911 .LCFI109: 9912 .cfi_def_cfa_offset 24 9913 0004 0446 mov r4, r0 9914 0006 0D46 mov r5, r1 4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9915 .loc 1 4576 3 is_stmt 1 view .LVU3530 4576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9916 .loc 1 4576 23 is_stmt 0 view .LVU3531 9917 0008 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9918 000c DBB2 uxtb r3, r3 9919 .LVL695: 4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9920 .loc 1 4578 3 is_stmt 1 view .LVU3532 4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9921 .loc 1 4578 6 is_stmt 0 view .LVU3533 9922 000e 102B cmp r3, #16 9923 0010 01D0 beq .L629 4578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9924 .loc 1 4578 41 discriminator 1 view .LVU3534 9925 0012 402B cmp r3, #64 9926 0014 34D1 bne .L633 9927 .L629: 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9928 .loc 1 4581 5 is_stmt 1 view .LVU3535 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9929 .loc 1 4581 5 view .LVU3536 9930 0016 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9931 .LVL696: ARM GAS /tmp/ccclMPzv.s page 365 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9932 .loc 1 4581 5 is_stmt 0 view .LVU3537 9933 001a 012B cmp r3, #1 9934 001c 32D0 beq .L634 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9935 .loc 1 4581 5 is_stmt 1 discriminator 2 view .LVU3538 9936 001e 0123 movs r3, #1 9937 0020 84F84030 strb r3, [r4, #64] 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9938 .loc 1 4581 5 discriminator 2 view .LVU3539 4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9939 .loc 1 4584 5 view .LVU3540 4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9940 .loc 1 4584 13 is_stmt 0 view .LVU3541 9941 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9942 0028 DBB2 uxtb r3, r3 4584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9943 .loc 1 4584 8 view .LVU3542 9944 002a 212B cmp r3, #33 9945 002c 1AD0 beq .L636 4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9946 .loc 1 4589 10 is_stmt 1 view .LVU3543 4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9947 .loc 1 4589 18 is_stmt 0 view .LVU3544 9948 002e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9949 0032 DBB2 uxtb r3, r3 4589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 9950 .loc 1 4589 13 view .LVU3545 9951 0034 222B cmp r3, #34 9952 0036 1CD0 beq .L637 9953 .LVL697: 9954 .L632: 4597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9955 .loc 1 4597 5 is_stmt 1 view .LVU3546 4600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9956 .loc 1 4600 5 view .LVU3547 4600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9957 .loc 1 4600 17 is_stmt 0 view .LVU3548 9958 0038 6023 movs r3, #96 9959 003a 84F84130 strb r3, [r4, #65] 4604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9960 .loc 1 4604 5 is_stmt 1 view .LVU3549 9961 003e 124B ldr r3, .L638 9962 0040 0093 str r3, [sp] 9963 0042 4FF00073 mov r3, #33554432 9964 0046 0122 movs r2, #1 9965 0048 2946 mov r1, r5 9966 004a 2046 mov r0, r4 9967 004c FFF7FEFF bl I2C_TransferConfig 9968 .LVL698: 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9969 .loc 1 4607 5 view .LVU3550 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9970 .loc 1 4607 5 view .LVU3551 9971 0050 0025 movs r5, #0 9972 .LVL699: 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 366 9973 .loc 1 4607 5 is_stmt 0 view .LVU3552 9974 0052 84F84050 strb r5, [r4, #64] 4607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9975 .loc 1 4607 5 is_stmt 1 view .LVU3553 4612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9976 .loc 1 4612 5 view .LVU3554 9977 0056 2021 movs r1, #32 9978 0058 2046 mov r0, r4 9979 005a FFF7FEFF bl I2C_Enable_IRQ 9980 .LVL700: 4614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9981 .loc 1 4614 5 view .LVU3555 4614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 9982 .loc 1 4614 12 is_stmt 0 view .LVU3556 9983 005e 2846 mov r0, r5 9984 .L630: 4622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 9985 .loc 1 4622 1 view .LVU3557 9986 0060 03B0 add sp, sp, #12 9987 .LCFI110: 9988 .cfi_remember_state 9989 .cfi_def_cfa_offset 12 9990 @ sp needed 9991 0062 30BD pop {r4, r5, pc} 9992 .LVL701: 9993 .L636: 9994 .LCFI111: 9995 .cfi_restore_state 4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9996 .loc 1 4586 7 is_stmt 1 view .LVU3558 9997 0064 0121 movs r1, #1 9998 .LVL702: 4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9999 .loc 1 4586 7 is_stmt 0 view .LVU3559 10000 0066 2046 mov r0, r4 10001 .LVL703: 4586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10002 .loc 1 4586 7 view .LVU3560 10003 0068 FFF7FEFF bl I2C_Disable_IRQ 10004 .LVL704: 4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10005 .loc 1 4587 7 is_stmt 1 view .LVU3561 4587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10006 .loc 1 4587 27 is_stmt 0 view .LVU3562 10007 006c 1123 movs r3, #17 10008 006e 2363 str r3, [r4, #48] 10009 0070 E2E7 b .L632 10010 .LVL705: 10011 .L637: 4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10012 .loc 1 4591 7 is_stmt 1 view .LVU3563 10013 0072 0221 movs r1, #2 10014 .LVL706: 4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10015 .loc 1 4591 7 is_stmt 0 view .LVU3564 10016 0074 2046 mov r0, r4 10017 .LVL707: ARM GAS /tmp/ccclMPzv.s page 367 4591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10018 .loc 1 4591 7 view .LVU3565 10019 0076 FFF7FEFF bl I2C_Disable_IRQ 10020 .LVL708: 4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10021 .loc 1 4592 7 is_stmt 1 view .LVU3566 4592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10022 .loc 1 4592 27 is_stmt 0 view .LVU3567 10023 007a 1223 movs r3, #18 10024 007c 2363 str r3, [r4, #48] 10025 007e DBE7 b .L632 10026 .LVL709: 10027 .L633: 4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10028 .loc 1 4620 12 view .LVU3568 10029 0080 0120 movs r0, #1 10030 .LVL710: 4620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10031 .loc 1 4620 12 view .LVU3569 10032 0082 EDE7 b .L630 10033 .LVL711: 10034 .L634: 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10035 .loc 1 4581 5 discriminator 1 view .LVU3570 10036 0084 0220 movs r0, #2 10037 .LVL712: 4581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10038 .loc 1 4581 5 discriminator 1 view .LVU3571 10039 0086 EBE7 b .L630 10040 .L639: 10041 .align 2 10042 .L638: 10043 0088 00400080 .word -2147467264 10044 .cfi_endproc 10045 .LFE362: 10047 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 10048 .align 1 10049 .global HAL_I2C_EV_IRQHandler 10050 .syntax unified 10051 .thumb 10052 .thumb_func 10054 HAL_I2C_EV_IRQHandler: 10055 .LVL713: 10056 .LFB363: 4639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 10057 .loc 1 4639 1 is_stmt 1 view -0 10058 .cfi_startproc 10059 @ args = 0, pretend = 0, frame = 0 10060 @ 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 */ 10061 .loc 1 4639 1 is_stmt 0 view .LVU3573 10062 0000 08B5 push {r3, lr} 10063 .LCFI112: 10064 .cfi_def_cfa_offset 8 10065 .cfi_offset 3, -8 10066 .cfi_offset 14, -4 4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); ARM GAS /tmp/ccclMPzv.s page 368 10067 .loc 1 4641 3 is_stmt 1 view .LVU3574 4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10068 .loc 1 4641 24 is_stmt 0 view .LVU3575 10069 0002 0368 ldr r3, [r0] 4641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10070 .loc 1 4641 12 view .LVU3576 10071 0004 9969 ldr r1, [r3, #24] 10072 .LVL714: 4642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10073 .loc 1 4642 3 is_stmt 1 view .LVU3577 4642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10074 .loc 1 4642 12 is_stmt 0 view .LVU3578 10075 0006 1A68 ldr r2, [r3] 10076 .LVL715: 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10077 .loc 1 4645 3 is_stmt 1 view .LVU3579 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10078 .loc 1 4645 11 is_stmt 0 view .LVU3580 10079 0008 436B ldr r3, [r0, #52] 4645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10080 .loc 1 4645 6 view .LVU3581 10081 000a 03B1 cbz r3, .L640 4647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10082 .loc 1 4647 5 is_stmt 1 view .LVU3582 10083 000c 9847 blx r3 10084 .LVL716: 10085 .L640: 4649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10086 .loc 1 4649 1 is_stmt 0 view .LVU3583 10087 000e 08BD pop {r3, pc} 10088 .cfi_endproc 10089 .LFE363: 10091 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 10092 .align 1 10093 .weak HAL_I2C_MasterTxCpltCallback 10094 .syntax unified 10095 .thumb 10096 .thumb_func 10098 HAL_I2C_MasterTxCpltCallback: 10099 .LVL717: 10100 .LFB365: 4710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10101 .loc 1 4710 1 is_stmt 1 view -0 10102 .cfi_startproc 10103 @ args = 0, pretend = 0, frame = 0 10104 @ frame_needed = 0, uses_anonymous_args = 0 10105 @ link register save eliminated. 4712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10106 .loc 1 4712 3 view .LVU3585 4717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10107 .loc 1 4717 1 is_stmt 0 view .LVU3586 10108 0000 7047 bx lr 10109 .cfi_endproc 10110 .LFE365: 10112 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 10113 .align 1 10114 .weak HAL_I2C_MasterRxCpltCallback ARM GAS /tmp/ccclMPzv.s page 369 10115 .syntax unified 10116 .thumb 10117 .thumb_func 10119 HAL_I2C_MasterRxCpltCallback: 10120 .LVL718: 10121 .LFB366: 4726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10122 .loc 1 4726 1 is_stmt 1 view -0 10123 .cfi_startproc 10124 @ args = 0, pretend = 0, frame = 0 10125 @ frame_needed = 0, uses_anonymous_args = 0 10126 @ link register save eliminated. 4728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10127 .loc 1 4728 3 view .LVU3588 4733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10128 .loc 1 4733 1 is_stmt 0 view .LVU3589 10129 0000 7047 bx lr 10130 .cfi_endproc 10131 .LFE366: 10133 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 10134 .align 1 10135 .syntax unified 10136 .thumb 10137 .thumb_func 10139 I2C_ITMasterSeqCplt: 10140 .LVL719: 10141 .LFB387: 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 10142 .loc 1 6005 1 is_stmt 1 view -0 10143 .cfi_startproc 10144 @ args = 0, pretend = 0, frame = 0 10145 @ frame_needed = 0, uses_anonymous_args = 0 6005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset I2C handle mode */ 10146 .loc 1 6005 1 is_stmt 0 view .LVU3591 10147 0000 38B5 push {r3, r4, r5, lr} 10148 .LCFI113: 10149 .cfi_def_cfa_offset 16 10150 .cfi_offset 3, -16 10151 .cfi_offset 4, -12 10152 .cfi_offset 5, -8 10153 .cfi_offset 14, -4 10154 0002 0446 mov r4, r0 6007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10155 .loc 1 6007 3 is_stmt 1 view .LVU3592 6007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10156 .loc 1 6007 14 is_stmt 0 view .LVU3593 10157 0004 0023 movs r3, #0 10158 0006 80F84230 strb r3, [r0, #66] 6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10159 .loc 1 6011 3 is_stmt 1 view .LVU3594 6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10160 .loc 1 6011 11 is_stmt 0 view .LVU3595 10161 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10162 000e DBB2 uxtb r3, r3 6011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10163 .loc 1 6011 6 view .LVU3596 10164 0010 212B cmp r3, #33 ARM GAS /tmp/ccclMPzv.s page 370 10165 0012 0FD0 beq .L649 6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10166 .loc 1 6033 5 is_stmt 1 view .LVU3597 6033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10167 .loc 1 6033 25 is_stmt 0 view .LVU3598 10168 0014 2023 movs r3, #32 10169 0016 80F84130 strb r3, [r0, #65] 6034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10170 .loc 1 6034 5 is_stmt 1 view .LVU3599 6034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10171 .loc 1 6034 25 is_stmt 0 view .LVU3600 10172 001a 1223 movs r3, #18 10173 001c 0363 str r3, [r0, #48] 6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10174 .loc 1 6035 5 is_stmt 1 view .LVU3601 6035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10175 .loc 1 6035 25 is_stmt 0 view .LVU3602 10176 001e 0025 movs r5, #0 10177 0020 4563 str r5, [r0, #52] 6038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10178 .loc 1 6038 5 is_stmt 1 view .LVU3603 10179 0022 0221 movs r1, #2 10180 0024 FFF7FEFF bl I2C_Disable_IRQ 10181 .LVL720: 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10182 .loc 1 6041 5 view .LVU3604 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10183 .loc 1 6041 5 view .LVU3605 10184 0028 84F84050 strb r5, [r4, #64] 6041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10185 .loc 1 6041 5 view .LVU3606 6047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10186 .loc 1 6047 5 view .LVU3607 10187 002c 2046 mov r0, r4 10188 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 10189 .LVL721: 10190 .L645: 6050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10191 .loc 1 6050 1 is_stmt 0 view .LVU3608 10192 0032 38BD pop {r3, r4, r5, pc} 10193 .LVL722: 10194 .L649: 6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10195 .loc 1 6013 5 is_stmt 1 view .LVU3609 6013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10196 .loc 1 6013 25 is_stmt 0 view .LVU3610 10197 0034 2023 movs r3, #32 10198 0036 80F84130 strb r3, [r0, #65] 6014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10199 .loc 1 6014 5 is_stmt 1 view .LVU3611 6014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10200 .loc 1 6014 25 is_stmt 0 view .LVU3612 10201 003a 1123 movs r3, #17 10202 003c 0363 str r3, [r0, #48] 6015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10203 .loc 1 6015 5 is_stmt 1 view .LVU3613 6015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 371 10204 .loc 1 6015 25 is_stmt 0 view .LVU3614 10205 003e 0025 movs r5, #0 10206 0040 4563 str r5, [r0, #52] 6018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10207 .loc 1 6018 5 is_stmt 1 view .LVU3615 10208 0042 0121 movs r1, #1 10209 0044 FFF7FEFF bl I2C_Disable_IRQ 10210 .LVL723: 6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10211 .loc 1 6021 5 view .LVU3616 6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10212 .loc 1 6021 5 view .LVU3617 10213 0048 84F84050 strb r5, [r4, #64] 6021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10214 .loc 1 6021 5 view .LVU3618 6027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10215 .loc 1 6027 5 view .LVU3619 10216 004c 2046 mov r0, r4 10217 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10218 .LVL724: 10219 0052 EEE7 b .L645 10220 .cfi_endproc 10221 .LFE387: 10223 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10224 .align 1 10225 .weak HAL_I2C_SlaveTxCpltCallback 10226 .syntax unified 10227 .thumb 10228 .thumb_func 10230 HAL_I2C_SlaveTxCpltCallback: 10231 .LVL725: 10232 .LFB367: 4741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10233 .loc 1 4741 1 view -0 10234 .cfi_startproc 10235 @ args = 0, pretend = 0, frame = 0 10236 @ frame_needed = 0, uses_anonymous_args = 0 10237 @ link register save eliminated. 4743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10238 .loc 1 4743 3 view .LVU3621 4748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10239 .loc 1 4748 1 is_stmt 0 view .LVU3622 10240 0000 7047 bx lr 10241 .cfi_endproc 10242 .LFE367: 10244 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10245 .align 1 10246 .weak HAL_I2C_SlaveRxCpltCallback 10247 .syntax unified 10248 .thumb 10249 .thumb_func 10251 HAL_I2C_SlaveRxCpltCallback: 10252 .LVL726: 10253 .LFB368: 4757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10254 .loc 1 4757 1 is_stmt 1 view -0 10255 .cfi_startproc ARM GAS /tmp/ccclMPzv.s page 372 10256 @ args = 0, pretend = 0, frame = 0 10257 @ frame_needed = 0, uses_anonymous_args = 0 10258 @ link register save eliminated. 4759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10259 .loc 1 4759 3 view .LVU3624 4764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10260 .loc 1 4764 1 is_stmt 0 view .LVU3625 10261 0000 7047 bx lr 10262 .cfi_endproc 10263 .LFE368: 10265 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 10266 .align 1 10267 .syntax unified 10268 .thumb 10269 .thumb_func 10271 I2C_ITSlaveSeqCplt: 10272 .LVL727: 10273 .LFB388: 6058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10274 .loc 1 6058 1 is_stmt 1 view -0 10275 .cfi_startproc 10276 @ args = 0, pretend = 0, frame = 0 10277 @ 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); 10278 .loc 1 6058 1 is_stmt 0 view .LVU3627 10279 0000 10B5 push {r4, lr} 10280 .LCFI114: 10281 .cfi_def_cfa_offset 8 10282 .cfi_offset 4, -8 10283 .cfi_offset 14, -4 10284 0002 0446 mov r4, r0 6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10285 .loc 1 6059 3 is_stmt 1 view .LVU3628 6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10286 .loc 1 6059 26 is_stmt 0 view .LVU3629 10287 0004 0368 ldr r3, [r0] 6059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10288 .loc 1 6059 12 view .LVU3630 10289 0006 1A68 ldr r2, [r3] 10290 .LVL728: 6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10291 .loc 1 6062 3 is_stmt 1 view .LVU3631 6062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10292 .loc 1 6062 14 is_stmt 0 view .LVU3632 10293 0008 0021 movs r1, #0 10294 000a 80F84210 strb r1, [r0, #66] 6065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10295 .loc 1 6065 3 is_stmt 1 view .LVU3633 6065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10296 .loc 1 6065 6 is_stmt 0 view .LVU3634 10297 000e 12F4804F tst r2, #16384 10298 0012 0ED0 beq .L653 6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10299 .loc 1 6068 5 is_stmt 1 view .LVU3635 6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10300 .loc 1 6068 19 is_stmt 0 view .LVU3636 10301 0014 1A68 ldr r2, [r3] ARM GAS /tmp/ccclMPzv.s page 373 10302 .LVL729: 6068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10303 .loc 1 6068 25 view .LVU3637 10304 0016 22F48042 bic r2, r2, #16384 10305 001a 1A60 str r2, [r3] 10306 .L654: 6078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10307 .loc 1 6078 3 is_stmt 1 view .LVU3638 6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10308 .loc 1 6080 3 view .LVU3639 6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10309 .loc 1 6080 11 is_stmt 0 view .LVU3640 10310 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10311 0020 DBB2 uxtb r3, r3 6080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10312 .loc 1 6080 6 view .LVU3641 10313 0022 292B cmp r3, #41 10314 0024 0DD0 beq .L658 6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10315 .loc 1 6100 8 is_stmt 1 view .LVU3642 6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10316 .loc 1 6100 16 is_stmt 0 view .LVU3643 10317 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10318 002a DBB2 uxtb r3, r3 6100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10319 .loc 1 6100 11 view .LVU3644 10320 002c 2A2B cmp r3, #42 10321 002e 18D0 beq .L659 10322 .LVL730: 10323 .L652: 6123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10324 .loc 1 6123 1 view .LVU3645 10325 0030 10BD pop {r4, pc} 10326 .LVL731: 10327 .L653: 6070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10328 .loc 1 6070 8 is_stmt 1 view .LVU3646 6070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10329 .loc 1 6070 11 is_stmt 0 view .LVU3647 10330 0032 12F4004F tst r2, #32768 10331 0036 F1D0 beq .L654 6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10332 .loc 1 6073 5 is_stmt 1 view .LVU3648 6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10333 .loc 1 6073 19 is_stmt 0 view .LVU3649 10334 0038 1A68 ldr r2, [r3] 10335 .LVL732: 6073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10336 .loc 1 6073 25 view .LVU3650 10337 003a 22F40042 bic r2, r2, #32768 10338 003e 1A60 str r2, [r3] 10339 0040 ECE7 b .L654 10340 .L658: 6083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10341 .loc 1 6083 5 is_stmt 1 view .LVU3651 6083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10342 .loc 1 6083 25 is_stmt 0 view .LVU3652 ARM GAS /tmp/ccclMPzv.s page 374 10343 0042 2823 movs r3, #40 10344 0044 84F84130 strb r3, [r4, #65] 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10345 .loc 1 6084 5 is_stmt 1 view .LVU3653 6084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10346 .loc 1 6084 25 is_stmt 0 view .LVU3654 10347 0048 2123 movs r3, #33 10348 004a 2363 str r3, [r4, #48] 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10349 .loc 1 6087 5 is_stmt 1 view .LVU3655 10350 004c 0121 movs r1, #1 10351 004e 2046 mov r0, r4 10352 .LVL733: 6087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10353 .loc 1 6087 5 is_stmt 0 view .LVU3656 10354 0050 FFF7FEFF bl I2C_Disable_IRQ 10355 .LVL734: 6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10356 .loc 1 6090 5 is_stmt 1 view .LVU3657 6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10357 .loc 1 6090 5 view .LVU3658 10358 0054 0023 movs r3, #0 10359 0056 84F84030 strb r3, [r4, #64] 6090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10360 .loc 1 6090 5 view .LVU3659 6096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10361 .loc 1 6096 5 view .LVU3660 10362 005a 2046 mov r0, r4 10363 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10364 .LVL735: 10365 0060 E6E7 b .L652 10366 .LVL736: 10367 .L659: 6103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10368 .loc 1 6103 5 view .LVU3661 6103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10369 .loc 1 6103 25 is_stmt 0 view .LVU3662 10370 0062 2823 movs r3, #40 10371 0064 84F84130 strb r3, [r4, #65] 6104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10372 .loc 1 6104 5 is_stmt 1 view .LVU3663 6104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10373 .loc 1 6104 25 is_stmt 0 view .LVU3664 10374 0068 2223 movs r3, #34 10375 006a 2363 str r3, [r4, #48] 6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10376 .loc 1 6107 5 is_stmt 1 view .LVU3665 10377 006c 0221 movs r1, #2 10378 006e 2046 mov r0, r4 10379 .LVL737: 6107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10380 .loc 1 6107 5 is_stmt 0 view .LVU3666 10381 0070 FFF7FEFF bl I2C_Disable_IRQ 10382 .LVL738: 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10383 .loc 1 6110 5 is_stmt 1 view .LVU3667 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 375 10384 .loc 1 6110 5 view .LVU3668 10385 0074 0023 movs r3, #0 10386 0076 84F84030 strb r3, [r4, #64] 6110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10387 .loc 1 6110 5 view .LVU3669 6116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10388 .loc 1 6116 5 view .LVU3670 10389 007a 2046 mov r0, r4 10390 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10391 .LVL739: 6122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10392 .loc 1 6122 3 view .LVU3671 6123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10393 .loc 1 6123 1 is_stmt 0 view .LVU3672 10394 0080 D6E7 b .L652 10395 .cfi_endproc 10396 .LFE388: 10398 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10399 .align 1 10400 .syntax unified 10401 .thumb 10402 .thumb_func 10404 I2C_DMASlaveTransmitCplt: 10405 .LVL740: 10406 .LFB396: 6783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10407 .loc 1 6783 1 is_stmt 1 view -0 10408 .cfi_startproc 10409 @ args = 0, pretend = 0, frame = 0 10410 @ frame_needed = 0, uses_anonymous_args = 0 6783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10411 .loc 1 6783 1 is_stmt 0 view .LVU3674 10412 0000 08B5 push {r3, lr} 10413 .LCFI115: 10414 .cfi_def_cfa_offset 8 10415 .cfi_offset 3, -8 10416 .cfi_offset 14, -4 6785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10417 .loc 1 6785 3 is_stmt 1 view .LVU3675 6785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10418 .loc 1 6785 22 is_stmt 0 view .LVU3676 10419 0002 806A ldr r0, [r0, #40] 10420 .LVL741: 6786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10421 .loc 1 6786 3 is_stmt 1 view .LVU3677 6786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10422 .loc 1 6786 12 is_stmt 0 view .LVU3678 10423 0004 C36A ldr r3, [r0, #44] 10424 .LVL742: 6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10425 .loc 1 6788 3 is_stmt 1 view .LVU3679 6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10426 .loc 1 6788 6 is_stmt 0 view .LVU3680 10427 0006 B3F1807F cmp r3, #16777216 10428 000a 00D0 beq .L661 6788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10429 .loc 1 6788 38 discriminator 1 view .LVU3681 ARM GAS /tmp/ccclMPzv.s page 376 10430 000c 33B9 cbnz r3, .L660 10431 .L661: 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10432 .loc 1 6791 5 is_stmt 1 view .LVU3682 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10433 .loc 1 6791 9 is_stmt 0 view .LVU3683 10434 000e 0268 ldr r2, [r0] 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10435 .loc 1 6791 19 view .LVU3684 10436 0010 1368 ldr r3, [r2] 10437 .LVL743: 6791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10438 .loc 1 6791 25 view .LVU3685 10439 0012 23F48043 bic r3, r3, #16384 10440 0016 1360 str r3, [r2] 6795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10441 .loc 1 6795 5 is_stmt 1 view .LVU3686 10442 0018 FFF7FEFF bl I2C_ITSlaveSeqCplt 10443 .LVL744: 10444 .L660: 6803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10445 .loc 1 6803 1 is_stmt 0 view .LVU3687 10446 001c 08BD pop {r3, pc} 10447 .cfi_endproc 10448 .LFE396: 10450 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 10451 .align 1 10452 .syntax unified 10453 .thumb 10454 .thumb_func 10456 I2C_DMASlaveReceiveCplt: 10457 .LVL745: 10458 .LFB398: 6863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10459 .loc 1 6863 1 is_stmt 1 view -0 10460 .cfi_startproc 10461 @ args = 0, pretend = 0, frame = 0 10462 @ frame_needed = 0, uses_anonymous_args = 0 6863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10463 .loc 1 6863 1 is_stmt 0 view .LVU3689 10464 0000 08B5 push {r3, lr} 10465 .LCFI116: 10466 .cfi_def_cfa_offset 8 10467 .cfi_offset 3, -8 10468 .cfi_offset 14, -4 6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10469 .loc 1 6865 3 is_stmt 1 view .LVU3690 6865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10470 .loc 1 6865 22 is_stmt 0 view .LVU3691 10471 0002 806A ldr r0, [r0, #40] 10472 .LVL746: 6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10473 .loc 1 6866 3 is_stmt 1 view .LVU3692 6866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10474 .loc 1 6866 12 is_stmt 0 view .LVU3693 10475 0004 C26A ldr r2, [r0, #44] 10476 .LVL747: ARM GAS /tmp/ccclMPzv.s page 377 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10477 .loc 1 6868 3 is_stmt 1 view .LVU3694 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10478 .loc 1 6868 8 is_stmt 0 view .LVU3695 10479 0006 C36B ldr r3, [r0, #60] 10480 0008 1B68 ldr r3, [r3] 10481 000a 5B68 ldr r3, [r3, #4] 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10482 .loc 1 6868 6 view .LVU3696 10483 000c 13B9 cbnz r3, .L664 6868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10484 .loc 1 6868 53 discriminator 1 view .LVU3697 10485 000e 12F5803F cmn r2, #65536 10486 0012 00D1 bne .L667 10487 .LVL748: 10488 .L664: 6883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10489 .loc 1 6883 1 view .LVU3698 10490 0014 08BD pop {r3, pc} 10491 .LVL749: 10492 .L667: 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10493 .loc 1 6872 5 is_stmt 1 view .LVU3699 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10494 .loc 1 6872 9 is_stmt 0 view .LVU3700 10495 0016 0268 ldr r2, [r0] 10496 .LVL750: 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10497 .loc 1 6872 19 view .LVU3701 10498 0018 1368 ldr r3, [r2] 6872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10499 .loc 1 6872 25 view .LVU3702 10500 001a 23F40043 bic r3, r3, #32768 10501 001e 1360 str r3, [r2] 6875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10502 .loc 1 6875 5 is_stmt 1 view .LVU3703 10503 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt 10504 .LVL751: 6882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10505 .loc 1 6882 3 view .LVU3704 6883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10506 .loc 1 6883 1 is_stmt 0 view .LVU3705 10507 0024 F6E7 b .L664 10508 .cfi_endproc 10509 .LFE398: 10511 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10512 .align 1 10513 .weak HAL_I2C_AddrCallback 10514 .syntax unified 10515 .thumb 10516 .thumb_func 10518 HAL_I2C_AddrCallback: 10519 .LVL752: 10520 .LFB369: 4775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10521 .loc 1 4775 1 is_stmt 1 view -0 10522 .cfi_startproc ARM GAS /tmp/ccclMPzv.s page 378 10523 @ args = 0, pretend = 0, frame = 0 10524 @ frame_needed = 0, uses_anonymous_args = 0 10525 @ link register save eliminated. 4777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(TransferDirection); 10526 .loc 1 4777 3 view .LVU3707 4778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(AddrMatchCode); 10527 .loc 1 4778 3 view .LVU3708 4779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10528 .loc 1 4779 3 view .LVU3709 4784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10529 .loc 1 4784 1 is_stmt 0 view .LVU3710 10530 0000 7047 bx lr 10531 .cfi_endproc 10532 .LFE369: 10534 .section .text.I2C_ITAddrCplt,"ax",%progbits 10535 .align 1 10536 .syntax unified 10537 .thumb 10538 .thumb_func 10540 I2C_ITAddrCplt: 10541 .LVL753: 10542 .LFB386: 5910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; 10543 .loc 1 5910 1 is_stmt 1 view -0 10544 .cfi_startproc 10545 @ args = 0, pretend = 0, frame = 0 10546 @ frame_needed = 0, uses_anonymous_args = 0 5910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint8_t transferdirection; 10547 .loc 1 5910 1 is_stmt 0 view .LVU3712 10548 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10549 .LCFI117: 10550 .cfi_def_cfa_offset 24 10551 .cfi_offset 3, -24 10552 .cfi_offset 4, -20 10553 .cfi_offset 5, -16 10554 .cfi_offset 6, -12 10555 .cfi_offset 7, -8 10556 .cfi_offset 14, -4 10557 0002 0446 mov r4, r0 5911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t slaveaddrcode; 10558 .loc 1 5911 3 is_stmt 1 view .LVU3713 5912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd1code; 10559 .loc 1 5912 3 view .LVU3714 5913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t ownadd2code; 10560 .loc 1 5913 3 view .LVU3715 5914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10561 .loc 1 5914 3 view .LVU3716 5917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10562 .loc 1 5917 3 view .LVU3717 5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10563 .loc 1 5920 3 view .LVU3718 5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10564 .loc 1 5920 22 is_stmt 0 view .LVU3719 10565 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10566 .loc 1 5920 6 view .LVU3720 10567 0008 03F02803 and r3, r3, #40 ARM GAS /tmp/ccclMPzv.s page 379 10568 000c 282B cmp r3, #40 10569 000e 06D0 beq .L675 5992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10570 .loc 1 5992 5 is_stmt 1 view .LVU3721 10571 0010 0368 ldr r3, [r0] 10572 0012 0822 movs r2, #8 10573 0014 DA61 str r2, [r3, #28] 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10574 .loc 1 5995 5 view .LVU3722 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10575 .loc 1 5995 5 view .LVU3723 10576 0016 0023 movs r3, #0 10577 0018 80F84030 strb r3, [r0, #64] 5995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10578 .loc 1 5995 5 discriminator 1 view .LVU3724 10579 .LVL754: 10580 .L669: 5997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10581 .loc 1 5997 1 is_stmt 0 view .LVU3725 10582 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10583 .LVL755: 10584 .L675: 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10585 .loc 1 5922 5 is_stmt 1 view .LVU3726 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10586 .loc 1 5922 25 is_stmt 0 view .LVU3727 10587 001e 0368 ldr r3, [r0] 10588 0020 9E69 ldr r6, [r3, #24] 5922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10589 .loc 1 5922 23 view .LVU3728 10590 0022 C6F30046 ubfx r6, r6, #16, #1 10591 .LVL756: 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10592 .loc 1 5923 5 is_stmt 1 view .LVU3729 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10593 .loc 1 5923 25 is_stmt 0 view .LVU3730 10594 0026 9A69 ldr r2, [r3, #24] 10595 0028 120C lsrs r2, r2, #16 5923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10596 .loc 1 5923 23 view .LVU3731 10597 002a 02F0FE05 and r5, r2, #254 10598 .LVL757: 5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10599 .loc 1 5924 5 is_stmt 1 view .LVU3732 5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10600 .loc 1 5924 25 is_stmt 0 view .LVU3733 10601 002e 9A68 ldr r2, [r3, #8] 5924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10602 .loc 1 5924 23 view .LVU3734 10603 0030 C2F30902 ubfx r2, r2, #0, #10 10604 .LVL758: 5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10605 .loc 1 5925 5 is_stmt 1 view .LVU3735 5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10606 .loc 1 5925 25 is_stmt 0 view .LVU3736 10607 0034 DF68 ldr r7, [r3, #12] 5925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 380 10608 .loc 1 5925 23 view .LVU3737 10609 0036 07F0FE07 and r7, r7, #254 10610 .LVL759: 5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10611 .loc 1 5928 5 is_stmt 1 view .LVU3738 5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10612 .loc 1 5928 19 is_stmt 0 view .LVU3739 10613 003a C168 ldr r1, [r0, #12] 10614 .LVL760: 5928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10615 .loc 1 5928 8 view .LVU3740 10616 003c 0229 cmp r1, #2 10617 003e 22D1 bne .L671 5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10618 .loc 1 5930 7 is_stmt 1 view .LVU3741 5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10619 .loc 1 5930 44 is_stmt 0 view .LVU3742 10620 0040 85EAD215 eor r5, r5, r2, lsr #7 10621 .LVL761: 5930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10622 .loc 1 5930 10 view .LVU3743 10623 0044 15F0060F tst r5, #6 10624 0048 10D1 bne .L672 5932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->AddrEventCount++; 10625 .loc 1 5932 9 is_stmt 1 view .LVU3744 10626 .LVL762: 5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10627 .loc 1 5933 9 view .LVU3745 5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10628 .loc 1 5933 13 is_stmt 0 view .LVU3746 10629 004a 816C ldr r1, [r0, #72] 5933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10630 .loc 1 5933 29 view .LVU3747 10631 004c 0131 adds r1, r1, #1 10632 004e 8164 str r1, [r0, #72] 5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10633 .loc 1 5934 9 is_stmt 1 view .LVU3748 5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10634 .loc 1 5934 17 is_stmt 0 view .LVU3749 10635 0050 816C ldr r1, [r0, #72] 5934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10636 .loc 1 5934 12 view .LVU3750 10637 0052 0229 cmp r1, #2 10638 0054 E2D1 bne .L669 5937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10639 .loc 1 5937 11 is_stmt 1 view .LVU3751 5937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10640 .loc 1 5937 32 is_stmt 0 view .LVU3752 10641 0056 0021 movs r1, #0 10642 0058 8164 str r1, [r0, #72] 5940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10643 .loc 1 5940 11 is_stmt 1 view .LVU3753 10644 005a 0820 movs r0, #8 10645 .LVL763: 5940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10646 .loc 1 5940 11 is_stmt 0 view .LVU3754 10647 005c D861 str r0, [r3, #28] ARM GAS /tmp/ccclMPzv.s page 381 5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10648 .loc 1 5943 11 is_stmt 1 view .LVU3755 5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10649 .loc 1 5943 11 view .LVU3756 10650 005e 84F84010 strb r1, [r4, #64] 5943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10651 .loc 1 5943 11 view .LVU3757 5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10652 .loc 1 5949 11 view .LVU3758 10653 0062 3146 mov r1, r6 10654 0064 2046 mov r0, r4 10655 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10656 .LVL764: 5949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10657 .loc 1 5949 11 is_stmt 0 view .LVU3759 10658 006a D7E7 b .L669 10659 .LVL765: 10660 .L672: 5955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10661 .loc 1 5955 9 is_stmt 1 view .LVU3760 5958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10662 .loc 1 5958 9 view .LVU3761 10663 006c 4FF40041 mov r1, #32768 10664 0070 FFF7FEFF bl I2C_Disable_IRQ 10665 .LVL766: 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10666 .loc 1 5961 9 view .LVU3762 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10667 .loc 1 5961 9 view .LVU3763 10668 0074 0023 movs r3, #0 10669 0076 84F84030 strb r3, [r4, #64] 5961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10670 .loc 1 5961 9 view .LVU3764 5967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10671 .loc 1 5967 9 view .LVU3765 10672 007a 3A46 mov r2, r7 10673 007c 3146 mov r1, r6 10674 007e 2046 mov r0, r4 10675 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10676 .LVL767: 10677 0084 CAE7 b .L669 10678 .LVL768: 10679 .L671: 5975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10680 .loc 1 5975 7 view .LVU3766 10681 0086 4FF40041 mov r1, #32768 10682 008a FFF7FEFF bl I2C_Disable_IRQ 10683 .LVL769: 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10684 .loc 1 5978 7 view .LVU3767 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10685 .loc 1 5978 7 view .LVU3768 10686 008e 0023 movs r3, #0 10687 0090 84F84030 strb r3, [r4, #64] 5978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10688 .loc 1 5978 7 view .LVU3769 5984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccclMPzv.s page 382 10689 .loc 1 5984 7 view .LVU3770 10690 0094 2A46 mov r2, r5 10691 0096 3146 mov r1, r6 10692 0098 2046 mov r0, r4 10693 009a FFF7FEFF bl HAL_I2C_AddrCallback 10694 .LVL770: 10695 009e BDE7 b .L669 10696 .cfi_endproc 10697 .LFE386: 10699 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10700 .align 1 10701 .weak HAL_I2C_ListenCpltCallback 10702 .syntax unified 10703 .thumb 10704 .thumb_func 10706 HAL_I2C_ListenCpltCallback: 10707 .LVL771: 10708 .LFB370: 4793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10709 .loc 1 4793 1 view -0 10710 .cfi_startproc 10711 @ args = 0, pretend = 0, frame = 0 10712 @ frame_needed = 0, uses_anonymous_args = 0 10713 @ link register save eliminated. 4795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10714 .loc 1 4795 3 view .LVU3772 4800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10715 .loc 1 4800 1 is_stmt 0 view .LVU3773 10716 0000 7047 bx lr 10717 .cfi_endproc 10718 .LFE370: 10720 .section .text.I2C_ITListenCplt,"ax",%progbits 10721 .align 1 10722 .syntax unified 10723 .thumb 10724 .thumb_func 10726 I2C_ITListenCplt: 10727 .LVL772: 10728 .LFB391: 6491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 10729 .loc 1 6491 1 is_stmt 1 view -0 10730 .cfi_startproc 10731 @ args = 0, pretend = 0, frame = 0 10732 @ frame_needed = 0, uses_anonymous_args = 0 6491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Reset handle parameters */ 10733 .loc 1 6491 1 is_stmt 0 view .LVU3775 10734 0000 10B5 push {r4, lr} 10735 .LCFI118: 10736 .cfi_def_cfa_offset 8 10737 .cfi_offset 4, -8 10738 .cfi_offset 14, -4 10739 0002 0446 mov r4, r0 6493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10740 .loc 1 6493 3 is_stmt 1 view .LVU3776 6493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10741 .loc 1 6493 21 is_stmt 0 view .LVU3777 10742 0004 174B ldr r3, .L680 ARM GAS /tmp/ccclMPzv.s page 383 10743 0006 C362 str r3, [r0, #44] 6494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10744 .loc 1 6494 3 is_stmt 1 view .LVU3778 6494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10745 .loc 1 6494 23 is_stmt 0 view .LVU3779 10746 0008 0023 movs r3, #0 10747 000a 0363 str r3, [r0, #48] 6495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10748 .loc 1 6495 3 is_stmt 1 view .LVU3780 6495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10749 .loc 1 6495 15 is_stmt 0 view .LVU3781 10750 000c 2022 movs r2, #32 10751 000e 80F84120 strb r2, [r0, #65] 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10752 .loc 1 6496 3 is_stmt 1 view .LVU3782 6496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 10753 .loc 1 6496 14 is_stmt 0 view .LVU3783 10754 0012 80F84230 strb r3, [r0, #66] 6497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10755 .loc 1 6497 3 is_stmt 1 view .LVU3784 6497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10756 .loc 1 6497 17 is_stmt 0 view .LVU3785 10757 0016 4363 str r3, [r0, #52] 6500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10758 .loc 1 6500 3 is_stmt 1 view .LVU3786 6500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10759 .loc 1 6500 6 is_stmt 0 view .LVU3787 10760 0018 11F0040F tst r1, #4 10761 001c 13D0 beq .L678 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10762 .loc 1 6503 5 is_stmt 1 view .LVU3788 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10763 .loc 1 6503 36 is_stmt 0 view .LVU3789 10764 001e 0368 ldr r3, [r0] 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10765 .loc 1 6503 46 view .LVU3790 10766 0020 5A6A ldr r2, [r3, #36] 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10767 .loc 1 6503 10 view .LVU3791 10768 0022 436A ldr r3, [r0, #36] 6503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10769 .loc 1 6503 21 view .LVU3792 10770 0024 1A70 strb r2, [r3] 6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10771 .loc 1 6506 5 is_stmt 1 view .LVU3793 6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10772 .loc 1 6506 9 is_stmt 0 view .LVU3794 10773 0026 436A ldr r3, [r0, #36] 6506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10774 .loc 1 6506 19 view .LVU3795 10775 0028 0133 adds r3, r3, #1 10776 002a 4362 str r3, [r0, #36] 6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10777 .loc 1 6508 5 is_stmt 1 view .LVU3796 6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10778 .loc 1 6508 14 is_stmt 0 view .LVU3797 10779 002c 038D ldrh r3, [r0, #40] ARM GAS /tmp/ccclMPzv.s page 384 6508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10780 .loc 1 6508 8 view .LVU3798 10781 002e 53B1 cbz r3, .L678 6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 10782 .loc 1 6510 7 is_stmt 1 view .LVU3799 6510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 10783 .loc 1 6510 21 is_stmt 0 view .LVU3800 10784 0030 013B subs r3, r3, #1 10785 0032 0385 strh r3, [r0, #40] @ movhi 6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10786 .loc 1 6511 7 is_stmt 1 view .LVU3801 6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10787 .loc 1 6511 11 is_stmt 0 view .LVU3802 10788 0034 438D ldrh r3, [r0, #42] 10789 0036 9BB2 uxth r3, r3 6511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10790 .loc 1 6511 22 view .LVU3803 10791 0038 013B subs r3, r3, #1 10792 003a 9BB2 uxth r3, r3 10793 003c 4385 strh r3, [r0, #42] @ movhi 6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10794 .loc 1 6514 7 is_stmt 1 view .LVU3804 6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10795 .loc 1 6514 11 is_stmt 0 view .LVU3805 10796 003e 436C ldr r3, [r0, #68] 6514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 10797 .loc 1 6514 23 view .LVU3806 10798 0040 43F00403 orr r3, r3, #4 10799 0044 4364 str r3, [r0, #68] 10800 .L678: 6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10801 .loc 1 6519 3 is_stmt 1 view .LVU3807 10802 0046 48F20301 movw r1, #32771 10803 .LVL773: 6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10804 .loc 1 6519 3 is_stmt 0 view .LVU3808 10805 004a 2046 mov r0, r4 10806 .LVL774: 6519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10807 .loc 1 6519 3 view .LVU3809 10808 004c FFF7FEFF bl I2C_Disable_IRQ 10809 .LVL775: 6522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10810 .loc 1 6522 3 is_stmt 1 view .LVU3810 10811 0050 2368 ldr r3, [r4] 10812 0052 1022 movs r2, #16 10813 0054 DA61 str r2, [r3, #28] 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10814 .loc 1 6525 3 view .LVU3811 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10815 .loc 1 6525 3 view .LVU3812 10816 0056 0023 movs r3, #0 10817 0058 84F84030 strb r3, [r4, #64] 6525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10818 .loc 1 6525 3 view .LVU3813 6531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10819 .loc 1 6531 3 view .LVU3814 ARM GAS /tmp/ccclMPzv.s page 385 10820 005c 2046 mov r0, r4 10821 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10822 .LVL776: 6533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10823 .loc 1 6533 1 is_stmt 0 view .LVU3815 10824 0062 10BD pop {r4, pc} 10825 .LVL777: 10826 .L681: 6533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10827 .loc 1 6533 1 view .LVU3816 10828 .align 2 10829 .L680: 10830 0064 0000FFFF .word -65536 10831 .cfi_endproc 10832 .LFE391: 10834 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10835 .align 1 10836 .weak HAL_I2C_MemTxCpltCallback 10837 .syntax unified 10838 .thumb 10839 .thumb_func 10841 HAL_I2C_MemTxCpltCallback: 10842 .LVL778: 10843 .LFB371: 4809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10844 .loc 1 4809 1 is_stmt 1 view -0 10845 .cfi_startproc 10846 @ args = 0, pretend = 0, frame = 0 10847 @ frame_needed = 0, uses_anonymous_args = 0 10848 @ link register save eliminated. 4811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10849 .loc 1 4811 3 view .LVU3818 4816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10850 .loc 1 4816 1 is_stmt 0 view .LVU3819 10851 0000 7047 bx lr 10852 .cfi_endproc 10853 .LFE371: 10855 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10856 .align 1 10857 .weak HAL_I2C_MemRxCpltCallback 10858 .syntax unified 10859 .thumb 10860 .thumb_func 10862 HAL_I2C_MemRxCpltCallback: 10863 .LVL779: 10864 .LFB372: 4825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10865 .loc 1 4825 1 is_stmt 1 view -0 10866 .cfi_startproc 10867 @ args = 0, pretend = 0, frame = 0 10868 @ frame_needed = 0, uses_anonymous_args = 0 10869 @ link register save eliminated. 4827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10870 .loc 1 4827 3 view .LVU3821 4832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10871 .loc 1 4832 1 is_stmt 0 view .LVU3822 10872 0000 7047 bx lr ARM GAS /tmp/ccclMPzv.s page 386 10873 .cfi_endproc 10874 .LFE372: 10876 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10877 .align 1 10878 .weak HAL_I2C_ErrorCallback 10879 .syntax unified 10880 .thumb 10881 .thumb_func 10883 HAL_I2C_ErrorCallback: 10884 .LVL780: 10885 .LFB373: 4841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10886 .loc 1 4841 1 is_stmt 1 view -0 10887 .cfi_startproc 10888 @ args = 0, pretend = 0, frame = 0 10889 @ frame_needed = 0, uses_anonymous_args = 0 10890 @ link register save eliminated. 4843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10891 .loc 1 4843 3 view .LVU3824 4848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10892 .loc 1 4848 1 is_stmt 0 view .LVU3825 10893 0000 7047 bx lr 10894 .cfi_endproc 10895 .LFE373: 10897 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10898 .align 1 10899 .weak HAL_I2C_AbortCpltCallback 10900 .syntax unified 10901 .thumb 10902 .thumb_func 10904 HAL_I2C_AbortCpltCallback: 10905 .LVL781: 10906 .LFB374: 4857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10907 .loc 1 4857 1 is_stmt 1 view -0 10908 .cfi_startproc 10909 @ args = 0, pretend = 0, frame = 0 10910 @ frame_needed = 0, uses_anonymous_args = 0 10911 @ link register save eliminated. 4859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10912 .loc 1 4859 3 view .LVU3827 4864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10913 .loc 1 4864 1 is_stmt 0 view .LVU3828 10914 0000 7047 bx lr 10915 .cfi_endproc 10916 .LFE374: 10918 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10919 .align 1 10920 .syntax unified 10921 .thumb 10922 .thumb_func 10924 I2C_TreatErrorCallback: 10925 .LVL782: 10926 .LFB393: 6673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10927 .loc 1 6673 1 is_stmt 1 view -0 10928 .cfi_startproc ARM GAS /tmp/ccclMPzv.s page 387 10929 @ args = 0, pretend = 0, frame = 0 10930 @ frame_needed = 0, uses_anonymous_args = 0 6673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10931 .loc 1 6673 1 is_stmt 0 view .LVU3830 10932 0000 08B5 push {r3, lr} 10933 .LCFI119: 10934 .cfi_def_cfa_offset 8 10935 .cfi_offset 3, -8 10936 .cfi_offset 14, -4 6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10937 .loc 1 6674 3 is_stmt 1 view .LVU3831 6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10938 .loc 1 6674 11 is_stmt 0 view .LVU3832 10939 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10940 0006 DBB2 uxtb r3, r3 6674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 10941 .loc 1 6674 6 view .LVU3833 10942 0008 602B cmp r3, #96 10943 000a 06D0 beq .L690 6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10944 .loc 1 6691 5 is_stmt 1 view .LVU3834 6691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10945 .loc 1 6691 25 is_stmt 0 view .LVU3835 10946 000c 0023 movs r3, #0 10947 000e 0363 str r3, [r0, #48] 6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10948 .loc 1 6694 5 is_stmt 1 view .LVU3836 6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10949 .loc 1 6694 5 view .LVU3837 10950 0010 80F84030 strb r3, [r0, #64] 6694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10951 .loc 1 6694 5 view .LVU3838 6700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10952 .loc 1 6700 5 view .LVU3839 10953 0014 FFF7FEFF bl HAL_I2C_ErrorCallback 10954 .LVL783: 10955 .L686: 6703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10956 .loc 1 6703 1 is_stmt 0 view .LVU3840 10957 0018 08BD pop {r3, pc} 10958 .LVL784: 10959 .L690: 6676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10960 .loc 1 6676 5 is_stmt 1 view .LVU3841 6676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10961 .loc 1 6676 17 is_stmt 0 view .LVU3842 10962 001a 2023 movs r3, #32 10963 001c 80F84130 strb r3, [r0, #65] 6677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10964 .loc 1 6677 5 is_stmt 1 view .LVU3843 6677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10965 .loc 1 6677 25 is_stmt 0 view .LVU3844 10966 0020 0023 movs r3, #0 10967 0022 0363 str r3, [r0, #48] 6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10968 .loc 1 6680 5 is_stmt 1 view .LVU3845 6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 388 10969 .loc 1 6680 5 view .LVU3846 10970 0024 80F84030 strb r3, [r0, #64] 6680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 10971 .loc 1 6680 5 view .LVU3847 6686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10972 .loc 1 6686 5 view .LVU3848 10973 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10974 .LVL785: 6686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10975 .loc 1 6686 5 is_stmt 0 view .LVU3849 10976 002c F4E7 b .L686 10977 .cfi_endproc 10978 .LFE393: 10980 .section .text.I2C_ITError,"ax",%progbits 10981 .align 1 10982 .syntax unified 10983 .thumb 10984 .thumb_func 10986 I2C_ITError: 10987 .LVL786: 10988 .LFB392: 6542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10989 .loc 1 6542 1 is_stmt 1 view -0 10990 .cfi_startproc 10991 @ args = 0, pretend = 0, frame = 0 10992 @ frame_needed = 0, uses_anonymous_args = 0 6542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10993 .loc 1 6542 1 is_stmt 0 view .LVU3851 10994 0000 10B5 push {r4, lr} 10995 .LCFI120: 10996 .cfi_def_cfa_offset 8 10997 .cfi_offset 4, -8 10998 .cfi_offset 14, -4 10999 0002 0446 mov r4, r0 6543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11000 .loc 1 6543 3 is_stmt 1 view .LVU3852 6543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11001 .loc 1 6543 24 is_stmt 0 view .LVU3853 11002 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11003 .LVL787: 6545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11004 .loc 1 6545 3 is_stmt 1 view .LVU3854 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11005 .loc 1 6548 3 view .LVU3855 6548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11006 .loc 1 6548 23 is_stmt 0 view .LVU3856 11007 0008 0022 movs r2, #0 11008 000a 80F84220 strb r2, [r0, #66] 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 11009 .loc 1 6549 3 is_stmt 1 view .LVU3857 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 11010 .loc 1 6549 23 is_stmt 0 view .LVU3858 11011 000e 4548 ldr r0, .L706 11012 .LVL788: 6549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount = 0U; 11013 .loc 1 6549 23 view .LVU3859 11014 0010 E062 str r0, [r4, #44] ARM GAS /tmp/ccclMPzv.s page 389 6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11015 .loc 1 6550 3 is_stmt 1 view .LVU3860 6550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11016 .loc 1 6550 23 is_stmt 0 view .LVU3861 11017 0012 6285 strh r2, [r4, #42] @ movhi 6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11018 .loc 1 6553 3 is_stmt 1 view .LVU3862 6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11019 .loc 1 6553 7 is_stmt 0 view .LVU3863 11020 0014 626C ldr r2, [r4, #68] 6553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11021 .loc 1 6553 19 view .LVU3864 11022 0016 0A43 orrs r2, r2, r1 11023 0018 6264 str r2, [r4, #68] 6556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11024 .loc 1 6556 3 is_stmt 1 view .LVU3865 6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11025 .loc 1 6557 50 is_stmt 0 view .LVU3866 11026 001a 283B subs r3, r3, #40 11027 .LVL789: 6557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11028 .loc 1 6557 50 view .LVU3867 11029 001c DBB2 uxtb r3, r3 11030 .LVL790: 6556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11031 .loc 1 6556 6 view .LVU3868 11032 001e 022B cmp r3, #2 11033 0020 19D8 bhi .L692 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11034 .loc 1 6561 5 is_stmt 1 view .LVU3869 11035 0022 0321 movs r1, #3 11036 .LVL791: 6561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11037 .loc 1 6561 5 is_stmt 0 view .LVU3870 11038 0024 2046 mov r0, r4 11039 0026 FFF7FEFF bl I2C_Disable_IRQ 11040 .LVL792: 6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11041 .loc 1 6564 5 is_stmt 1 view .LVU3871 6564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11042 .loc 1 6564 25 is_stmt 0 view .LVU3872 11043 002a 2823 movs r3, #40 11044 002c 84F84130 strb r3, [r4, #65] 6565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11045 .loc 1 6565 5 is_stmt 1 view .LVU3873 6565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11046 .loc 1 6565 25 is_stmt 0 view .LVU3874 11047 0030 3D4B ldr r3, .L706+4 11048 0032 6363 str r3, [r4, #52] 11049 .L693: 6600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11050 .loc 1 6600 3 is_stmt 1 view .LVU3875 6600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11051 .loc 1 6600 20 is_stmt 0 view .LVU3876 11052 0034 236B ldr r3, [r4, #48] 11053 .LVL793: 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) ARM GAS /tmp/ccclMPzv.s page 390 11054 .loc 1 6602 3 is_stmt 1 view .LVU3877 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11055 .loc 1 6602 12 is_stmt 0 view .LVU3878 11056 0036 A26B ldr r2, [r4, #56] 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11057 .loc 1 6602 6 view .LVU3879 11058 0038 1AB1 cbz r2, .L696 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11059 .loc 1 6602 30 discriminator 1 view .LVU3880 11060 003a 112B cmp r3, #17 11061 003c 30D0 beq .L697 6602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11062 .loc 1 6602 81 discriminator 2 view .LVU3881 11063 003e 212B cmp r3, #33 11064 0040 2ED0 beq .L697 11065 .L696: 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11066 .loc 1 6632 8 is_stmt 1 view .LVU3882 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11067 .loc 1 6632 17 is_stmt 0 view .LVU3883 11068 0042 E26B ldr r2, [r4, #60] 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11069 .loc 1 6632 11 view .LVU3884 11070 0044 1AB1 cbz r2, .L701 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11071 .loc 1 6632 35 discriminator 1 view .LVU3885 11072 0046 122B cmp r3, #18 11073 0048 4BD0 beq .L702 6632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11074 .loc 1 6632 86 discriminator 2 view .LVU3886 11075 004a 222B cmp r3, #34 11076 004c 49D0 beq .L702 11077 .L701: 6663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11078 .loc 1 6663 5 is_stmt 1 view .LVU3887 11079 004e 2046 mov r0, r4 11080 0050 FFF7FEFF bl I2C_TreatErrorCallback 11081 .LVL794: 11082 .L691: 6665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11083 .loc 1 6665 1 is_stmt 0 view .LVU3888 11084 0054 10BD pop {r4, pc} 11085 .LVL795: 11086 .L692: 6570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11087 .loc 1 6570 5 is_stmt 1 view .LVU3889 11088 0056 48F20301 movw r1, #32771 11089 .LVL796: 6570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11090 .loc 1 6570 5 is_stmt 0 view .LVU3890 11091 005a 2046 mov r0, r4 11092 005c FFF7FEFF bl I2C_Disable_IRQ 11093 .LVL797: 6573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11094 .loc 1 6573 5 is_stmt 1 view .LVU3891 11095 0060 2046 mov r0, r4 11096 0062 FFF7FEFF bl I2C_Flush_TXDR ARM GAS /tmp/ccclMPzv.s page 391 11097 .LVL798: 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11098 .loc 1 6577 5 view .LVU3892 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11099 .loc 1 6577 13 is_stmt 0 view .LVU3893 11100 0066 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11101 006a DBB2 uxtb r3, r3 6577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11102 .loc 1 6577 8 view .LVU3894 11103 006c 602B cmp r3, #96 11104 006e 14D0 beq .L694 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11105 .loc 1 6580 7 is_stmt 1 view .LVU3895 6580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11106 .loc 1 6580 27 is_stmt 0 view .LVU3896 11107 0070 2023 movs r3, #32 11108 0072 84F84130 strb r3, [r4, #65] 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11109 .loc 1 6583 7 is_stmt 1 view .LVU3897 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11110 .loc 1 6583 11 is_stmt 0 view .LVU3898 11111 0076 2368 ldr r3, [r4] 11112 0078 9A69 ldr r2, [r3, #24] 6583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11113 .loc 1 6583 10 view .LVU3899 11114 007a 12F0200F tst r2, #32 11115 007e 0CD0 beq .L694 6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11116 .loc 1 6585 9 is_stmt 1 view .LVU3900 6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11117 .loc 1 6585 13 is_stmt 0 view .LVU3901 11118 0080 9A69 ldr r2, [r3, #24] 6585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11119 .loc 1 6585 12 view .LVU3902 11120 0082 12F0100F tst r2, #16 11121 0086 05D0 beq .L695 6587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 11122 .loc 1 6587 11 is_stmt 1 view .LVU3903 11123 0088 1022 movs r2, #16 11124 008a DA61 str r2, [r3, #28] 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11125 .loc 1 6588 11 view .LVU3904 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11126 .loc 1 6588 15 is_stmt 0 view .LVU3905 11127 008c 636C ldr r3, [r4, #68] 6588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11128 .loc 1 6588 27 view .LVU3906 11129 008e 43F00403 orr r3, r3, #4 11130 0092 6364 str r3, [r4, #68] 11131 .L695: 6592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11132 .loc 1 6592 9 is_stmt 1 view .LVU3907 11133 0094 2368 ldr r3, [r4] 11134 0096 2022 movs r2, #32 11135 0098 DA61 str r2, [r3, #28] 11136 .L694: 6596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 392 11137 .loc 1 6596 5 view .LVU3908 6596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11138 .loc 1 6596 25 is_stmt 0 view .LVU3909 11139 009a 0023 movs r3, #0 11140 009c 6363 str r3, [r4, #52] 11141 009e C9E7 b .L693 11142 .LVL799: 11143 .L697: 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11144 .loc 1 6605 5 is_stmt 1 view .LVU3910 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11145 .loc 1 6605 14 is_stmt 0 view .LVU3911 11146 00a0 2368 ldr r3, [r4] 11147 .LVL800: 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11148 .loc 1 6605 24 view .LVU3912 11149 00a2 1A68 ldr r2, [r3] 6605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11150 .loc 1 6605 8 view .LVU3913 11151 00a4 12F4804F tst r2, #16384 11152 00a8 03D0 beq .L698 6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11153 .loc 1 6607 7 is_stmt 1 view .LVU3914 6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11154 .loc 1 6607 21 is_stmt 0 view .LVU3915 11155 00aa 1A68 ldr r2, [r3] 6607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11156 .loc 1 6607 27 view .LVU3916 11157 00ac 22F48042 bic r2, r2, #16384 11158 00b0 1A60 str r2, [r3] 11159 .L698: 6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11160 .loc 1 6610 5 is_stmt 1 view .LVU3917 6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11161 .loc 1 6610 9 is_stmt 0 view .LVU3918 11162 00b2 A06B ldr r0, [r4, #56] 11163 00b4 FFF7FEFF bl HAL_DMA_GetState 11164 .LVL801: 6610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11165 .loc 1 6610 8 discriminator 1 view .LVU3919 11166 00b8 0128 cmp r0, #1 11167 00ba 0ED0 beq .L699 6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11168 .loc 1 6614 7 is_stmt 1 view .LVU3920 6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11169 .loc 1 6614 11 is_stmt 0 view .LVU3921 11170 00bc A36B ldr r3, [r4, #56] 6614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11171 .loc 1 6614 39 view .LVU3922 11172 00be 1B4A ldr r2, .L706+8 11173 00c0 9A63 str r2, [r3, #56] 6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11174 .loc 1 6617 7 is_stmt 1 view .LVU3923 6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11175 .loc 1 6617 7 view .LVU3924 11176 00c2 0023 movs r3, #0 11177 00c4 84F84030 strb r3, [r4, #64] ARM GAS /tmp/ccclMPzv.s page 393 6617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11178 .loc 1 6617 7 view .LVU3925 6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11179 .loc 1 6620 7 view .LVU3926 6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11180 .loc 1 6620 11 is_stmt 0 view .LVU3927 11181 00c8 A06B ldr r0, [r4, #56] 11182 00ca FFF7FEFF bl HAL_DMA_Abort_IT 11183 .LVL802: 6620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11184 .loc 1 6620 10 discriminator 1 view .LVU3928 11185 00ce 0028 cmp r0, #0 11186 00d0 C0D0 beq .L691 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11187 .loc 1 6623 9 is_stmt 1 view .LVU3929 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11188 .loc 1 6623 13 is_stmt 0 view .LVU3930 11189 00d2 A06B ldr r0, [r4, #56] 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11190 .loc 1 6623 21 view .LVU3931 11191 00d4 836B ldr r3, [r0, #56] 6623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11192 .loc 1 6623 9 view .LVU3932 11193 00d6 9847 blx r3 11194 .LVL803: 11195 00d8 BCE7 b .L691 11196 .L699: 6628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11197 .loc 1 6628 7 is_stmt 1 view .LVU3933 11198 00da 2046 mov r0, r4 11199 00dc FFF7FEFF bl I2C_TreatErrorCallback 11200 .LVL804: 11201 00e0 B8E7 b .L691 11202 .LVL805: 11203 .L702: 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11204 .loc 1 6635 5 view .LVU3934 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11205 .loc 1 6635 14 is_stmt 0 view .LVU3935 11206 00e2 2368 ldr r3, [r4] 11207 .LVL806: 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11208 .loc 1 6635 24 view .LVU3936 11209 00e4 1A68 ldr r2, [r3] 6635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11210 .loc 1 6635 8 view .LVU3937 11211 00e6 12F4004F tst r2, #32768 11212 00ea 03D0 beq .L703 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11213 .loc 1 6637 7 is_stmt 1 view .LVU3938 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11214 .loc 1 6637 21 is_stmt 0 view .LVU3939 11215 00ec 1A68 ldr r2, [r3] 6637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11216 .loc 1 6637 27 view .LVU3940 11217 00ee 22F40042 bic r2, r2, #32768 11218 00f2 1A60 str r2, [r3] ARM GAS /tmp/ccclMPzv.s page 394 11219 .L703: 6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11220 .loc 1 6640 5 is_stmt 1 view .LVU3941 6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11221 .loc 1 6640 9 is_stmt 0 view .LVU3942 11222 00f4 E06B ldr r0, [r4, #60] 11223 00f6 FFF7FEFF bl HAL_DMA_GetState 11224 .LVL807: 6640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11225 .loc 1 6640 8 discriminator 1 view .LVU3943 11226 00fa 0128 cmp r0, #1 11227 00fc 0ED0 beq .L704 6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11228 .loc 1 6644 7 is_stmt 1 view .LVU3944 6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11229 .loc 1 6644 11 is_stmt 0 view .LVU3945 11230 00fe E36B ldr r3, [r4, #60] 6644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11231 .loc 1 6644 39 view .LVU3946 11232 0100 0A4A ldr r2, .L706+8 11233 0102 9A63 str r2, [r3, #56] 6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11234 .loc 1 6647 7 is_stmt 1 view .LVU3947 6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11235 .loc 1 6647 7 view .LVU3948 11236 0104 0023 movs r3, #0 11237 0106 84F84030 strb r3, [r4, #64] 6647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11238 .loc 1 6647 7 view .LVU3949 6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11239 .loc 1 6650 7 view .LVU3950 6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11240 .loc 1 6650 11 is_stmt 0 view .LVU3951 11241 010a E06B ldr r0, [r4, #60] 11242 010c FFF7FEFF bl HAL_DMA_Abort_IT 11243 .LVL808: 6650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11244 .loc 1 6650 10 discriminator 1 view .LVU3952 11245 0110 0028 cmp r0, #0 11246 0112 9FD0 beq .L691 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11247 .loc 1 6653 9 is_stmt 1 view .LVU3953 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11248 .loc 1 6653 13 is_stmt 0 view .LVU3954 11249 0114 E06B ldr r0, [r4, #60] 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11250 .loc 1 6653 21 view .LVU3955 11251 0116 836B ldr r3, [r0, #56] 6653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11252 .loc 1 6653 9 view .LVU3956 11253 0118 9847 blx r3 11254 .LVL809: 11255 011a 9BE7 b .L691 11256 .L704: 6658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11257 .loc 1 6658 7 is_stmt 1 view .LVU3957 11258 011c 2046 mov r0, r4 ARM GAS /tmp/ccclMPzv.s page 395 11259 011e FFF7FEFF bl I2C_TreatErrorCallback 11260 .LVL810: 11261 0122 97E7 b .L691 11262 .L707: 11263 .align 2 11264 .L706: 11265 0124 0000FFFF .word -65536 11266 0128 00000000 .word I2C_Slave_ISR_IT 11267 012c 00000000 .word I2C_DMAAbort 11268 .cfi_endproc 11269 .LFE392: 11271 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11272 .align 1 11273 .syntax unified 11274 .thumb 11275 .thumb_func 11277 I2C_ITSlaveCplt: 11278 .LVL811: 11279 .LFB390: 6275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11280 .loc 1 6275 1 view -0 11281 .cfi_startproc 11282 @ args = 0, pretend = 0, frame = 0 11283 @ 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); 11284 .loc 1 6275 1 is_stmt 0 view .LVU3959 11285 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11286 .LCFI121: 11287 .cfi_def_cfa_offset 24 11288 .cfi_offset 3, -24 11289 .cfi_offset 4, -20 11290 .cfi_offset 5, -16 11291 .cfi_offset 6, -12 11292 .cfi_offset 7, -8 11293 .cfi_offset 14, -4 11294 0002 0446 mov r4, r0 11295 0004 0D46 mov r5, r1 6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11296 .loc 1 6276 3 is_stmt 1 view .LVU3960 6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11297 .loc 1 6276 26 is_stmt 0 view .LVU3961 11298 0006 0268 ldr r2, [r0] 6276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11299 .loc 1 6276 12 view .LVU3962 11300 0008 1668 ldr r6, [r2] 11301 .LVL812: 6277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11302 .loc 1 6277 3 is_stmt 1 view .LVU3963 6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11303 .loc 1 6278 3 view .LVU3964 6278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11304 .loc 1 6278 12 is_stmt 0 view .LVU3965 11305 000a C76A ldr r7, [r0, #44] 11306 .LVL813: 6279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11307 .loc 1 6279 3 is_stmt 1 view .LVU3966 6279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 396 11308 .loc 1 6279 24 is_stmt 0 view .LVU3967 11309 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11310 .LVL814: 6282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11311 .loc 1 6282 3 is_stmt 1 view .LVU3968 11312 0010 2021 movs r1, #32 11313 .LVL815: 6282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11314 .loc 1 6282 3 is_stmt 0 view .LVU3969 11315 0012 D161 str r1, [r2, #28] 6285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11316 .loc 1 6285 3 is_stmt 1 view .LVU3970 11317 0014 213B subs r3, r3, #33 11318 .LVL816: 6285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11319 .loc 1 6285 3 is_stmt 0 view .LVU3971 11320 0016 092B cmp r3, #9 11321 0018 0CD8 bhi .L709 11322 001a DFE803F0 tbb [pc, r3] 11323 .L711: 11324 001e 05 .byte (.L712-.L711)/2 11325 001f 7A .byte (.L710-.L711)/2 11326 0020 0B .byte (.L709-.L711)/2 11327 0021 0B .byte (.L709-.L711)/2 11328 0022 0B .byte (.L709-.L711)/2 11329 0023 0B .byte (.L709-.L711)/2 11330 0024 0B .byte (.L709-.L711)/2 11331 0025 81 .byte (.L713-.L711)/2 11332 0026 05 .byte (.L712-.L711)/2 11333 0027 7A .byte (.L710-.L711)/2 11334 .p2align 1 11335 .L712: 6287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11336 .loc 1 6287 5 is_stmt 1 view .LVU3972 11337 0028 48F20101 movw r1, #32769 11338 002c FFF7FEFF bl I2C_Disable_IRQ 11339 .LVL817: 6288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11340 .loc 1 6288 5 view .LVU3973 6288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11341 .loc 1 6288 25 is_stmt 0 view .LVU3974 11342 0030 2123 movs r3, #33 11343 0032 2363 str r3, [r4, #48] 11344 .L709: 6303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11345 .loc 1 6303 3 is_stmt 1 view .LVU3975 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11346 .loc 1 6306 3 view .LVU3976 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11347 .loc 1 6306 7 is_stmt 0 view .LVU3977 11348 0034 2268 ldr r2, [r4] 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11349 .loc 1 6306 17 view .LVU3978 11350 0036 5368 ldr r3, [r2, #4] 6306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11351 .loc 1 6306 23 view .LVU3979 11352 0038 43F40043 orr r3, r3, #32768 ARM GAS /tmp/ccclMPzv.s page 397 11353 003c 5360 str r3, [r2, #4] 6309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11354 .loc 1 6309 3 is_stmt 1 view .LVU3980 11355 003e 2268 ldr r2, [r4] 11356 0040 5368 ldr r3, [r2, #4] 11357 0042 23F0FF73 bic r3, r3, #33423360 11358 0046 23F48B33 bic r3, r3, #71168 11359 004a 23F4FF73 bic r3, r3, #510 11360 004e 23F00103 bic r3, r3, #1 11361 0052 5360 str r3, [r2, #4] 6312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11362 .loc 1 6312 3 view .LVU3981 11363 0054 2046 mov r0, r4 11364 0056 FFF7FEFF bl I2C_Flush_TXDR 11365 .LVL818: 6315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11366 .loc 1 6315 3 view .LVU3982 6315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11367 .loc 1 6315 6 is_stmt 0 view .LVU3983 11368 005a 16F4804F tst r6, #16384 11369 005e 66D0 beq .L714 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11370 .loc 1 6318 5 is_stmt 1 view .LVU3984 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11371 .loc 1 6318 9 is_stmt 0 view .LVU3985 11372 0060 2268 ldr r2, [r4] 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11373 .loc 1 6318 19 view .LVU3986 11374 0062 1368 ldr r3, [r2] 6318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11375 .loc 1 6318 25 view .LVU3987 11376 0064 23F48043 bic r3, r3, #16384 11377 0068 1360 str r3, [r2] 6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11378 .loc 1 6320 5 is_stmt 1 view .LVU3988 6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11379 .loc 1 6320 13 is_stmt 0 view .LVU3989 11380 006a A36B ldr r3, [r4, #56] 6320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11381 .loc 1 6320 8 view .LVU3990 11382 006c 1BB1 cbz r3, .L715 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11383 .loc 1 6322 7 is_stmt 1 view .LVU3991 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11384 .loc 1 6322 35 is_stmt 0 view .LVU3992 11385 006e 1B68 ldr r3, [r3] 11386 0070 5B68 ldr r3, [r3, #4] 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11387 .loc 1 6322 25 view .LVU3993 11388 0072 9BB2 uxth r3, r3 6322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11389 .loc 1 6322 23 view .LVU3994 11390 0074 6385 strh r3, [r4, #42] @ movhi 11391 .L715: 6338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11392 .loc 1 6338 3 is_stmt 1 view .LVU3995 6341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 398 11393 .loc 1 6341 3 view .LVU3996 6341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11394 .loc 1 6341 6 is_stmt 0 view .LVU3997 11395 0076 15F0040F tst r5, #4 11396 007a 11D0 beq .L716 6344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11397 .loc 1 6344 5 is_stmt 1 view .LVU3998 6344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11398 .loc 1 6344 16 is_stmt 0 view .LVU3999 11399 007c 25F00405 bic r5, r5, #4 11400 .LVL819: 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11401 .loc 1 6347 5 is_stmt 1 view .LVU4000 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11402 .loc 1 6347 36 is_stmt 0 view .LVU4001 11403 0080 2368 ldr r3, [r4] 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11404 .loc 1 6347 46 view .LVU4002 11405 0082 5A6A ldr r2, [r3, #36] 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11406 .loc 1 6347 10 view .LVU4003 11407 0084 636A ldr r3, [r4, #36] 6347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11408 .loc 1 6347 21 view .LVU4004 11409 0086 1A70 strb r2, [r3] 6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11410 .loc 1 6350 5 is_stmt 1 view .LVU4005 6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11411 .loc 1 6350 9 is_stmt 0 view .LVU4006 11412 0088 636A ldr r3, [r4, #36] 6350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11413 .loc 1 6350 19 view .LVU4007 11414 008a 0133 adds r3, r3, #1 11415 008c 6362 str r3, [r4, #36] 6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11416 .loc 1 6352 5 is_stmt 1 view .LVU4008 6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11417 .loc 1 6352 14 is_stmt 0 view .LVU4009 11418 008e 238D ldrh r3, [r4, #40] 6352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11419 .loc 1 6352 8 view .LVU4010 11420 0090 33B1 cbz r3, .L716 6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11421 .loc 1 6354 7 is_stmt 1 view .LVU4011 6354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11422 .loc 1 6354 21 is_stmt 0 view .LVU4012 11423 0092 013B subs r3, r3, #1 11424 0094 2385 strh r3, [r4, #40] @ movhi 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11425 .loc 1 6355 7 is_stmt 1 view .LVU4013 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11426 .loc 1 6355 11 is_stmt 0 view .LVU4014 11427 0096 638D ldrh r3, [r4, #42] 11428 0098 9BB2 uxth r3, r3 6355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11429 .loc 1 6355 22 view .LVU4015 11430 009a 013B subs r3, r3, #1 ARM GAS /tmp/ccclMPzv.s page 399 11431 009c 9BB2 uxth r3, r3 11432 009e 6385 strh r3, [r4, #42] @ movhi 11433 .L716: 6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11434 .loc 1 6360 3 is_stmt 1 view .LVU4016 6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11435 .loc 1 6360 11 is_stmt 0 view .LVU4017 11436 00a0 638D ldrh r3, [r4, #42] 11437 00a2 9BB2 uxth r3, r3 6360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11438 .loc 1 6360 6 view .LVU4018 11439 00a4 1BB1 cbz r3, .L717 6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11440 .loc 1 6363 5 is_stmt 1 view .LVU4019 6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11441 .loc 1 6363 9 is_stmt 0 view .LVU4020 11442 00a6 636C ldr r3, [r4, #68] 6363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11443 .loc 1 6363 21 view .LVU4021 11444 00a8 43F00403 orr r3, r3, #4 11445 00ac 6364 str r3, [r4, #68] 11446 .L717: 6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11447 .loc 1 6366 3 is_stmt 1 view .LVU4022 6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11448 .loc 1 6366 6 is_stmt 0 view .LVU4023 11449 00ae 15F0100F tst r5, #16 11450 00b2 13D0 beq .L718 6366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11451 .loc 1 6366 58 discriminator 1 view .LVU4024 11452 00b4 16F0100F tst r6, #16 11453 00b8 10D0 beq .L718 6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11454 .loc 1 6373 5 is_stmt 1 view .LVU4025 6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11455 .loc 1 6373 13 is_stmt 0 view .LVU4026 11456 00ba 638D ldrh r3, [r4, #42] 11457 00bc 9BB2 uxth r3, r3 6373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11458 .loc 1 6373 8 view .LVU4027 11459 00be 002B cmp r3, #0 11460 00c0 5AD1 bne .L719 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11461 .loc 1 6375 7 is_stmt 1 view .LVU4028 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11462 .loc 1 6375 16 is_stmt 0 view .LVU4029 11463 00c2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11464 00c6 DBB2 uxtb r3, r3 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11465 .loc 1 6375 10 view .LVU4030 11466 00c8 282B cmp r3, #40 11467 00ca 40D0 beq .L729 11468 .L720: 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11469 .loc 1 6382 12 is_stmt 1 view .LVU4031 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11470 .loc 1 6382 21 is_stmt 0 view .LVU4032 ARM GAS /tmp/ccclMPzv.s page 400 11471 00cc 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11472 00d0 DBB2 uxtb r3, r3 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11473 .loc 1 6382 15 view .LVU4033 11474 00d2 292B cmp r3, #41 11475 00d4 43D0 beq .L730 11476 .L721: 6397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11477 .loc 1 6397 9 is_stmt 1 view .LVU4034 11478 00d6 2368 ldr r3, [r4] 11479 00d8 1022 movs r2, #16 11480 00da DA61 str r2, [r3, #28] 11481 .L718: 6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 11482 .loc 1 6417 3 view .LVU4035 6417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferISR = NULL; 11483 .loc 1 6417 14 is_stmt 0 view .LVU4036 11484 00dc 0023 movs r3, #0 11485 00de 84F84230 strb r3, [r4, #66] 6418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11486 .loc 1 6418 3 is_stmt 1 view .LVU4037 6418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11487 .loc 1 6418 17 is_stmt 0 view .LVU4038 11488 00e2 6363 str r3, [r4, #52] 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11489 .loc 1 6420 3 is_stmt 1 view .LVU4039 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11490 .loc 1 6420 11 is_stmt 0 view .LVU4040 11491 00e4 636C ldr r3, [r4, #68] 6420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11492 .loc 1 6420 6 view .LVU4041 11493 00e6 002B cmp r3, #0 11494 00e8 56D1 bne .L731 6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11495 .loc 1 6432 8 is_stmt 1 view .LVU4042 6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11496 .loc 1 6432 16 is_stmt 0 view .LVU4043 11497 00ea E36A ldr r3, [r4, #44] 6432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11498 .loc 1 6432 11 view .LVU4044 11499 00ec 13F5803F cmn r3, #65536 11500 00f0 60D1 bne .L732 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11501 .loc 1 6452 8 is_stmt 1 view .LVU4045 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11502 .loc 1 6452 16 is_stmt 0 view .LVU4046 11503 00f2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11504 00f6 DBB2 uxtb r3, r3 6452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11505 .loc 1 6452 11 view .LVU4047 11506 00f8 222B cmp r3, #34 11507 00fa 6BD0 beq .L733 6469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11508 .loc 1 6469 5 is_stmt 1 view .LVU4048 6469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11509 .loc 1 6469 17 is_stmt 0 view .LVU4049 11510 00fc 2023 movs r3, #32 ARM GAS /tmp/ccclMPzv.s page 401 11511 00fe 84F84130 strb r3, [r4, #65] 6470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11512 .loc 1 6470 5 is_stmt 1 view .LVU4050 6470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11513 .loc 1 6470 25 is_stmt 0 view .LVU4051 11514 0102 0023 movs r3, #0 11515 0104 2363 str r3, [r4, #48] 6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11516 .loc 1 6473 5 is_stmt 1 view .LVU4052 6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11517 .loc 1 6473 5 view .LVU4053 11518 0106 84F84030 strb r3, [r4, #64] 6473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11519 .loc 1 6473 5 view .LVU4054 6479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11520 .loc 1 6479 5 view .LVU4055 11521 010a 2046 mov r0, r4 11522 010c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 11523 .LVL820: 6482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11524 .loc 1 6482 1 is_stmt 0 view .LVU4056 11525 0110 5FE0 b .L708 11526 .LVL821: 11527 .L710: 6292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11528 .loc 1 6292 5 is_stmt 1 view .LVU4057 11529 0112 48F20201 movw r1, #32770 11530 0116 FFF7FEFF bl I2C_Disable_IRQ 11531 .LVL822: 6293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11532 .loc 1 6293 5 view .LVU4058 6293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11533 .loc 1 6293 25 is_stmt 0 view .LVU4059 11534 011a 2223 movs r3, #34 11535 011c 2363 str r3, [r4, #48] 11536 011e 89E7 b .L709 11537 .LVL823: 11538 .L713: 6297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11539 .loc 1 6297 5 is_stmt 1 view .LVU4060 11540 0120 48F20301 movw r1, #32771 11541 0124 FFF7FEFF bl I2C_Disable_IRQ 11542 .LVL824: 6298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11543 .loc 1 6298 5 view .LVU4061 6298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11544 .loc 1 6298 25 is_stmt 0 view .LVU4062 11545 0128 0023 movs r3, #0 11546 012a 2363 str r3, [r4, #48] 11547 012c 82E7 b .L709 11548 .L714: 6325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11549 .loc 1 6325 8 is_stmt 1 view .LVU4063 6325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11550 .loc 1 6325 11 is_stmt 0 view .LVU4064 11551 012e 16F4004F tst r6, #32768 11552 0132 A0D0 beq .L715 ARM GAS /tmp/ccclMPzv.s page 402 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11553 .loc 1 6328 5 is_stmt 1 view .LVU4065 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11554 .loc 1 6328 9 is_stmt 0 view .LVU4066 11555 0134 2268 ldr r2, [r4] 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11556 .loc 1 6328 19 view .LVU4067 11557 0136 1368 ldr r3, [r2] 6328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11558 .loc 1 6328 25 view .LVU4068 11559 0138 23F40043 bic r3, r3, #32768 11560 013c 1360 str r3, [r2] 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11561 .loc 1 6330 5 is_stmt 1 view .LVU4069 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11562 .loc 1 6330 13 is_stmt 0 view .LVU4070 11563 013e E36B ldr r3, [r4, #60] 6330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11564 .loc 1 6330 8 view .LVU4071 11565 0140 002B cmp r3, #0 11566 0142 98D0 beq .L715 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11567 .loc 1 6332 7 is_stmt 1 view .LVU4072 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11568 .loc 1 6332 35 is_stmt 0 view .LVU4073 11569 0144 1B68 ldr r3, [r3] 11570 0146 5B68 ldr r3, [r3, #4] 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11571 .loc 1 6332 25 view .LVU4074 11572 0148 9BB2 uxth r3, r3 6332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11573 .loc 1 6332 23 view .LVU4075 11574 014a 6385 strh r3, [r4, #42] @ movhi 11575 014c 93E7 b .L715 11576 .LVL825: 11577 .L729: 6375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11578 .loc 1 6375 49 discriminator 1 view .LVU4076 11579 014e B7F1007F cmp r7, #33554432 11580 0152 BBD1 bne .L720 6380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11581 .loc 1 6380 9 is_stmt 1 view .LVU4077 11582 0154 2946 mov r1, r5 11583 0156 2046 mov r0, r4 11584 0158 FFF7FEFF bl I2C_ITListenCplt 11585 .LVL826: 11586 015c BEE7 b .L718 11587 .L730: 6382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11588 .loc 1 6382 62 is_stmt 0 discriminator 1 view .LVU4078 11589 015e 17F5803F cmn r7, #65536 11590 0162 B8D0 beq .L721 6385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11591 .loc 1 6385 9 is_stmt 1 view .LVU4079 11592 0164 2368 ldr r3, [r4] 11593 0166 1022 movs r2, #16 11594 0168 DA61 str r2, [r3, #28] ARM GAS /tmp/ccclMPzv.s page 403 6388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11595 .loc 1 6388 9 view .LVU4080 11596 016a 2046 mov r0, r4 11597 016c FFF7FEFF bl I2C_Flush_TXDR 11598 .LVL827: 6392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11599 .loc 1 6392 9 view .LVU4081 11600 0170 2046 mov r0, r4 11601 0172 FFF7FEFF bl I2C_ITSlaveSeqCplt 11602 .LVL828: 11603 0176 B1E7 b .L718 11604 .L719: 6404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11605 .loc 1 6404 7 view .LVU4082 11606 0178 2368 ldr r3, [r4] 11607 017a 1022 movs r2, #16 11608 017c DA61 str r2, [r3, #28] 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11609 .loc 1 6407 7 view .LVU4083 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11610 .loc 1 6407 11 is_stmt 0 view .LVU4084 11611 017e 636C ldr r3, [r4, #68] 6407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11612 .loc 1 6407 23 view .LVU4085 11613 0180 43F00403 orr r3, r3, #4 11614 0184 6364 str r3, [r4, #68] 6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11615 .loc 1 6409 7 is_stmt 1 view .LVU4086 6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11616 .loc 1 6409 10 is_stmt 0 view .LVU4087 11617 0186 17B1 cbz r7, .L722 6409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11618 .loc 1 6409 43 discriminator 1 view .LVU4088 11619 0188 B7F1807F cmp r7, #16777216 11620 018c A6D1 bne .L718 11621 .L722: 6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11622 .loc 1 6412 9 is_stmt 1 view .LVU4089 6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11623 .loc 1 6412 31 is_stmt 0 view .LVU4090 11624 018e 616C ldr r1, [r4, #68] 6412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11625 .loc 1 6412 9 view .LVU4091 11626 0190 2046 mov r0, r4 11627 0192 FFF7FEFF bl I2C_ITError 11628 .LVL829: 11629 0196 A1E7 b .L718 11630 .L731: 6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11631 .loc 1 6423 5 is_stmt 1 view .LVU4092 6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11632 .loc 1 6423 27 is_stmt 0 view .LVU4093 11633 0198 616C ldr r1, [r4, #68] 6423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11634 .loc 1 6423 5 view .LVU4094 11635 019a 2046 mov r0, r4 11636 019c FFF7FEFF bl I2C_ITError ARM GAS /tmp/ccclMPzv.s page 404 11637 .LVL830: 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11638 .loc 1 6426 5 is_stmt 1 view .LVU4095 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11639 .loc 1 6426 13 is_stmt 0 view .LVU4096 11640 01a0 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11641 01a4 DBB2 uxtb r3, r3 6426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11642 .loc 1 6426 8 view .LVU4097 11643 01a6 282B cmp r3, #40 11644 01a8 13D1 bne .L708 6429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11645 .loc 1 6429 7 is_stmt 1 view .LVU4098 11646 01aa 2946 mov r1, r5 11647 01ac 2046 mov r0, r4 11648 01ae FFF7FEFF bl I2C_ITListenCplt 11649 .LVL831: 11650 01b2 0EE0 b .L708 11651 .L732: 6435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11652 .loc 1 6435 5 view .LVU4099 11653 01b4 2046 mov r0, r4 11654 01b6 FFF7FEFF bl I2C_ITSlaveSeqCplt 11655 .LVL832: 6437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11656 .loc 1 6437 5 view .LVU4100 6437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11657 .loc 1 6437 23 is_stmt 0 view .LVU4101 11658 01ba 0C4B ldr r3, .L734 11659 01bc E362 str r3, [r4, #44] 6438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11660 .loc 1 6438 5 is_stmt 1 view .LVU4102 6438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11661 .loc 1 6438 17 is_stmt 0 view .LVU4103 11662 01be 2023 movs r3, #32 11663 01c0 84F84130 strb r3, [r4, #65] 6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11664 .loc 1 6439 5 is_stmt 1 view .LVU4104 6439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11665 .loc 1 6439 25 is_stmt 0 view .LVU4105 11666 01c4 0023 movs r3, #0 11667 01c6 2363 str r3, [r4, #48] 6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11668 .loc 1 6442 5 is_stmt 1 view .LVU4106 6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11669 .loc 1 6442 5 view .LVU4107 11670 01c8 84F84030 strb r3, [r4, #64] 6442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11671 .loc 1 6442 5 view .LVU4108 6448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11672 .loc 1 6448 5 view .LVU4109 11673 01cc 2046 mov r0, r4 11674 01ce FFF7FEFF bl HAL_I2C_ListenCpltCallback 11675 .LVL833: 11676 .L708: 6482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11677 .loc 1 6482 1 is_stmt 0 view .LVU4110 ARM GAS /tmp/ccclMPzv.s page 405 11678 01d2 F8BD pop {r3, r4, r5, r6, r7, pc} 11679 .LVL834: 11680 .L733: 6454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11681 .loc 1 6454 5 is_stmt 1 view .LVU4111 6454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11682 .loc 1 6454 17 is_stmt 0 view .LVU4112 11683 01d4 2023 movs r3, #32 11684 01d6 84F84130 strb r3, [r4, #65] 6455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11685 .loc 1 6455 5 is_stmt 1 view .LVU4113 6455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11686 .loc 1 6455 25 is_stmt 0 view .LVU4114 11687 01da 0023 movs r3, #0 11688 01dc 2363 str r3, [r4, #48] 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11689 .loc 1 6458 5 is_stmt 1 view .LVU4115 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11690 .loc 1 6458 5 view .LVU4116 11691 01de 84F84030 strb r3, [r4, #64] 6458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11692 .loc 1 6458 5 view .LVU4117 6464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11693 .loc 1 6464 5 view .LVU4118 11694 01e2 2046 mov r0, r4 11695 01e4 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11696 .LVL835: 11697 01e8 F3E7 b .L708 11698 .L735: 11699 01ea 00BF .align 2 11700 .L734: 11701 01ec 0000FFFF .word -65536 11702 .cfi_endproc 11703 .LFE390: 11705 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11706 .align 1 11707 .syntax unified 11708 .thumb 11709 .thumb_func 11711 I2C_Slave_ISR_IT: 11712 .LVL836: 11713 .LFB380: 5235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11714 .loc 1 5235 1 view -0 11715 .cfi_startproc 11716 @ args = 0, pretend = 0, frame = 0 11717 @ frame_needed = 0, uses_anonymous_args = 0 5235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11718 .loc 1 5235 1 is_stmt 0 view .LVU4120 11719 0000 10B5 push {r4, lr} 11720 .LCFI122: 11721 .cfi_def_cfa_offset 8 11722 .cfi_offset 4, -8 11723 .cfi_offset 14, -4 11724 0002 0446 mov r4, r0 5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11725 .loc 1 5236 3 is_stmt 1 view .LVU4121 ARM GAS /tmp/ccclMPzv.s page 406 5236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11726 .loc 1 5236 12 is_stmt 0 view .LVU4122 11727 0004 C06A ldr r0, [r0, #44] 11728 .LVL837: 5237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11729 .loc 1 5237 3 is_stmt 1 view .LVU4123 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11730 .loc 1 5240 3 view .LVU4124 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11731 .loc 1 5240 3 view .LVU4125 11732 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 11733 000a 012B cmp r3, #1 11734 000c 00F09A80 beq .L750 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11735 .loc 1 5240 3 discriminator 2 view .LVU4126 11736 0010 0123 movs r3, #1 11737 0012 84F84030 strb r3, [r4, #64] 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11738 .loc 1 5240 3 discriminator 2 view .LVU4127 5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11739 .loc 1 5243 3 view .LVU4128 5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11740 .loc 1 5243 6 is_stmt 0 view .LVU4129 11741 0016 11F0200F tst r1, #32 11742 001a 02D0 beq .L738 5243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11743 .loc 1 5243 61 discriminator 1 view .LVU4130 11744 001c 12F0200F tst r2, #32 11745 0020 16D1 bne .L752 11746 .L738: 5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11747 .loc 1 5249 8 is_stmt 1 view .LVU4131 5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11748 .loc 1 5249 11 is_stmt 0 view .LVU4132 11749 0022 11F0100F tst r1, #16 11750 0026 3ED0 beq .L740 5249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11751 .loc 1 5249 63 discriminator 1 view .LVU4133 11752 0028 12F0100F tst r2, #16 11753 002c 3BD0 beq .L740 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11754 .loc 1 5256 5 is_stmt 1 view .LVU4134 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11755 .loc 1 5256 13 is_stmt 0 view .LVU4135 11756 002e 638D ldrh r3, [r4, #42] 11757 0030 9BB2 uxth r3, r3 5256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11758 .loc 1 5256 8 view .LVU4136 11759 0032 43BB cbnz r3, .L741 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11760 .loc 1 5258 7 is_stmt 1 view .LVU4137 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11761 .loc 1 5258 16 is_stmt 0 view .LVU4138 11762 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11763 0038 DBB2 uxtb r3, r3 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11764 .loc 1 5258 10 view .LVU4139 ARM GAS /tmp/ccclMPzv.s page 407 11765 003a 282B cmp r3, #40 11766 003c 0FD0 beq .L753 11767 .L742: 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11768 .loc 1 5265 12 is_stmt 1 view .LVU4140 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11769 .loc 1 5265 21 is_stmt 0 view .LVU4141 11770 003e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11771 0042 DBB2 uxtb r3, r3 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11772 .loc 1 5265 15 view .LVU4142 11773 0044 292B cmp r3, #41 11774 0046 11D0 beq .L754 11775 .L743: 5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11776 .loc 1 5280 9 is_stmt 1 view .LVU4143 11777 0048 2368 ldr r3, [r4] 11778 004a 1022 movs r2, #16 11779 .LVL838: 5280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11780 .loc 1 5280 9 is_stmt 0 view .LVU4144 11781 004c DA61 str r2, [r3, #28] 11782 004e 02E0 b .L739 11783 .LVL839: 11784 .L752: 5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11785 .loc 1 5247 5 is_stmt 1 view .LVU4145 11786 0050 2046 mov r0, r4 11787 .LVL840: 5247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11788 .loc 1 5247 5 is_stmt 0 view .LVU4146 11789 0052 FFF7FEFF bl I2C_ITSlaveCplt 11790 .LVL841: 11791 .L739: 5357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11792 .loc 1 5357 3 is_stmt 1 view .LVU4147 5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11793 .loc 1 5360 3 view .LVU4148 5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11794 .loc 1 5360 3 view .LVU4149 11795 0056 0020 movs r0, #0 11796 0058 84F84000 strb r0, [r4, #64] 5360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11797 .loc 1 5360 3 view .LVU4150 5362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11798 .loc 1 5362 3 view .LVU4151 11799 .L737: 5363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11800 .loc 1 5363 1 is_stmt 0 view .LVU4152 11801 005c 10BD pop {r4, pc} 11802 .LVL842: 11803 .L753: 5258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11804 .loc 1 5258 49 discriminator 1 view .LVU4153 11805 005e B0F1007F cmp r0, #33554432 11806 0062 ECD1 bne .L742 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 408 11807 .loc 1 5263 9 is_stmt 1 view .LVU4154 11808 0064 2046 mov r0, r4 11809 .LVL843: 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11810 .loc 1 5263 9 is_stmt 0 view .LVU4155 11811 0066 FFF7FEFF bl I2C_ITListenCplt 11812 .LVL844: 5263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11813 .loc 1 5263 9 view .LVU4156 11814 006a F4E7 b .L739 11815 .LVL845: 11816 .L754: 5265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11817 .loc 1 5265 62 discriminator 1 view .LVU4157 11818 006c 10F5803F cmn r0, #65536 11819 0070 EAD0 beq .L743 5268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11820 .loc 1 5268 9 is_stmt 1 view .LVU4158 11821 0072 2368 ldr r3, [r4] 11822 0074 1022 movs r2, #16 11823 .LVL846: 5268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11824 .loc 1 5268 9 is_stmt 0 view .LVU4159 11825 0076 DA61 str r2, [r3, #28] 5271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11826 .loc 1 5271 9 is_stmt 1 view .LVU4160 11827 0078 2046 mov r0, r4 11828 .LVL847: 5271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11829 .loc 1 5271 9 is_stmt 0 view .LVU4161 11830 007a FFF7FEFF bl I2C_Flush_TXDR 11831 .LVL848: 5275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11832 .loc 1 5275 9 is_stmt 1 view .LVU4162 11833 007e 2046 mov r0, r4 11834 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt 11835 .LVL849: 11836 0084 E7E7 b .L739 11837 .LVL850: 11838 .L741: 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11839 .loc 1 5287 7 view .LVU4163 11840 0086 2368 ldr r3, [r4] 11841 0088 1022 movs r2, #16 11842 .LVL851: 5287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11843 .loc 1 5287 7 is_stmt 0 view .LVU4164 11844 008a DA61 str r2, [r3, #28] 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11845 .loc 1 5290 7 is_stmt 1 view .LVU4165 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11846 .loc 1 5290 11 is_stmt 0 view .LVU4166 11847 008c 636C ldr r3, [r4, #68] 5290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11848 .loc 1 5290 23 view .LVU4167 11849 008e 43F00403 orr r3, r3, #4 11850 0092 6364 str r3, [r4, #68] ARM GAS /tmp/ccclMPzv.s page 409 5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11851 .loc 1 5292 7 is_stmt 1 view .LVU4168 5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11852 .loc 1 5292 10 is_stmt 0 view .LVU4169 11853 0094 10B1 cbz r0, .L744 5292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11854 .loc 1 5292 43 discriminator 1 view .LVU4170 11855 0096 B0F1807F cmp r0, #16777216 11856 009a DCD1 bne .L739 11857 .L744: 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11858 .loc 1 5295 9 is_stmt 1 view .LVU4171 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11859 .loc 1 5295 31 is_stmt 0 view .LVU4172 11860 009c 616C ldr r1, [r4, #68] 11861 .LVL852: 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11862 .loc 1 5295 9 view .LVU4173 11863 009e 2046 mov r0, r4 11864 .LVL853: 5295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11865 .loc 1 5295 9 view .LVU4174 11866 00a0 FFF7FEFF bl I2C_ITError 11867 .LVL854: 11868 00a4 D7E7 b .L739 11869 .LVL855: 11870 .L740: 5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11871 .loc 1 5299 8 is_stmt 1 view .LVU4175 5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11872 .loc 1 5299 11 is_stmt 0 view .LVU4176 11873 00a6 11F0040F tst r1, #4 11874 00aa 1FD0 beq .L745 5299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11875 .loc 1 5299 65 discriminator 1 view .LVU4177 11876 00ac 12F0040F tst r2, #4 11877 00b0 1CD0 beq .L745 5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11878 .loc 1 5302 5 is_stmt 1 view .LVU4178 5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11879 .loc 1 5302 13 is_stmt 0 view .LVU4179 11880 00b2 638D ldrh r3, [r4, #42] 11881 00b4 9BB2 uxth r3, r3 5302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11882 .loc 1 5302 8 view .LVU4180 11883 00b6 73B1 cbz r3, .L746 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11884 .loc 1 5305 7 is_stmt 1 view .LVU4181 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11885 .loc 1 5305 38 is_stmt 0 view .LVU4182 11886 00b8 2368 ldr r3, [r4] 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11887 .loc 1 5305 48 view .LVU4183 11888 00ba 5A6A ldr r2, [r3, #36] 11889 .LVL856: 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11890 .loc 1 5305 12 view .LVU4184 ARM GAS /tmp/ccclMPzv.s page 410 11891 00bc 636A ldr r3, [r4, #36] 5305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11892 .loc 1 5305 23 view .LVU4185 11893 00be 1A70 strb r2, [r3] 5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11894 .loc 1 5308 7 is_stmt 1 view .LVU4186 5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11895 .loc 1 5308 11 is_stmt 0 view .LVU4187 11896 00c0 636A ldr r3, [r4, #36] 5308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11897 .loc 1 5308 21 view .LVU4188 11898 00c2 0133 adds r3, r3, #1 11899 00c4 6362 str r3, [r4, #36] 5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11900 .loc 1 5310 7 is_stmt 1 view .LVU4189 5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11901 .loc 1 5310 11 is_stmt 0 view .LVU4190 11902 00c6 238D ldrh r3, [r4, #40] 5310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 11903 .loc 1 5310 21 view .LVU4191 11904 00c8 013B subs r3, r3, #1 11905 00ca 2385 strh r3, [r4, #40] @ movhi 5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11906 .loc 1 5311 7 is_stmt 1 view .LVU4192 5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11907 .loc 1 5311 11 is_stmt 0 view .LVU4193 11908 00cc 638D ldrh r3, [r4, #42] 11909 00ce 9BB2 uxth r3, r3 5311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11910 .loc 1 5311 22 view .LVU4194 11911 00d0 013B subs r3, r3, #1 11912 00d2 9BB2 uxth r3, r3 11913 00d4 6385 strh r3, [r4, #42] @ movhi 11914 .L746: 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11915 .loc 1 5314 5 is_stmt 1 view .LVU4195 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11916 .loc 1 5314 14 is_stmt 0 view .LVU4196 11917 00d6 638D ldrh r3, [r4, #42] 11918 00d8 9BB2 uxth r3, r3 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11919 .loc 1 5314 8 view .LVU4197 11920 00da 002B cmp r3, #0 11921 00dc BBD1 bne .L739 5314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11922 .loc 1 5314 33 discriminator 1 view .LVU4198 11923 00de 10F5803F cmn r0, #65536 11924 00e2 B8D0 beq .L739 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11925 .loc 1 5318 7 is_stmt 1 view .LVU4199 11926 00e4 2046 mov r0, r4 11927 .LVL857: 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11928 .loc 1 5318 7 is_stmt 0 view .LVU4200 11929 00e6 FFF7FEFF bl I2C_ITSlaveSeqCplt 11930 .LVL858: 5318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 411 11931 .loc 1 5318 7 view .LVU4201 11932 00ea B4E7 b .L739 11933 .LVL859: 11934 .L745: 5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11935 .loc 1 5321 8 is_stmt 1 view .LVU4202 5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11936 .loc 1 5321 11 is_stmt 0 view .LVU4203 11937 00ec 11F0080F tst r1, #8 11938 00f0 02D0 beq .L747 5321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11939 .loc 1 5321 65 discriminator 1 view .LVU4204 11940 00f2 12F0080F tst r2, #8 11941 00f6 18D1 bne .L755 11942 .L747: 5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11943 .loc 1 5326 8 is_stmt 1 view .LVU4205 5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11944 .loc 1 5326 11 is_stmt 0 view .LVU4206 11945 00f8 11F0020F tst r1, #2 11946 00fc ABD0 beq .L739 5326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11947 .loc 1 5326 65 discriminator 1 view .LVU4207 11948 00fe 12F0020F tst r2, #2 11949 0102 A8D0 beq .L739 5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11950 .loc 1 5333 5 is_stmt 1 view .LVU4208 5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11951 .loc 1 5333 13 is_stmt 0 view .LVU4209 11952 0104 638D ldrh r3, [r4, #42] 11953 0106 9BB2 uxth r3, r3 5333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11954 .loc 1 5333 8 view .LVU4210 11955 0108 9BB1 cbz r3, .L748 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11956 .loc 1 5336 7 is_stmt 1 view .LVU4211 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11957 .loc 1 5336 35 is_stmt 0 view .LVU4212 11958 010a 626A ldr r2, [r4, #36] 11959 .LVL860: 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11960 .loc 1 5336 11 view .LVU4213 11961 010c 2368 ldr r3, [r4] 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11962 .loc 1 5336 30 view .LVU4214 11963 010e 1278 ldrb r2, [r2] @ zero_extendqisi2 5336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11964 .loc 1 5336 28 view .LVU4215 11965 0110 9A62 str r2, [r3, #40] 5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11966 .loc 1 5339 7 is_stmt 1 view .LVU4216 5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11967 .loc 1 5339 11 is_stmt 0 view .LVU4217 11968 0112 636A ldr r3, [r4, #36] 5339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 11969 .loc 1 5339 21 view .LVU4218 11970 0114 0133 adds r3, r3, #1 ARM GAS /tmp/ccclMPzv.s page 412 11971 0116 6362 str r3, [r4, #36] 5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11972 .loc 1 5341 7 is_stmt 1 view .LVU4219 5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11973 .loc 1 5341 11 is_stmt 0 view .LVU4220 11974 0118 638D ldrh r3, [r4, #42] 11975 011a 9BB2 uxth r3, r3 5341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize--; 11976 .loc 1 5341 22 view .LVU4221 11977 011c 013B subs r3, r3, #1 11978 011e 9BB2 uxth r3, r3 11979 0120 6385 strh r3, [r4, #42] @ movhi 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11980 .loc 1 5342 7 is_stmt 1 view .LVU4222 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11981 .loc 1 5342 11 is_stmt 0 view .LVU4223 11982 0122 238D ldrh r3, [r4, #40] 5342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11983 .loc 1 5342 21 view .LVU4224 11984 0124 013B subs r3, r3, #1 11985 0126 2385 strh r3, [r4, #40] @ movhi 11986 0128 95E7 b .L739 11987 .LVL861: 11988 .L755: 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11989 .loc 1 5324 5 is_stmt 1 view .LVU4225 11990 012a 2046 mov r0, r4 11991 .LVL862: 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11992 .loc 1 5324 5 is_stmt 0 view .LVU4226 11993 012c FFF7FEFF bl I2C_ITAddrCplt 11994 .LVL863: 5324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 11995 .loc 1 5324 5 view .LVU4227 11996 0130 91E7 b .L739 11997 .LVL864: 11998 .L748: 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 11999 .loc 1 5346 7 is_stmt 1 view .LVU4228 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12000 .loc 1 5346 10 is_stmt 0 view .LVU4229 12001 0132 B0F1807F cmp r0, #16777216 12002 0136 01D0 beq .L749 5346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12003 .loc 1 5346 42 discriminator 1 view .LVU4230 12004 0138 0028 cmp r0, #0 12005 013a 8CD1 bne .L739 12006 .L749: 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12007 .loc 1 5350 9 is_stmt 1 view .LVU4231 12008 013c 2046 mov r0, r4 12009 .LVL865: 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12010 .loc 1 5350 9 is_stmt 0 view .LVU4232 12011 013e FFF7FEFF bl I2C_ITSlaveSeqCplt 12012 .LVL866: 5350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 413 12013 .loc 1 5350 9 view .LVU4233 12014 0142 88E7 b .L739 12015 .LVL867: 12016 .L750: 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12017 .loc 1 5240 3 discriminator 1 view .LVU4234 12018 0144 0220 movs r0, #2 12019 .LVL868: 5240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12020 .loc 1 5240 3 discriminator 1 view .LVU4235 12021 0146 89E7 b .L737 12022 .cfi_endproc 12023 .LFE380: 12025 .section .text.I2C_ITMasterCplt,"ax",%progbits 12026 .align 1 12027 .syntax unified 12028 .thumb 12029 .thumb_func 12031 I2C_ITMasterCplt: 12032 .LVL869: 12033 .LFB389: 6132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 12034 .loc 1 6132 1 is_stmt 1 view -0 12035 .cfi_startproc 12036 @ args = 0, pretend = 0, frame = 8 12037 @ frame_needed = 0, uses_anonymous_args = 0 6132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 12038 .loc 1 6132 1 is_stmt 0 view .LVU4237 12039 0000 30B5 push {r4, r5, lr} 12040 .LCFI123: 12041 .cfi_def_cfa_offset 12 12042 .cfi_offset 4, -12 12043 .cfi_offset 5, -8 12044 .cfi_offset 14, -4 12045 0002 83B0 sub sp, sp, #12 12046 .LCFI124: 12047 .cfi_def_cfa_offset 24 12048 0004 0446 mov r4, r0 12049 0006 0D46 mov r5, r1 6133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12050 .loc 1 6133 3 is_stmt 1 view .LVU4238 6134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** __IO uint32_t tmpreg; 12051 .loc 1 6134 3 view .LVU4239 12052 .LVL870: 6135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12053 .loc 1 6135 3 view .LVU4240 6138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12054 .loc 1 6138 3 view .LVU4241 12055 0008 0368 ldr r3, [r0] 12056 000a 2022 movs r2, #32 12057 000c DA61 str r2, [r3, #28] 6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12058 .loc 1 6141 3 view .LVU4242 6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12059 .loc 1 6141 11 is_stmt 0 view .LVU4243 12060 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 12061 0012 DBB2 uxtb r3, r3 ARM GAS /tmp/ccclMPzv.s page 414 6141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12062 .loc 1 6141 6 view .LVU4244 12063 0014 212B cmp r3, #33 12064 0016 33D0 beq .L768 6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12065 .loc 1 6146 8 is_stmt 1 view .LVU4245 6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12066 .loc 1 6146 16 is_stmt 0 view .LVU4246 12067 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 12068 001c DBB2 uxtb r3, r3 6146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12069 .loc 1 6146 11 view .LVU4247 12070 001e 222B cmp r3, #34 12071 0020 34D0 beq .L769 12072 .LVL871: 12073 .L758: 6154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12074 .loc 1 6154 3 is_stmt 1 view .LVU4248 6157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12075 .loc 1 6157 3 view .LVU4249 12076 0022 2268 ldr r2, [r4] 12077 0024 5368 ldr r3, [r2, #4] 12078 0026 23F0FF73 bic r3, r3, #33423360 12079 002a 23F48B33 bic r3, r3, #71168 12080 002e 23F4FF73 bic r3, r3, #510 12081 0032 23F00103 bic r3, r3, #1 12082 0036 5360 str r3, [r2, #4] 6160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12083 .loc 1 6160 3 view .LVU4250 6160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12084 .loc 1 6160 23 is_stmt 0 view .LVU4251 12085 0038 0023 movs r3, #0 12086 003a 6363 str r3, [r4, #52] 6161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12087 .loc 1 6161 3 is_stmt 1 view .LVU4252 6161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12088 .loc 1 6161 23 is_stmt 0 view .LVU4253 12089 003c A3F58033 sub r3, r3, #65536 12090 0040 E362 str r3, [r4, #44] 6163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12091 .loc 1 6163 3 is_stmt 1 view .LVU4254 6163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12092 .loc 1 6163 6 is_stmt 0 view .LVU4255 12093 0042 15F0100F tst r5, #16 12094 0046 06D0 beq .L759 6166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12095 .loc 1 6166 5 is_stmt 1 view .LVU4256 12096 0048 2368 ldr r3, [r4] 12097 004a 1022 movs r2, #16 12098 004c DA61 str r2, [r3, #28] 6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12099 .loc 1 6169 5 view .LVU4257 6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12100 .loc 1 6169 9 is_stmt 0 view .LVU4258 12101 004e 636C ldr r3, [r4, #68] 6169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12102 .loc 1 6169 21 view .LVU4259 ARM GAS /tmp/ccclMPzv.s page 415 12103 0050 43F00403 orr r3, r3, #4 12104 0054 6364 str r3, [r4, #68] 12105 .L759: 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12106 .loc 1 6173 3 is_stmt 1 view .LVU4260 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12107 .loc 1 6173 12 is_stmt 0 view .LVU4261 12108 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12109 005a DBB2 uxtb r3, r3 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12110 .loc 1 6173 6 view .LVU4262 12111 005c 602B cmp r3, #96 12112 005e 1BD0 beq .L770 12113 .L760: 6181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12114 .loc 1 6181 3 is_stmt 1 view .LVU4263 12115 0060 2046 mov r0, r4 12116 0062 FFF7FEFF bl I2C_Flush_TXDR 12117 .LVL872: 6184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12118 .loc 1 6184 3 view .LVU4264 6184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12119 .loc 1 6184 12 is_stmt 0 view .LVU4265 12120 0066 626C ldr r2, [r4, #68] 12121 .LVL873: 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12122 .loc 1 6187 3 is_stmt 1 view .LVU4266 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12123 .loc 1 6187 12 is_stmt 0 view .LVU4267 12124 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12125 006c DBB2 uxtb r3, r3 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12126 .loc 1 6187 6 view .LVU4268 12127 006e 602B cmp r3, #96 12128 0070 00D0 beq .L761 6187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12129 .loc 1 6187 44 discriminator 1 view .LVU4269 12130 0072 D2B1 cbz r2, .L762 12131 .L761: 6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12132 .loc 1 6190 5 is_stmt 1 view .LVU4270 6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12133 .loc 1 6190 27 is_stmt 0 view .LVU4271 12134 0074 616C ldr r1, [r4, #68] 6190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12135 .loc 1 6190 5 view .LVU4272 12136 0076 2046 mov r0, r4 12137 0078 FFF7FEFF bl I2C_ITError 12138 .LVL874: 12139 .L756: 6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12140 .loc 1 6266 1 view .LVU4273 12141 007c 03B0 add sp, sp, #12 12142 .LCFI125: 12143 .cfi_remember_state 12144 .cfi_def_cfa_offset 12 12145 @ sp needed ARM GAS /tmp/ccclMPzv.s page 416 12146 007e 30BD pop {r4, r5, pc} 12147 .LVL875: 12148 .L768: 12149 .LCFI126: 12150 .cfi_restore_state 6143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12151 .loc 1 6143 5 is_stmt 1 view .LVU4274 12152 0080 0121 movs r1, #1 12153 .LVL876: 6143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12154 .loc 1 6143 5 is_stmt 0 view .LVU4275 12155 0082 FFF7FEFF bl I2C_Disable_IRQ 12156 .LVL877: 6144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12157 .loc 1 6144 5 is_stmt 1 view .LVU4276 6144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12158 .loc 1 6144 25 is_stmt 0 view .LVU4277 12159 0086 1123 movs r3, #17 12160 0088 2363 str r3, [r4, #48] 12161 008a CAE7 b .L758 12162 .LVL878: 12163 .L769: 6148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12164 .loc 1 6148 5 is_stmt 1 view .LVU4278 12165 008c 0221 movs r1, #2 12166 .LVL879: 6148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12167 .loc 1 6148 5 is_stmt 0 view .LVU4279 12168 008e FFF7FEFF bl I2C_Disable_IRQ 12169 .LVL880: 6149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12170 .loc 1 6149 5 is_stmt 1 view .LVU4280 6149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12171 .loc 1 6149 25 is_stmt 0 view .LVU4281 12172 0092 1223 movs r3, #18 12173 0094 2363 str r3, [r4, #48] 12174 0096 C4E7 b .L758 12175 .L770: 6173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12176 .loc 1 6173 44 discriminator 1 view .LVU4282 12177 0098 15F0040F tst r5, #4 12178 009c E0D0 beq .L760 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 12179 .loc 1 6176 5 is_stmt 1 view .LVU4283 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 12180 .loc 1 6176 27 is_stmt 0 view .LVU4284 12181 009e 2368 ldr r3, [r4] 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 12182 .loc 1 6176 37 view .LVU4285 12183 00a0 5B6A ldr r3, [r3, #36] 12184 00a2 DBB2 uxtb r3, r3 6176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** UNUSED(tmpreg); 12185 .loc 1 6176 12 view .LVU4286 12186 00a4 0193 str r3, [sp, #4] 6177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12187 .loc 1 6177 5 is_stmt 1 view .LVU4287 12188 00a6 019B ldr r3, [sp, #4] ARM GAS /tmp/ccclMPzv.s page 417 12189 00a8 DAE7 b .L760 12190 .LVL881: 12191 .L762: 6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12192 .loc 1 6193 8 view .LVU4288 6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12193 .loc 1 6193 16 is_stmt 0 view .LVU4289 12194 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12195 00ae DBB2 uxtb r3, r3 6193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12196 .loc 1 6193 11 view .LVU4290 12197 00b0 212B cmp r3, #33 12198 00b2 17D0 beq .L771 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12199 .loc 1 6228 8 is_stmt 1 view .LVU4291 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12200 .loc 1 6228 16 is_stmt 0 view .LVU4292 12201 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12202 00b8 DBB2 uxtb r3, r3 6228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12203 .loc 1 6228 11 view .LVU4293 12204 00ba 222B cmp r3, #34 12205 00bc DED1 bne .L756 6230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12206 .loc 1 6230 5 is_stmt 1 view .LVU4294 6230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12207 .loc 1 6230 17 is_stmt 0 view .LVU4295 12208 00be 2023 movs r3, #32 12209 00c0 84F84130 strb r3, [r4, #65] 6231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12210 .loc 1 6231 5 is_stmt 1 view .LVU4296 6231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12211 .loc 1 6231 25 is_stmt 0 view .LVU4297 12212 00c4 0023 movs r3, #0 12213 00c6 2363 str r3, [r4, #48] 6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12214 .loc 1 6233 5 is_stmt 1 view .LVU4298 6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12215 .loc 1 6233 13 is_stmt 0 view .LVU4299 12216 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 12217 00cc DBB2 uxtb r3, r3 6233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12218 .loc 1 6233 8 view .LVU4300 12219 00ce 402B cmp r3, #64 12220 00d0 24D0 beq .L772 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12221 .loc 1 6249 7 is_stmt 1 view .LVU4301 6249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12222 .loc 1 6249 18 is_stmt 0 view .LVU4302 12223 00d2 0023 movs r3, #0 12224 00d4 84F84230 strb r3, [r4, #66] 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12225 .loc 1 6252 7 is_stmt 1 view .LVU4303 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12226 .loc 1 6252 7 view .LVU4304 12227 00d8 84F84030 strb r3, [r4, #64] 6252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 418 12228 .loc 1 6252 7 view .LVU4305 6258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12229 .loc 1 6258 7 view .LVU4306 12230 00dc 2046 mov r0, r4 12231 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12232 .LVL882: 6265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12233 .loc 1 6265 3 view .LVU4307 6266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12234 .loc 1 6266 1 is_stmt 0 view .LVU4308 12235 00e2 CBE7 b .L756 12236 .LVL883: 12237 .L771: 6195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12238 .loc 1 6195 5 is_stmt 1 view .LVU4309 6195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12239 .loc 1 6195 17 is_stmt 0 view .LVU4310 12240 00e4 2023 movs r3, #32 12241 00e6 84F84130 strb r3, [r4, #65] 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12242 .loc 1 6196 5 is_stmt 1 view .LVU4311 6196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12243 .loc 1 6196 25 is_stmt 0 view .LVU4312 12244 00ea 0023 movs r3, #0 12245 00ec 2363 str r3, [r4, #48] 6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12246 .loc 1 6198 5 is_stmt 1 view .LVU4313 6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12247 .loc 1 6198 13 is_stmt 0 view .LVU4314 12248 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 12249 00f2 DBB2 uxtb r3, r3 6198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12250 .loc 1 6198 8 view .LVU4315 12251 00f4 402B cmp r3, #64 12252 00f6 08D0 beq .L773 6214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12253 .loc 1 6214 7 is_stmt 1 view .LVU4316 6214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12254 .loc 1 6214 18 is_stmt 0 view .LVU4317 12255 00f8 0023 movs r3, #0 12256 00fa 84F84230 strb r3, [r4, #66] 6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12257 .loc 1 6217 7 is_stmt 1 view .LVU4318 6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12258 .loc 1 6217 7 view .LVU4319 12259 00fe 84F84030 strb r3, [r4, #64] 6217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12260 .loc 1 6217 7 view .LVU4320 6223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12261 .loc 1 6223 7 view .LVU4321 12262 0102 2046 mov r0, r4 12263 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12264 .LVL884: 6223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12265 .loc 1 6223 7 is_stmt 0 view .LVU4322 12266 0108 B8E7 b .L756 12267 .LVL885: ARM GAS /tmp/ccclMPzv.s page 419 12268 .L773: 6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12269 .loc 1 6200 7 is_stmt 1 view .LVU4323 6200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12270 .loc 1 6200 18 is_stmt 0 view .LVU4324 12271 010a 0023 movs r3, #0 12272 010c 84F84230 strb r3, [r4, #66] 6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12273 .loc 1 6203 7 is_stmt 1 view .LVU4325 6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12274 .loc 1 6203 7 view .LVU4326 12275 0110 84F84030 strb r3, [r4, #64] 6203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12276 .loc 1 6203 7 view .LVU4327 6209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12277 .loc 1 6209 7 view .LVU4328 12278 0114 2046 mov r0, r4 12279 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12280 .LVL886: 6209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12281 .loc 1 6209 7 is_stmt 0 view .LVU4329 12282 011a AFE7 b .L756 12283 .LVL887: 12284 .L772: 6235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12285 .loc 1 6235 7 is_stmt 1 view .LVU4330 6235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12286 .loc 1 6235 18 is_stmt 0 view .LVU4331 12287 011c 0023 movs r3, #0 12288 011e 84F84230 strb r3, [r4, #66] 6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12289 .loc 1 6238 7 is_stmt 1 view .LVU4332 6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12290 .loc 1 6238 7 view .LVU4333 12291 0122 84F84030 strb r3, [r4, #64] 6238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12292 .loc 1 6238 7 view .LVU4334 6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12293 .loc 1 6244 7 view .LVU4335 12294 0126 2046 mov r0, r4 12295 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12296 .LVL888: 6244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12297 .loc 1 6244 7 is_stmt 0 view .LVU4336 12298 012c A6E7 b .L756 12299 .cfi_endproc 12300 .LFE389: 12302 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12303 .align 1 12304 .syntax unified 12305 .thumb 12306 .thumb_func 12308 I2C_Master_ISR_IT: 12309 .LVL889: 12310 .LFB378: 4941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 12311 .loc 1 4941 1 is_stmt 1 view -0 ARM GAS /tmp/ccclMPzv.s page 420 12312 .cfi_startproc 12313 @ args = 0, pretend = 0, frame = 0 12314 @ frame_needed = 0, uses_anonymous_args = 0 4942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12315 .loc 1 4942 3 view .LVU4338 4943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12316 .loc 1 4943 3 view .LVU4339 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12317 .loc 1 4946 3 view .LVU4340 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12318 .loc 1 4946 3 view .LVU4341 12319 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12320 0004 012B cmp r3, #1 12321 0006 00F0C280 beq .L788 4941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 12322 .loc 1 4941 1 is_stmt 0 view .LVU4342 12323 000a 70B5 push {r4, r5, r6, lr} 12324 .LCFI127: 12325 .cfi_def_cfa_offset 16 12326 .cfi_offset 4, -16 12327 .cfi_offset 5, -12 12328 .cfi_offset 6, -8 12329 .cfi_offset 14, -4 12330 000c 82B0 sub sp, sp, #8 12331 .LCFI128: 12332 .cfi_def_cfa_offset 24 12333 000e 0446 mov r4, r0 12334 0010 0D46 mov r5, r1 12335 0012 1646 mov r6, r2 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12336 .loc 1 4946 3 is_stmt 1 discriminator 2 view .LVU4343 12337 0014 0123 movs r3, #1 12338 0016 80F84030 strb r3, [r0, #64] 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12339 .loc 1 4946 3 discriminator 2 view .LVU4344 4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12340 .loc 1 4948 3 view .LVU4345 4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12341 .loc 1 4948 6 is_stmt 0 view .LVU4346 12342 001a 11F0100F tst r1, #16 12343 001e 02D0 beq .L776 4948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12344 .loc 1 4948 58 discriminator 1 view .LVU4347 12345 0020 12F0100F tst r2, #16 12346 0024 22D1 bne .L793 12347 .L776: 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12348 .loc 1 4962 8 is_stmt 1 view .LVU4348 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12349 .loc 1 4962 11 is_stmt 0 view .LVU4349 12350 0026 15F0040F tst r5, #4 12351 002a 29D0 beq .L778 4962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12352 .loc 1 4962 65 discriminator 1 view .LVU4350 12353 002c 16F0040F tst r6, #4 12354 0030 26D0 beq .L778 4966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 421 12355 .loc 1 4966 5 is_stmt 1 view .LVU4351 4966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12356 .loc 1 4966 16 is_stmt 0 view .LVU4352 12357 0032 25F00405 bic r5, r5, #4 12358 .LVL890: 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12359 .loc 1 4969 5 is_stmt 1 view .LVU4353 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12360 .loc 1 4969 36 is_stmt 0 view .LVU4354 12361 0036 2368 ldr r3, [r4] 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12362 .loc 1 4969 46 view .LVU4355 12363 0038 5A6A ldr r2, [r3, #36] 12364 .LVL891: 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12365 .loc 1 4969 10 view .LVU4356 12366 003a 636A ldr r3, [r4, #36] 4969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12367 .loc 1 4969 21 view .LVU4357 12368 003c 1A70 strb r2, [r3] 4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12369 .loc 1 4972 5 is_stmt 1 view .LVU4358 4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12370 .loc 1 4972 9 is_stmt 0 view .LVU4359 12371 003e 636A ldr r3, [r4, #36] 4972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12372 .loc 1 4972 19 view .LVU4360 12373 0040 0133 adds r3, r3, #1 12374 0042 6362 str r3, [r4, #36] 4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12375 .loc 1 4974 5 is_stmt 1 view .LVU4361 4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12376 .loc 1 4974 9 is_stmt 0 view .LVU4362 12377 0044 238D ldrh r3, [r4, #40] 4974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12378 .loc 1 4974 19 view .LVU4363 12379 0046 013B subs r3, r3, #1 12380 0048 2385 strh r3, [r4, #40] @ movhi 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12381 .loc 1 4975 5 is_stmt 1 view .LVU4364 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12382 .loc 1 4975 9 is_stmt 0 view .LVU4365 12383 004a 638D ldrh r3, [r4, #42] 12384 004c 9BB2 uxth r3, r3 4975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12385 .loc 1 4975 20 view .LVU4366 12386 004e 013B subs r3, r3, #1 12387 0050 9BB2 uxth r3, r3 12388 0052 6385 strh r3, [r4, #42] @ movhi 12389 .LVL892: 12390 .L777: 5067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12391 .loc 1 5067 3 is_stmt 1 view .LVU4367 5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12392 .loc 1 5069 3 view .LVU4368 5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12393 .loc 1 5069 6 is_stmt 0 view .LVU4369 ARM GAS /tmp/ccclMPzv.s page 422 12394 0054 15F0200F tst r5, #32 12395 0058 03D0 beq .L787 5069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12396 .loc 1 5069 61 discriminator 1 view .LVU4370 12397 005a 16F0200F tst r6, #32 12398 005e 40F09180 bne .L794 12399 .L787: 5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12400 .loc 1 5077 3 is_stmt 1 view .LVU4371 5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12401 .loc 1 5077 3 view .LVU4372 12402 0062 0020 movs r0, #0 12403 0064 84F84000 strb r0, [r4, #64] 5077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12404 .loc 1 5077 3 view .LVU4373 5079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12405 .loc 1 5079 3 view .LVU4374 5080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12406 .loc 1 5080 1 is_stmt 0 view .LVU4375 12407 0068 02B0 add sp, sp, #8 12408 .LCFI129: 12409 .cfi_remember_state 12410 .cfi_def_cfa_offset 16 12411 @ sp needed 12412 006a 70BD pop {r4, r5, r6, pc} 12413 .LVL893: 12414 .L793: 12415 .LCFI130: 12416 .cfi_restore_state 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12417 .loc 1 4952 5 is_stmt 1 view .LVU4376 12418 006c 0368 ldr r3, [r0] 12419 006e 1022 movs r2, #16 12420 .LVL894: 4952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12421 .loc 1 4952 5 is_stmt 0 view .LVU4377 12422 0070 DA61 str r2, [r3, #28] 4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12423 .loc 1 4957 5 is_stmt 1 view .LVU4378 4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12424 .loc 1 4957 9 is_stmt 0 view .LVU4379 12425 0072 436C ldr r3, [r0, #68] 4957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12426 .loc 1 4957 21 view .LVU4380 12427 0074 43F00403 orr r3, r3, #4 12428 0078 4364 str r3, [r0, #68] 4960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12429 .loc 1 4960 5 is_stmt 1 view .LVU4381 12430 007a FFF7FEFF bl I2C_Flush_TXDR 12431 .LVL895: 4960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12432 .loc 1 4960 5 is_stmt 0 view .LVU4382 12433 007e E9E7 b .L777 12434 .LVL896: 12435 .L778: 4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12436 .loc 1 4977 8 is_stmt 1 view .LVU4383 ARM GAS /tmp/ccclMPzv.s page 423 12437 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) && \ 12438 .loc 1 4977 11 is_stmt 0 view .LVU4384 12439 0084 15F0400F tst r5, #64 12440 0088 19D1 bne .L779 4977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12441 .loc 1 4977 63 discriminator 1 view .LVU4385 12442 008a 15F0020F tst r5, #2 12443 008e 16D0 beq .L779 4978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 12444 .loc 1 4978 66 view .LVU4386 12445 0090 16F0020F tst r6, #2 12446 0094 13D0 beq .L779 4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12447 .loc 1 4982 5 is_stmt 1 view .LVU4387 4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12448 .loc 1 4982 13 is_stmt 0 view .LVU4388 12449 0096 638D ldrh r3, [r4, #42] 12450 0098 9BB2 uxth r3, r3 4982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12451 .loc 1 4982 8 view .LVU4389 12452 009a 002B cmp r3, #0 12453 009c DAD0 beq .L777 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12454 .loc 1 4985 7 is_stmt 1 view .LVU4390 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12455 .loc 1 4985 35 is_stmt 0 view .LVU4391 12456 009e 626A ldr r2, [r4, #36] 12457 .LVL897: 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12458 .loc 1 4985 11 view .LVU4392 12459 00a0 2368 ldr r3, [r4] 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12460 .loc 1 4985 30 view .LVU4393 12461 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2 4985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12462 .loc 1 4985 28 view .LVU4394 12463 00a4 9A62 str r2, [r3, #40] 4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12464 .loc 1 4988 7 is_stmt 1 view .LVU4395 4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12465 .loc 1 4988 11 is_stmt 0 view .LVU4396 12466 00a6 636A ldr r3, [r4, #36] 4988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12467 .loc 1 4988 21 view .LVU4397 12468 00a8 0133 adds r3, r3, #1 12469 00aa 6362 str r3, [r4, #36] 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12470 .loc 1 4990 7 is_stmt 1 view .LVU4398 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12471 .loc 1 4990 11 is_stmt 0 view .LVU4399 12472 00ac 238D ldrh r3, [r4, #40] 4990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 12473 .loc 1 4990 21 view .LVU4400 12474 00ae 013B subs r3, r3, #1 12475 00b0 2385 strh r3, [r4, #40] @ movhi 4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 424 12476 .loc 1 4991 7 is_stmt 1 view .LVU4401 4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12477 .loc 1 4991 11 is_stmt 0 view .LVU4402 12478 00b2 638D ldrh r3, [r4, #42] 12479 00b4 9BB2 uxth r3, r3 4991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12480 .loc 1 4991 22 view .LVU4403 12481 00b6 013B subs r3, r3, #1 12482 00b8 9BB2 uxth r3, r3 12483 00ba 6385 strh r3, [r4, #42] @ movhi 12484 00bc CAE7 b .L777 12485 .LVL898: 12486 .L779: 4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12487 .loc 1 4994 8 is_stmt 1 view .LVU4404 4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12488 .loc 1 4994 11 is_stmt 0 view .LVU4405 12489 00be 15F0800F tst r5, #128 12490 00c2 3FD0 beq .L780 4994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12491 .loc 1 4994 64 discriminator 1 view .LVU4406 12492 00c4 16F0400F tst r6, #64 12493 00c8 3CD0 beq .L780 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12494 .loc 1 4997 5 is_stmt 1 view .LVU4407 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12495 .loc 1 4997 14 is_stmt 0 view .LVU4408 12496 00ca 638D ldrh r3, [r4, #42] 12497 00cc 9BB2 uxth r3, r3 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12498 .loc 1 4997 8 view .LVU4409 12499 00ce 5BB3 cbz r3, .L781 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12500 .loc 1 4997 41 discriminator 1 view .LVU4410 12501 00d0 238D ldrh r3, [r4, #40] 4997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12502 .loc 1 4997 33 discriminator 1 view .LVU4411 12503 00d2 4BBB cbnz r3, .L781 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12504 .loc 1 4999 7 is_stmt 1 view .LVU4412 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12505 .loc 1 4999 35 is_stmt 0 view .LVU4413 12506 00d4 2368 ldr r3, [r4] 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12507 .loc 1 4999 45 view .LVU4414 12508 00d6 5968 ldr r1, [r3, #4] 12509 .LVL899: 4999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12510 .loc 1 4999 18 view .LVU4415 12511 00d8 C1F30901 ubfx r1, r1, #0, #10 12512 .LVL900: 5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12513 .loc 1 5001 7 is_stmt 1 view .LVU4416 5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12514 .loc 1 5001 15 is_stmt 0 view .LVU4417 12515 00dc 638D ldrh r3, [r4, #42] 12516 00de 9BB2 uxth r3, r3 ARM GAS /tmp/ccclMPzv.s page 425 5001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12517 .loc 1 5001 10 view .LVU4418 12518 00e0 FF2B cmp r3, #255 12519 00e2 0ED8 bhi .L795 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12520 .loc 1 5008 9 is_stmt 1 view .LVU4419 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12521 .loc 1 5008 30 is_stmt 0 view .LVU4420 12522 00e4 628D ldrh r2, [r4, #42] 12523 .LVL901: 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12524 .loc 1 5008 30 view .LVU4421 12525 00e6 92B2 uxth r2, r2 5008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12526 .loc 1 5008 24 view .LVU4422 12527 00e8 2285 strh r2, [r4, #40] @ movhi 5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12528 .loc 1 5009 9 is_stmt 1 view .LVU4423 5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12529 .loc 1 5009 17 is_stmt 0 view .LVU4424 12530 00ea E36A ldr r3, [r4, #44] 5009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12531 .loc 1 5009 12 view .LVU4425 12532 00ec 13F5803F cmn r3, #65536 12533 00f0 11D0 beq .L783 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12534 .loc 1 5011 11 is_stmt 1 view .LVU4426 5012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12535 .loc 1 5012 34 is_stmt 0 view .LVU4427 12536 00f2 E36A ldr r3, [r4, #44] 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12537 .loc 1 5011 11 view .LVU4428 12538 00f4 0020 movs r0, #0 12539 .LVL902: 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12540 .loc 1 5011 11 view .LVU4429 12541 00f6 0090 str r0, [sp] 12542 00f8 D2B2 uxtb r2, r2 12543 00fa 2046 mov r0, r4 12544 00fc FFF7FEFF bl I2C_TransferConfig 12545 .LVL903: 5011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12546 .loc 1 5011 11 view .LVU4430 12547 0100 A8E7 b .L777 12548 .LVL904: 12549 .L795: 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12550 .loc 1 5003 9 is_stmt 1 view .LVU4431 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12551 .loc 1 5003 24 is_stmt 0 view .LVU4432 12552 0102 FF22 movs r2, #255 12553 .LVL905: 5003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12554 .loc 1 5003 24 view .LVU4433 12555 0104 2285 strh r2, [r4, #40] @ movhi 5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12556 .loc 1 5004 9 is_stmt 1 view .LVU4434 ARM GAS /tmp/ccclMPzv.s page 426 12557 0106 0023 movs r3, #0 12558 0108 0093 str r3, [sp] 12559 010a 4FF08073 mov r3, #16777216 12560 010e 2046 mov r0, r4 12561 .LVL906: 5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12562 .loc 1 5004 9 is_stmt 0 view .LVU4435 12563 0110 FFF7FEFF bl I2C_TransferConfig 12564 .LVL907: 5004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12565 .loc 1 5004 9 view .LVU4436 12566 0114 9EE7 b .L777 12567 .LVL908: 12568 .L783: 5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12569 .loc 1 5016 11 is_stmt 1 view .LVU4437 12570 0116 0023 movs r3, #0 12571 0118 0093 str r3, [sp] 12572 011a 4FF00073 mov r3, #33554432 12573 011e D2B2 uxtb r2, r2 12574 0120 2046 mov r0, r4 12575 .LVL909: 5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12576 .loc 1 5016 11 is_stmt 0 view .LVU4438 12577 0122 FFF7FEFF bl I2C_TransferConfig 12578 .LVL910: 5016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12579 .loc 1 5016 11 view .LVU4439 12580 0126 95E7 b .L777 12581 .LVL911: 12582 .L781: 5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12583 .loc 1 5024 7 is_stmt 1 view .LVU4440 5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12584 .loc 1 5024 11 is_stmt 0 view .LVU4441 12585 0128 2368 ldr r3, [r4] 12586 012a 5B68 ldr r3, [r3, #4] 5024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12587 .loc 1 5024 10 view .LVU4442 12588 012c 13F0007F tst r3, #33554432 12589 0130 03D1 bne .L784 5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12590 .loc 1 5027 9 is_stmt 1 view .LVU4443 12591 0132 2046 mov r0, r4 12592 .LVL912: 5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12593 .loc 1 5027 9 is_stmt 0 view .LVU4444 12594 0134 FFF7FEFF bl I2C_ITMasterSeqCplt 12595 .LVL913: 5027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12596 .loc 1 5027 9 view .LVU4445 12597 0138 8CE7 b .L777 12598 .LVL914: 12599 .L784: 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12600 .loc 1 5033 9 is_stmt 1 view .LVU4446 12601 013a 4021 movs r1, #64 ARM GAS /tmp/ccclMPzv.s page 427 12602 .LVL915: 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12603 .loc 1 5033 9 is_stmt 0 view .LVU4447 12604 013c 2046 mov r0, r4 12605 .LVL916: 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12606 .loc 1 5033 9 view .LVU4448 12607 013e FFF7FEFF bl I2C_ITError 12608 .LVL917: 5033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12609 .loc 1 5033 9 view .LVU4449 12610 0142 87E7 b .L777 12611 .LVL918: 12612 .L780: 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12613 .loc 1 5037 8 is_stmt 1 view .LVU4450 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12614 .loc 1 5037 11 is_stmt 0 view .LVU4451 12615 0144 002B cmp r3, #0 12616 0146 85D0 beq .L777 5037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12617 .loc 1 5037 63 discriminator 1 view .LVU4452 12618 0148 16F0400F tst r6, #64 12619 014c 82D0 beq .L777 5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12620 .loc 1 5040 5 is_stmt 1 view .LVU4453 5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12621 .loc 1 5040 13 is_stmt 0 view .LVU4454 12622 014e 638D ldrh r3, [r4, #42] 12623 0150 9BB2 uxth r3, r3 5040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12624 .loc 1 5040 8 view .LVU4455 12625 0152 93B9 cbnz r3, .L785 5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12626 .loc 1 5042 7 is_stmt 1 view .LVU4456 5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12627 .loc 1 5042 11 is_stmt 0 view .LVU4457 12628 0154 2368 ldr r3, [r4] 12629 0156 5A68 ldr r2, [r3, #4] 12630 .LVL919: 5042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12631 .loc 1 5042 10 view .LVU4458 12632 0158 12F0007F tst r2, #33554432 12633 015c 7FF47AAF bne .L777 5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12634 .loc 1 5045 9 is_stmt 1 view .LVU4459 5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12635 .loc 1 5045 17 is_stmt 0 view .LVU4460 12636 0160 E26A ldr r2, [r4, #44] 5045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12637 .loc 1 5045 12 view .LVU4461 12638 0162 12F5803F cmn r2, #65536 12639 0166 04D1 bne .L786 5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12640 .loc 1 5048 11 is_stmt 1 view .LVU4462 5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12641 .loc 1 5048 25 is_stmt 0 view .LVU4463 ARM GAS /tmp/ccclMPzv.s page 428 12642 0168 5A68 ldr r2, [r3, #4] 5048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12643 .loc 1 5048 31 view .LVU4464 12644 016a 42F48042 orr r2, r2, #16384 12645 016e 5A60 str r2, [r3, #4] 12646 0170 70E7 b .L777 12647 .L786: 5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12648 .loc 1 5053 11 is_stmt 1 view .LVU4465 12649 0172 2046 mov r0, r4 12650 .LVL920: 5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12651 .loc 1 5053 11 is_stmt 0 view .LVU4466 12652 0174 FFF7FEFF bl I2C_ITMasterSeqCplt 12653 .LVL921: 5053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12654 .loc 1 5053 11 view .LVU4467 12655 0178 6CE7 b .L777 12656 .LVL922: 12657 .L785: 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12658 .loc 1 5061 7 is_stmt 1 view .LVU4468 12659 017a 4021 movs r1, #64 12660 .LVL923: 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12661 .loc 1 5061 7 is_stmt 0 view .LVU4469 12662 017c 2046 mov r0, r4 12663 .LVL924: 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12664 .loc 1 5061 7 view .LVU4470 12665 017e FFF7FEFF bl I2C_ITError 12666 .LVL925: 5061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12667 .loc 1 5061 7 view .LVU4471 12668 0182 67E7 b .L777 12669 .LVL926: 12670 .L794: 5073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12671 .loc 1 5073 5 is_stmt 1 view .LVU4472 12672 0184 2946 mov r1, r5 12673 0186 2046 mov r0, r4 12674 0188 FFF7FEFF bl I2C_ITMasterCplt 12675 .LVL927: 12676 018c 69E7 b .L787 12677 .LVL928: 12678 .L788: 12679 .LCFI131: 12680 .cfi_def_cfa_offset 0 12681 .cfi_restore 4 12682 .cfi_restore 5 12683 .cfi_restore 6 12684 .cfi_restore 14 4946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12685 .loc 1 4946 3 is_stmt 0 discriminator 1 view .LVU4473 12686 018e 0220 movs r0, #2 12687 .LVL929: 5080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 429 12688 .loc 1 5080 1 view .LVU4474 12689 0190 7047 bx lr 12690 .cfi_endproc 12691 .LFE378: 12693 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits 12694 .align 1 12695 .syntax unified 12696 .thumb 12697 .thumb_func 12699 I2C_Mem_ISR_DMA: 12700 .LVL930: 12701 .LFB382: 5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12702 .loc 1 5515 1 is_stmt 1 view -0 12703 .cfi_startproc 12704 @ args = 0, pretend = 0, frame = 0 12705 @ frame_needed = 0, uses_anonymous_args = 0 5516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12706 .loc 1 5516 3 view .LVU4476 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12707 .loc 1 5519 3 view .LVU4477 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12708 .loc 1 5519 3 view .LVU4478 12709 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12710 0004 012B cmp r3, #1 12711 0006 00F0C880 beq .L811 5515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12712 .loc 1 5515 1 is_stmt 0 view .LVU4479 12713 000a 10B5 push {r4, lr} 12714 .LCFI132: 12715 .cfi_def_cfa_offset 8 12716 .cfi_offset 4, -8 12717 .cfi_offset 14, -4 12718 000c 82B0 sub sp, sp, #8 12719 .LCFI133: 12720 .cfi_def_cfa_offset 16 12721 000e 0446 mov r4, r0 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12722 .loc 1 5519 3 is_stmt 1 discriminator 2 view .LVU4480 12723 0010 0123 movs r3, #1 12724 0012 80F84030 strb r3, [r0, #64] 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12725 .loc 1 5519 3 discriminator 2 view .LVU4481 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12726 .loc 1 5521 3 view .LVU4482 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12727 .loc 1 5521 6 is_stmt 0 view .LVU4483 12728 0016 11F0100F tst r1, #16 12729 001a 02D0 beq .L798 5521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12730 .loc 1 5521 55 discriminator 1 view .LVU4484 12731 001c 12F0100F tst r2, #16 12732 0020 10D1 bne .L817 12733 .L798: 5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12734 .loc 1 5538 8 is_stmt 1 view .LVU4485 5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) ARM GAS /tmp/ccclMPzv.s page 430 12735 .loc 1 5538 11 is_stmt 0 view .LVU4486 12736 0022 11F0020F tst r1, #2 12737 0026 1BD0 beq .L800 5538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12738 .loc 1 5538 62 discriminator 1 view .LVU4487 12739 0028 12F0020F tst r2, #2 12740 002c 18D0 beq .L800 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12741 .loc 1 5542 5 is_stmt 1 view .LVU4488 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12742 .loc 1 5542 9 is_stmt 0 view .LVU4489 12743 002e 2368 ldr r3, [r4] 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12744 .loc 1 5542 32 view .LVU4490 12745 0030 226D ldr r2, [r4, #80] 12746 .LVL931: 5542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12747 .loc 1 5542 26 view .LVU4491 12748 0032 9A62 str r2, [r3, #40] 5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12749 .loc 1 5545 5 is_stmt 1 view .LVU4492 5545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12750 .loc 1 5545 22 is_stmt 0 view .LVU4493 12751 0034 4FF0FF33 mov r3, #-1 12752 0038 2365 str r3, [r4, #80] 12753 .LVL932: 12754 .L799: 5645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12755 .loc 1 5645 3 is_stmt 1 view .LVU4494 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12756 .loc 1 5648 3 view .LVU4495 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12757 .loc 1 5648 3 view .LVU4496 12758 003a 0020 movs r0, #0 12759 003c 84F84000 strb r0, [r4, #64] 5648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12760 .loc 1 5648 3 view .LVU4497 5650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12761 .loc 1 5650 3 view .LVU4498 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12762 .loc 1 5651 1 is_stmt 0 view .LVU4499 12763 0040 02B0 add sp, sp, #8 12764 .LCFI134: 12765 .cfi_remember_state 12766 .cfi_def_cfa_offset 8 12767 @ sp needed 12768 0042 10BD pop {r4, pc} 12769 .LVL933: 12770 .L817: 12771 .LCFI135: 12772 .cfi_restore_state 5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12773 .loc 1 5525 5 is_stmt 1 view .LVU4500 12774 0044 0368 ldr r3, [r0] 12775 0046 1022 movs r2, #16 12776 .LVL934: 5525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 431 12777 .loc 1 5525 5 is_stmt 0 view .LVU4501 12778 0048 DA61 str r2, [r3, #28] 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12779 .loc 1 5528 5 is_stmt 1 view .LVU4502 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12780 .loc 1 5528 9 is_stmt 0 view .LVU4503 12781 004a 436C ldr r3, [r0, #68] 5528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12782 .loc 1 5528 21 view .LVU4504 12783 004c 43F00403 orr r3, r3, #4 12784 0050 4364 str r3, [r0, #68] 5533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12785 .loc 1 5533 5 is_stmt 1 view .LVU4505 12786 0052 2021 movs r1, #32 12787 .LVL935: 5533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12788 .loc 1 5533 5 is_stmt 0 view .LVU4506 12789 0054 FFF7FEFF bl I2C_Enable_IRQ 12790 .LVL936: 5536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12791 .loc 1 5536 5 is_stmt 1 view .LVU4507 12792 0058 2046 mov r0, r4 12793 005a FFF7FEFF bl I2C_Flush_TXDR 12794 .LVL937: 12795 005e ECE7 b .L799 12796 .LVL938: 12797 .L800: 5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12798 .loc 1 5547 8 view .LVU4508 5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12799 .loc 1 5547 11 is_stmt 0 view .LVU4509 12800 0060 11F0800F tst r1, #128 12801 0064 02D0 beq .L801 5547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12802 .loc 1 5547 61 discriminator 1 view .LVU4510 12803 0066 12F0400F tst r2, #64 12804 006a 0FD1 bne .L818 12805 .L801: 5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12806 .loc 1 5592 8 is_stmt 1 view .LVU4511 5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12807 .loc 1 5592 11 is_stmt 0 view .LVU4512 12808 006c 11F0400F tst r1, #64 12809 0070 02D0 beq .L806 5592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12810 .loc 1 5592 60 discriminator 1 view .LVU4513 12811 0072 12F0400F tst r2, #64 12812 0076 4ED1 bne .L819 12813 .L806: 5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12814 .loc 1 5636 8 is_stmt 1 view .LVU4514 5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12815 .loc 1 5636 11 is_stmt 0 view .LVU4515 12816 0078 11F0200F tst r1, #32 12817 007c DDD0 beq .L799 5636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12818 .loc 1 5636 63 discriminator 1 view .LVU4516 ARM GAS /tmp/ccclMPzv.s page 432 12819 007e 12F0200F tst r2, #32 12820 0082 DAD0 beq .L799 5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12821 .loc 1 5640 5 is_stmt 1 view .LVU4517 12822 0084 2046 mov r0, r4 12823 .LVL939: 5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12824 .loc 1 5640 5 is_stmt 0 view .LVU4518 12825 0086 FFF7FEFF bl I2C_ITMasterCplt 12826 .LVL940: 5640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12827 .loc 1 5640 5 view .LVU4519 12828 008a D6E7 b .L799 12829 .LVL941: 12830 .L818: 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12831 .loc 1 5551 5 is_stmt 1 view .LVU4520 12832 008c 0121 movs r1, #1 12833 .LVL942: 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12834 .loc 1 5551 5 is_stmt 0 view .LVU4521 12835 008e 2046 mov r0, r4 12836 .LVL943: 5551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12837 .loc 1 5551 5 view .LVU4522 12838 0090 FFF7FEFF bl I2C_Disable_IRQ 12839 .LVL944: 5554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12840 .loc 1 5554 5 is_stmt 1 view .LVU4523 12841 0094 1021 movs r1, #16 12842 0096 2046 mov r0, r4 12843 0098 FFF7FEFF bl I2C_Enable_IRQ 12844 .LVL945: 5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12845 .loc 1 5556 5 view .LVU4524 5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12846 .loc 1 5556 13 is_stmt 0 view .LVU4525 12847 009c 638D ldrh r3, [r4, #42] 12848 009e 9BB2 uxth r3, r3 5556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12849 .loc 1 5556 8 view .LVU4526 12850 00a0 002B cmp r3, #0 12851 00a2 33D0 beq .L802 5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12852 .loc 1 5559 7 is_stmt 1 view .LVU4527 5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12853 .loc 1 5559 15 is_stmt 0 view .LVU4528 12854 00a4 638D ldrh r3, [r4, #42] 12855 00a6 9BB2 uxth r3, r3 5559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12856 .loc 1 5559 10 view .LVU4529 12857 00a8 FF2B cmp r3, #255 12858 00aa 1BD9 bls .L803 5561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12859 .loc 1 5561 9 is_stmt 1 view .LVU4530 5561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12860 .loc 1 5561 24 is_stmt 0 view .LVU4531 ARM GAS /tmp/ccclMPzv.s page 433 12861 00ac FF22 movs r2, #255 12862 00ae 2285 strh r2, [r4, #40] @ movhi 5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12863 .loc 1 5562 9 is_stmt 1 view .LVU4532 5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12864 .loc 1 5562 48 is_stmt 0 view .LVU4533 12865 00b0 E16C ldr r1, [r4, #76] 5562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12866 .loc 1 5562 9 view .LVU4534 12867 00b2 0023 movs r3, #0 12868 00b4 0093 str r3, [sp] 12869 00b6 4FF08073 mov r3, #16777216 12870 00ba 89B2 uxth r1, r1 12871 00bc 2046 mov r0, r4 12872 00be FFF7FEFF bl I2C_TransferConfig 12873 .LVL946: 12874 .L804: 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12875 .loc 1 5573 7 is_stmt 1 view .LVU4535 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12876 .loc 1 5573 11 is_stmt 0 view .LVU4536 12877 00c2 638D ldrh r3, [r4, #42] 12878 00c4 9BB2 uxth r3, r3 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12879 .loc 1 5573 30 view .LVU4537 12880 00c6 228D ldrh r2, [r4, #40] 5573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12881 .loc 1 5573 23 view .LVU4538 12882 00c8 9B1A subs r3, r3, r2 12883 00ca 9BB2 uxth r3, r3 12884 00cc 6385 strh r3, [r4, #42] @ movhi 5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12885 .loc 1 5576 7 is_stmt 1 view .LVU4539 5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12886 .loc 1 5576 15 is_stmt 0 view .LVU4540 12887 00ce 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12888 00d2 DBB2 uxtb r3, r3 5576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12889 .loc 1 5576 10 view .LVU4541 12890 00d4 222B cmp r3, #34 12891 00d6 13D0 beq .L820 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12892 .loc 1 5582 9 is_stmt 1 view .LVU4542 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12893 .loc 1 5582 13 is_stmt 0 view .LVU4543 12894 00d8 2268 ldr r2, [r4] 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12895 .loc 1 5582 23 view .LVU4544 12896 00da 1368 ldr r3, [r2] 5582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12897 .loc 1 5582 29 view .LVU4545 12898 00dc 43F48043 orr r3, r3, #16384 12899 00e0 1360 str r3, [r2] 12900 00e2 AAE7 b .L799 12901 .L803: 5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12902 .loc 1 5567 9 is_stmt 1 view .LVU4546 ARM GAS /tmp/ccclMPzv.s page 434 5567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12903 .loc 1 5567 30 is_stmt 0 view .LVU4547 12904 00e4 628D ldrh r2, [r4, #42] 12905 00e6 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, 12906 .loc 1 5567 24 view .LVU4548 12907 00e8 2285 strh r2, [r4, #40] @ movhi 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12908 .loc 1 5568 9 is_stmt 1 view .LVU4549 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12909 .loc 1 5568 48 is_stmt 0 view .LVU4550 12910 00ea E16C ldr r1, [r4, #76] 5568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12911 .loc 1 5568 9 view .LVU4551 12912 00ec 0023 movs r3, #0 12913 00ee 0093 str r3, [sp] 12914 00f0 4FF00073 mov r3, #33554432 12915 00f4 D2B2 uxtb r2, r2 12916 00f6 89B2 uxth r1, r1 12917 00f8 2046 mov r0, r4 12918 00fa FFF7FEFF bl I2C_TransferConfig 12919 .LVL947: 12920 00fe E0E7 b .L804 12921 .L820: 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12922 .loc 1 5578 9 is_stmt 1 view .LVU4552 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12923 .loc 1 5578 13 is_stmt 0 view .LVU4553 12924 0100 2268 ldr r2, [r4] 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12925 .loc 1 5578 23 view .LVU4554 12926 0102 1368 ldr r3, [r2] 5578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12927 .loc 1 5578 29 view .LVU4555 12928 0104 43F40043 orr r3, r3, #32768 12929 0108 1360 str r3, [r2] 12930 010a 96E7 b .L799 12931 .L802: 5589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 12932 .loc 1 5589 7 is_stmt 1 view .LVU4556 12933 010c 4021 movs r1, #64 12934 010e 2046 mov r0, r4 12935 0110 FFF7FEFF bl I2C_ITError 12936 .LVL948: 12937 0114 91E7 b .L799 12938 .LVL949: 12939 .L819: 5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12940 .loc 1 5596 5 view .LVU4557 12941 0116 0121 movs r1, #1 12942 .LVL950: 5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12943 .loc 1 5596 5 is_stmt 0 view .LVU4558 12944 0118 2046 mov r0, r4 12945 .LVL951: 5596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12946 .loc 1 5596 5 view .LVU4559 ARM GAS /tmp/ccclMPzv.s page 435 12947 011a FFF7FEFF bl I2C_Disable_IRQ 12948 .LVL952: 5599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12949 .loc 1 5599 5 is_stmt 1 view .LVU4560 12950 011e 1021 movs r1, #16 12951 0120 2046 mov r0, r4 12952 0122 FFF7FEFF bl I2C_Enable_IRQ 12953 .LVL953: 5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12954 .loc 1 5601 5 view .LVU4561 5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12955 .loc 1 5601 13 is_stmt 0 view .LVU4562 12956 0126 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12957 012a DBB2 uxtb r3, r3 5601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12958 .loc 1 5601 8 view .LVU4563 12959 012c 222B cmp r3, #34 12960 012e 1FD0 beq .L812 5516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12961 .loc 1 5516 12 view .LVU4564 12962 0130 1B48 ldr r0, .L822 12963 .L807: 12964 .LVL954: 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12965 .loc 1 5606 5 is_stmt 1 view .LVU4565 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12966 .loc 1 5606 13 is_stmt 0 view .LVU4566 12967 0132 638D ldrh r3, [r4, #42] 12968 0134 9BB2 uxth r3, r3 5606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12969 .loc 1 5606 8 view .LVU4567 12970 0136 FF2B cmp r3, #255 12971 0138 1CD9 bls .L808 5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12972 .loc 1 5608 7 is_stmt 1 view .LVU4568 5608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12973 .loc 1 5608 22 is_stmt 0 view .LVU4569 12974 013a FF22 movs r2, #255 12975 013c 2285 strh r2, [r4, #40] @ movhi 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12976 .loc 1 5611 7 is_stmt 1 view .LVU4570 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12977 .loc 1 5611 46 is_stmt 0 view .LVU4571 12978 013e E16C ldr r1, [r4, #76] 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12979 .loc 1 5611 7 view .LVU4572 12980 0140 0090 str r0, [sp] 12981 0142 4FF08073 mov r3, #16777216 12982 0146 89B2 uxth r1, r1 12983 0148 2046 mov r0, r4 12984 .LVL955: 5611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12985 .loc 1 5611 7 view .LVU4573 12986 014a FFF7FEFF bl I2C_TransferConfig 12987 .LVL956: 12988 .L809: 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 436 12989 .loc 1 5624 5 is_stmt 1 view .LVU4574 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12990 .loc 1 5624 9 is_stmt 0 view .LVU4575 12991 014e 638D ldrh r3, [r4, #42] 12992 0150 9BB2 uxth r3, r3 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12993 .loc 1 5624 28 view .LVU4576 12994 0152 228D ldrh r2, [r4, #40] 5624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 12995 .loc 1 5624 21 view .LVU4577 12996 0154 9B1A subs r3, r3, r2 12997 0156 9BB2 uxth r3, r3 12998 0158 6385 strh r3, [r4, #42] @ movhi 5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 12999 .loc 1 5627 5 is_stmt 1 view .LVU4578 5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13000 .loc 1 5627 13 is_stmt 0 view .LVU4579 13001 015a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13002 015e DBB2 uxtb r3, r3 5627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13003 .loc 1 5627 8 view .LVU4580 13004 0160 222B cmp r3, #34 13005 0162 14D0 beq .L821 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13006 .loc 1 5633 7 is_stmt 1 view .LVU4581 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13007 .loc 1 5633 11 is_stmt 0 view .LVU4582 13008 0164 2268 ldr r2, [r4] 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13009 .loc 1 5633 21 view .LVU4583 13010 0166 1368 ldr r3, [r2] 5633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13011 .loc 1 5633 27 view .LVU4584 13012 0168 43F48043 orr r3, r3, #16384 13013 016c 1360 str r3, [r2] 13014 016e 64E7 b .L799 13015 .LVL957: 13016 .L812: 5603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13017 .loc 1 5603 17 view .LVU4585 13018 0170 0C48 ldr r0, .L822+4 13019 0172 DEE7 b .L807 13020 .LVL958: 13021 .L808: 5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13022 .loc 1 5616 7 is_stmt 1 view .LVU4586 5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13023 .loc 1 5616 28 is_stmt 0 view .LVU4587 13024 0174 628D ldrh r2, [r4, #42] 13025 0176 92B2 uxth r2, r2 5616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13026 .loc 1 5616 22 view .LVU4588 13027 0178 2285 strh r2, [r4, #40] @ movhi 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13028 .loc 1 5619 7 is_stmt 1 view .LVU4589 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13029 .loc 1 5619 46 is_stmt 0 view .LVU4590 ARM GAS /tmp/ccclMPzv.s page 437 13030 017a E16C ldr r1, [r4, #76] 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13031 .loc 1 5619 7 view .LVU4591 13032 017c 0090 str r0, [sp] 13033 017e 4FF00073 mov r3, #33554432 13034 0182 D2B2 uxtb r2, r2 13035 0184 89B2 uxth r1, r1 13036 0186 2046 mov r0, r4 13037 .LVL959: 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13038 .loc 1 5619 7 view .LVU4592 13039 0188 FFF7FEFF bl I2C_TransferConfig 13040 .LVL960: 5619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13041 .loc 1 5619 7 view .LVU4593 13042 018c DFE7 b .L809 13043 .L821: 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13044 .loc 1 5629 7 is_stmt 1 view .LVU4594 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13045 .loc 1 5629 11 is_stmt 0 view .LVU4595 13046 018e 2268 ldr r2, [r4] 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13047 .loc 1 5629 21 view .LVU4596 13048 0190 1368 ldr r3, [r2] 5629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13049 .loc 1 5629 27 view .LVU4597 13050 0192 43F40043 orr r3, r3, #32768 13051 0196 1360 str r3, [r2] 13052 0198 4FE7 b .L799 13053 .LVL961: 13054 .L811: 13055 .LCFI136: 13056 .cfi_def_cfa_offset 0 13057 .cfi_restore 4 13058 .cfi_restore 14 5519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13059 .loc 1 5519 3 discriminator 1 view .LVU4598 13060 019a 0220 movs r0, #2 13061 .LVL962: 5651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13062 .loc 1 5651 1 view .LVU4599 13063 019c 7047 bx lr 13064 .L823: 13065 019e 00BF .align 2 13066 .L822: 13067 01a0 00200080 .word -2147475456 13068 01a4 00240080 .word -2147474432 13069 .cfi_endproc 13070 .LFE382: 13072 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 13073 .align 1 13074 .syntax unified 13075 .thumb 13076 .thumb_func 13078 I2C_Slave_ISR_DMA: 13079 .LVL963: ARM GAS /tmp/ccclMPzv.s page 438 13080 .LFB383: 5663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13081 .loc 1 5663 1 is_stmt 1 view -0 13082 .cfi_startproc 13083 @ args = 0, pretend = 0, frame = 0 13084 @ frame_needed = 0, uses_anonymous_args = 0 5663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13085 .loc 1 5663 1 is_stmt 0 view .LVU4601 13086 0000 70B5 push {r4, r5, r6, lr} 13087 .LCFI137: 13088 .cfi_def_cfa_offset 16 13089 .cfi_offset 4, -16 13090 .cfi_offset 5, -12 13091 .cfi_offset 6, -8 13092 .cfi_offset 14, -4 13093 0002 0446 mov r4, r0 5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13094 .loc 1 5664 3 is_stmt 1 view .LVU4602 5664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13095 .loc 1 5664 12 is_stmt 0 view .LVU4603 13096 0004 C06A ldr r0, [r0, #44] 13097 .LVL964: 5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13098 .loc 1 5665 3 is_stmt 1 view .LVU4604 5666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13099 .loc 1 5666 3 view .LVU4605 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13100 .loc 1 5669 3 view .LVU4606 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13101 .loc 1 5669 3 view .LVU4607 13102 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 13103 000a 012B cmp r3, #1 13104 000c 00F08780 beq .L842 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13105 .loc 1 5669 3 discriminator 2 view .LVU4608 13106 0010 0123 movs r3, #1 13107 0012 84F84030 strb r3, [r4, #64] 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13108 .loc 1 5669 3 discriminator 2 view .LVU4609 5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13109 .loc 1 5672 3 view .LVU4610 5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13110 .loc 1 5672 6 is_stmt 0 view .LVU4611 13111 0016 11F0200F tst r1, #32 13112 001a 02D0 beq .L826 5672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13113 .loc 1 5672 58 discriminator 1 view .LVU4612 13114 001c 12F0200F tst r2, #32 13115 0020 19D1 bne .L847 13116 .L826: 5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13117 .loc 1 5678 8 is_stmt 1 view .LVU4613 5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13118 .loc 1 5678 11 is_stmt 0 view .LVU4614 13119 0022 11F0100F tst r1, #16 13120 0026 6CD0 beq .L828 5678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) ARM GAS /tmp/ccclMPzv.s page 439 13121 .loc 1 5678 60 discriminator 1 view .LVU4615 13122 0028 12F0100F tst r2, #16 13123 002c 69D0 beq .L828 5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13124 .loc 1 5685 5 is_stmt 1 view .LVU4616 13125 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)) 13126 .loc 1 5685 8 is_stmt 0 view .LVU4617 13127 0032 12F4804F tst r2, #16384 13128 0036 02D1 bne .L829 5685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13129 .loc 1 5685 68 discriminator 1 view .LVU4618 13130 0038 12F4004F tst r2, #32768 13131 003c 5DD0 beq .L830 13132 .L829: 5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13133 .loc 1 5689 7 is_stmt 1 view .LVU4619 5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13134 .loc 1 5689 15 is_stmt 0 view .LVU4620 13135 003e E36B ldr r3, [r4, #60] 5689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13136 .loc 1 5689 10 view .LVU4621 13137 0040 6BB1 cbz r3, .L843 5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13138 .loc 1 5691 9 is_stmt 1 view .LVU4622 13139 0042 C2F3C035 ubfx r5, r2, #15, #1 5691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13140 .loc 1 5691 12 is_stmt 0 view .LVU4623 13141 0046 12F4004F tst r2, #32768 13142 004a 09D0 beq .L831 5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13143 .loc 1 5693 11 is_stmt 1 view .LVU4624 5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13144 .loc 1 5693 15 is_stmt 0 view .LVU4625 13145 004c 1B68 ldr r3, [r3] 13146 004e 5B68 ldr r3, [r3, #4] 5693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13147 .loc 1 5693 14 view .LVU4626 13148 0050 2BB3 cbz r3, .L844 5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13149 .loc 1 5665 12 view .LVU4627 13150 0052 0025 movs r5, #0 13151 0054 04E0 b .L831 13152 .L847: 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13153 .loc 1 5676 5 is_stmt 1 view .LVU4628 13154 0056 2046 mov r0, r4 13155 .LVL965: 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13156 .loc 1 5676 5 is_stmt 0 view .LVU4629 13157 0058 FFF7FEFF bl I2C_ITSlaveCplt 13158 .LVL966: 5676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13159 .loc 1 5676 5 view .LVU4630 13160 005c 57E0 b .L827 13161 .LVL967: 13162 .L843: ARM GAS /tmp/ccclMPzv.s page 440 5665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13163 .loc 1 5665 12 view .LVU4631 13164 005e 0025 movs r5, #0 13165 .L831: 13166 .LVL968: 5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13167 .loc 1 5701 7 is_stmt 1 view .LVU4632 5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13168 .loc 1 5701 15 is_stmt 0 view .LVU4633 13169 0060 A36B ldr r3, [r4, #56] 5701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13170 .loc 1 5701 10 view .LVU4634 13171 0062 1BB1 cbz r3, .L832 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13172 .loc 1 5703 9 is_stmt 1 view .LVU4635 5703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13173 .loc 1 5703 12 is_stmt 0 view .LVU4636 13174 0064 16B1 cbz r6, .L832 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13175 .loc 1 5705 11 is_stmt 1 view .LVU4637 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13176 .loc 1 5705 15 is_stmt 0 view .LVU4638 13177 0066 1B68 ldr r3, [r3] 13178 0068 5B68 ldr r3, [r3, #4] 5705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13179 .loc 1 5705 14 view .LVU4639 13180 006a D3B1 cbz r3, .L833 13181 .L832: 5712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13182 .loc 1 5712 7 is_stmt 1 view .LVU4640 5712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13183 .loc 1 5712 10 is_stmt 0 view .LVU4641 13184 006c CDB9 cbnz r5, .L833 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13185 .loc 1 5743 9 is_stmt 1 view .LVU4642 13186 006e 2368 ldr r3, [r4] 13187 0070 1022 movs r2, #16 13188 .LVL969: 5743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13189 .loc 1 5743 9 is_stmt 0 view .LVU4643 13190 0072 DA61 str r2, [r3, #28] 5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13191 .loc 1 5746 9 is_stmt 1 view .LVU4644 5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13192 .loc 1 5746 13 is_stmt 0 view .LVU4645 13193 0074 636C ldr r3, [r4, #68] 5746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13194 .loc 1 5746 25 view .LVU4646 13195 0076 43F00403 orr r3, r3, #4 13196 007a 6364 str r3, [r4, #68] 5749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13197 .loc 1 5749 9 is_stmt 1 view .LVU4647 5749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13198 .loc 1 5749 18 is_stmt 0 view .LVU4648 13199 007c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13200 0080 DBB2 uxtb r3, r3 13201 .LVL970: ARM GAS /tmp/ccclMPzv.s page 441 5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13202 .loc 1 5751 9 is_stmt 1 view .LVU4649 5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13203 .loc 1 5751 12 is_stmt 0 view .LVU4650 13204 0082 10B1 cbz r0, .L837 5751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13205 .loc 1 5751 45 discriminator 1 view .LVU4651 13206 0084 B0F1807F cmp r0, #16777216 13207 0088 41D1 bne .L827 13208 .L837: 5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13209 .loc 1 5753 11 is_stmt 1 view .LVU4652 13210 008a 213B subs r3, r3, #33 13211 .LVL971: 5753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13212 .loc 1 5753 11 is_stmt 0 view .LVU4653 13213 008c 092B cmp r3, #9 13214 008e 2CD8 bhi .L838 13215 0090 DFE803F0 tbb [pc, r3] 13216 .L840: 13217 0094 29 .byte (.L841-.L840)/2 13218 0095 30 .byte (.L839-.L840)/2 13219 0096 2B .byte (.L838-.L840)/2 13220 0097 2B .byte (.L838-.L840)/2 13221 0098 2B .byte (.L838-.L840)/2 13222 0099 2B .byte (.L838-.L840)/2 13223 009a 2B .byte (.L838-.L840)/2 13224 009b 2B .byte (.L838-.L840)/2 13225 009c 29 .byte (.L841-.L840)/2 13226 009d 30 .byte (.L839-.L840)/2 13227 .LVL972: 13228 .p2align 1 13229 .L844: 5695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13230 .loc 1 5695 26 view .LVU4654 13231 009e 0125 movs r5, #1 13232 00a0 DEE7 b .L831 13233 .LVL973: 13234 .L833: 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13235 .loc 1 5714 9 is_stmt 1 view .LVU4655 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13236 .loc 1 5714 18 is_stmt 0 view .LVU4656 13237 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13238 00a6 DBB2 uxtb r3, r3 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13239 .loc 1 5714 12 view .LVU4657 13240 00a8 282B cmp r3, #40 13241 00aa 08D0 beq .L848 13242 .L835: 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13243 .loc 1 5721 14 is_stmt 1 view .LVU4658 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13244 .loc 1 5721 23 is_stmt 0 view .LVU4659 13245 00ac 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13246 00b0 DBB2 uxtb r3, r3 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 442 13247 .loc 1 5721 17 view .LVU4660 13248 00b2 292B cmp r3, #41 13249 00b4 0AD0 beq .L849 13250 .L836: 5736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13251 .loc 1 5736 11 is_stmt 1 view .LVU4661 13252 00b6 2368 ldr r3, [r4] 13253 00b8 1022 movs r2, #16 13254 .LVL974: 5736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13255 .loc 1 5736 11 is_stmt 0 view .LVU4662 13256 00ba DA61 str r2, [r3, #28] 13257 00bc 27E0 b .L827 13258 .LVL975: 13259 .L848: 5714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13260 .loc 1 5714 51 discriminator 1 view .LVU4663 13261 00be B0F1007F cmp r0, #33554432 13262 00c2 F3D1 bne .L835 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13263 .loc 1 5719 11 is_stmt 1 view .LVU4664 13264 00c4 2046 mov r0, r4 13265 .LVL976: 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13266 .loc 1 5719 11 is_stmt 0 view .LVU4665 13267 00c6 FFF7FEFF bl I2C_ITListenCplt 13268 .LVL977: 5719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13269 .loc 1 5719 11 view .LVU4666 13270 00ca 20E0 b .L827 13271 .LVL978: 13272 .L849: 5721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13273 .loc 1 5721 64 discriminator 1 view .LVU4667 13274 00cc 10F5803F cmn r0, #65536 13275 00d0 F1D0 beq .L836 5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13276 .loc 1 5724 11 is_stmt 1 view .LVU4668 13277 00d2 2368 ldr r3, [r4] 13278 00d4 1022 movs r2, #16 13279 .LVL979: 5724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13280 .loc 1 5724 11 is_stmt 0 view .LVU4669 13281 00d6 DA61 str r2, [r3, #28] 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13282 .loc 1 5727 11 is_stmt 1 view .LVU4670 13283 00d8 2046 mov r0, r4 13284 .LVL980: 5727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13285 .loc 1 5727 11 is_stmt 0 view .LVU4671 13286 00da FFF7FEFF bl I2C_Flush_TXDR 13287 .LVL981: 5731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13288 .loc 1 5731 11 is_stmt 1 view .LVU4672 13289 00de 2046 mov r0, r4 13290 00e0 FFF7FEFF bl I2C_ITSlaveSeqCplt 13291 .LVL982: ARM GAS /tmp/ccclMPzv.s page 443 13292 00e4 13E0 b .L827 13293 .LVL983: 13294 .L841: 5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13295 .loc 1 5755 13 view .LVU4673 5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13296 .loc 1 5755 33 is_stmt 0 view .LVU4674 13297 00e6 2123 movs r3, #33 13298 .LVL984: 5755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13299 .loc 1 5755 33 view .LVU4675 13300 00e8 2363 str r3, [r4, #48] 13301 .L838: 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13302 .loc 1 5767 11 is_stmt 1 view .LVU4676 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13303 .loc 1 5767 33 is_stmt 0 view .LVU4677 13304 00ea 616C ldr r1, [r4, #68] 13305 .LVL985: 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13306 .loc 1 5767 11 view .LVU4678 13307 00ec 2046 mov r0, r4 13308 .LVL986: 5767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13309 .loc 1 5767 11 view .LVU4679 13310 00ee FFF7FEFF bl I2C_ITError 13311 .LVL987: 13312 00f2 0CE0 b .L827 13313 .LVL988: 13314 .L839: 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13315 .loc 1 5759 13 is_stmt 1 view .LVU4680 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13316 .loc 1 5759 33 is_stmt 0 view .LVU4681 13317 00f4 2223 movs r3, #34 13318 .LVL989: 5759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13319 .loc 1 5759 33 view .LVU4682 13320 00f6 2363 str r3, [r4, #48] 13321 00f8 F7E7 b .L838 13322 .LVL990: 13323 .L830: 5774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13324 .loc 1 5774 7 is_stmt 1 view .LVU4683 13325 00fa 2368 ldr r3, [r4] 13326 00fc 1022 movs r2, #16 13327 .LVL991: 5774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13328 .loc 1 5774 7 is_stmt 0 view .LVU4684 13329 00fe DA61 str r2, [r3, #28] 13330 0100 05E0 b .L827 13331 .LVL992: 13332 .L828: 5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13333 .loc 1 5777 8 is_stmt 1 view .LVU4685 5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13334 .loc 1 5777 11 is_stmt 0 view .LVU4686 ARM GAS /tmp/ccclMPzv.s page 444 13335 0102 11F0080F tst r1, #8 13336 0106 02D0 beq .L827 5777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13337 .loc 1 5777 62 discriminator 1 view .LVU4687 13338 0108 12F0080F tst r2, #8 13339 010c 03D1 bne .L850 13340 .LVL993: 13341 .L827: 5785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13342 .loc 1 5785 3 is_stmt 1 view .LVU4688 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13343 .loc 1 5788 3 view .LVU4689 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13344 .loc 1 5788 3 view .LVU4690 13345 010e 0020 movs r0, #0 13346 0110 84F84000 strb r0, [r4, #64] 5788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13347 .loc 1 5788 3 view .LVU4691 5790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13348 .loc 1 5790 3 view .LVU4692 13349 .L825: 5791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13350 .loc 1 5791 1 is_stmt 0 view .LVU4693 13351 0114 70BD pop {r4, r5, r6, pc} 13352 .LVL994: 13353 .L850: 5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13354 .loc 1 5780 5 is_stmt 1 view .LVU4694 13355 0116 2046 mov r0, r4 13356 .LVL995: 5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13357 .loc 1 5780 5 is_stmt 0 view .LVU4695 13358 0118 FFF7FEFF bl I2C_ITAddrCplt 13359 .LVL996: 5780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13360 .loc 1 5780 5 view .LVU4696 13361 011c F7E7 b .L827 13362 .LVL997: 13363 .L842: 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13364 .loc 1 5669 3 discriminator 1 view .LVU4697 13365 011e 0220 movs r0, #2 13366 .LVL998: 5669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13367 .loc 1 5669 3 discriminator 1 view .LVU4698 13368 0120 F8E7 b .L825 13369 .cfi_endproc 13370 .LFE383: 13372 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 13373 .align 1 13374 .syntax unified 13375 .thumb 13376 .thumb_func 13378 I2C_Master_ISR_DMA: 13379 .LVL999: 13380 .LFB381: 5375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; ARM GAS /tmp/ccclMPzv.s page 445 13381 .loc 1 5375 1 is_stmt 1 view -0 13382 .cfi_startproc 13383 @ args = 0, pretend = 0, frame = 0 13384 @ frame_needed = 0, uses_anonymous_args = 0 5376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t xfermode; 13385 .loc 1 5376 3 view .LVU4700 5377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13386 .loc 1 5377 3 view .LVU4701 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13387 .loc 1 5380 3 view .LVU4702 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13388 .loc 1 5380 3 view .LVU4703 13389 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13390 0004 012B cmp r3, #1 13391 0006 00F09A80 beq .L864 5375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint16_t devaddress; 13392 .loc 1 5375 1 is_stmt 0 view .LVU4704 13393 000a 10B5 push {r4, lr} 13394 .LCFI138: 13395 .cfi_def_cfa_offset 8 13396 .cfi_offset 4, -8 13397 .cfi_offset 14, -4 13398 000c 82B0 sub sp, sp, #8 13399 .LCFI139: 13400 .cfi_def_cfa_offset 16 13401 000e 0446 mov r4, r0 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13402 .loc 1 5380 3 is_stmt 1 discriminator 2 view .LVU4705 13403 0010 0123 movs r3, #1 13404 0012 80F84030 strb r3, [r0, #64] 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13405 .loc 1 5380 3 discriminator 2 view .LVU4706 5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13406 .loc 1 5382 3 view .LVU4707 5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13407 .loc 1 5382 6 is_stmt 0 view .LVU4708 13408 0016 11F0100F tst r1, #16 13409 001a 02D0 beq .L853 5382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13410 .loc 1 5382 55 discriminator 1 view .LVU4709 13411 001c 12F0100F tst r2, #16 13412 0020 32D1 bne .L870 13413 .L853: 5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13414 .loc 1 5399 8 is_stmt 1 view .LVU4710 5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13415 .loc 1 5399 11 is_stmt 0 view .LVU4711 13416 0022 11F0800F tst r1, #128 13417 0026 60D0 beq .L855 5399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13418 .loc 1 5399 61 discriminator 1 view .LVU4712 13419 0028 12F0400F tst r2, #64 13420 002c 5DD0 beq .L855 5403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13421 .loc 1 5403 5 is_stmt 1 view .LVU4713 13422 002e 2268 ldr r2, [r4] 13423 .LVL1000: ARM GAS /tmp/ccclMPzv.s page 446 5403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13424 .loc 1 5403 5 is_stmt 0 view .LVU4714 13425 0030 1368 ldr r3, [r2] 13426 0032 23F04003 bic r3, r3, #64 13427 0036 1360 str r3, [r2] 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13428 .loc 1 5405 5 is_stmt 1 view .LVU4715 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13429 .loc 1 5405 13 is_stmt 0 view .LVU4716 13430 0038 638D ldrh r3, [r4, #42] 13431 003a 9BB2 uxth r3, r3 5405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13432 .loc 1 5405 8 view .LVU4717 13433 003c 002B cmp r3, #0 13434 003e 46D0 beq .L856 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13435 .loc 1 5408 7 is_stmt 1 view .LVU4718 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13436 .loc 1 5408 35 is_stmt 0 view .LVU4719 13437 0040 2368 ldr r3, [r4] 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13438 .loc 1 5408 45 view .LVU4720 13439 0042 5968 ldr r1, [r3, #4] 13440 .LVL1001: 5408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13441 .loc 1 5408 18 view .LVU4721 13442 0044 C1F30901 ubfx r1, r1, #0, #10 13443 .LVL1002: 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13444 .loc 1 5411 7 is_stmt 1 view .LVU4722 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13445 .loc 1 5411 15 is_stmt 0 view .LVU4723 13446 0048 638D ldrh r3, [r4, #42] 13447 004a 9BB2 uxth r3, r3 5411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13448 .loc 1 5411 10 view .LVU4724 13449 004c FF2B cmp r3, #255 13450 004e 2DD9 bls .L857 5413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 13451 .loc 1 5413 9 is_stmt 1 view .LVU4725 5413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 13452 .loc 1 5413 24 is_stmt 0 view .LVU4726 13453 0050 FF23 movs r3, #255 13454 0052 2385 strh r3, [r4, #40] @ movhi 5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13455 .loc 1 5414 9 is_stmt 1 view .LVU4727 13456 .LVL1003: 5414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13457 .loc 1 5414 18 is_stmt 0 view .LVU4728 13458 0054 4FF08073 mov r3, #16777216 13459 .LVL1004: 13460 .L858: 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13461 .loc 1 5430 7 is_stmt 1 view .LVU4729 13462 0058 0022 movs r2, #0 13463 005a 0092 str r2, [sp] 13464 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 ARM GAS /tmp/ccclMPzv.s page 447 13465 0060 2046 mov r0, r4 13466 .LVL1005: 5430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13467 .loc 1 5430 7 is_stmt 0 view .LVU4730 13468 0062 FFF7FEFF bl I2C_TransferConfig 13469 .LVL1006: 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13470 .loc 1 5433 7 is_stmt 1 view .LVU4731 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13471 .loc 1 5433 11 is_stmt 0 view .LVU4732 13472 0066 638D ldrh r3, [r4, #42] 13473 0068 9BB2 uxth r3, r3 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13474 .loc 1 5433 30 view .LVU4733 13475 006a 228D ldrh r2, [r4, #40] 5433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13476 .loc 1 5433 23 view .LVU4734 13477 006c 9B1A subs r3, r3, r2 13478 006e 9BB2 uxth r3, r3 13479 0070 6385 strh r3, [r4, #42] @ movhi 5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13480 .loc 1 5436 7 is_stmt 1 view .LVU4735 5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13481 .loc 1 5436 15 is_stmt 0 view .LVU4736 13482 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13483 0076 DBB2 uxtb r3, r3 5436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13484 .loc 1 5436 10 view .LVU4737 13485 0078 222B cmp r3, #34 13486 007a 22D0 beq .L871 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13487 .loc 1 5442 9 is_stmt 1 view .LVU4738 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13488 .loc 1 5442 13 is_stmt 0 view .LVU4739 13489 007c 2268 ldr r2, [r4] 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13490 .loc 1 5442 23 view .LVU4740 13491 007e 1368 ldr r3, [r2] 5442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13492 .loc 1 5442 29 view .LVU4741 13493 0080 43F48043 orr r3, r3, #16384 13494 0084 1360 str r3, [r2] 13495 0086 0CE0 b .L854 13496 .LVL1007: 13497 .L870: 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13498 .loc 1 5386 5 is_stmt 1 view .LVU4742 13499 0088 0368 ldr r3, [r0] 13500 008a 1022 movs r2, #16 13501 .LVL1008: 5386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13502 .loc 1 5386 5 is_stmt 0 view .LVU4743 13503 008c DA61 str r2, [r3, #28] 5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13504 .loc 1 5389 5 is_stmt 1 view .LVU4744 5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13505 .loc 1 5389 9 is_stmt 0 view .LVU4745 ARM GAS /tmp/ccclMPzv.s page 448 13506 008e 436C ldr r3, [r0, #68] 5389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13507 .loc 1 5389 21 view .LVU4746 13508 0090 43F00403 orr r3, r3, #4 13509 0094 4364 str r3, [r0, #68] 5394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13510 .loc 1 5394 5 is_stmt 1 view .LVU4747 13511 0096 2021 movs r1, #32 13512 .LVL1009: 5394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13513 .loc 1 5394 5 is_stmt 0 view .LVU4748 13514 0098 FFF7FEFF bl I2C_Enable_IRQ 13515 .LVL1010: 5397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13516 .loc 1 5397 5 is_stmt 1 view .LVU4749 13517 009c 2046 mov r0, r4 13518 009e FFF7FEFF bl I2C_Flush_TXDR 13519 .LVL1011: 13520 .L854: 5497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13521 .loc 1 5497 3 view .LVU4750 5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13522 .loc 1 5500 3 view .LVU4751 5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13523 .loc 1 5500 3 view .LVU4752 13524 00a2 0020 movs r0, #0 13525 00a4 84F84000 strb r0, [r4, #64] 5500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13526 .loc 1 5500 3 view .LVU4753 5502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13527 .loc 1 5502 3 view .LVU4754 5503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13528 .loc 1 5503 1 is_stmt 0 view .LVU4755 13529 00a8 02B0 add sp, sp, #8 13530 .LCFI140: 13531 .cfi_remember_state 13532 .cfi_def_cfa_offset 8 13533 @ sp needed 13534 00aa 10BD pop {r4, pc} 13535 .LVL1012: 13536 .L857: 13537 .LCFI141: 13538 .cfi_restore_state 5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13539 .loc 1 5418 9 is_stmt 1 view .LVU4756 5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13540 .loc 1 5418 30 is_stmt 0 view .LVU4757 13541 00ac 638D ldrh r3, [r4, #42] 5418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13542 .loc 1 5418 24 view .LVU4758 13543 00ae 2385 strh r3, [r4, #40] @ movhi 5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13544 .loc 1 5419 9 is_stmt 1 view .LVU4759 5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13545 .loc 1 5419 17 is_stmt 0 view .LVU4760 13546 00b0 E36A ldr r3, [r4, #44] 5419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { ARM GAS /tmp/ccclMPzv.s page 449 13547 .loc 1 5419 12 view .LVU4761 13548 00b2 13F5803F cmn r3, #65536 13549 00b6 01D0 beq .L865 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13550 .loc 1 5421 11 is_stmt 1 view .LVU4762 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13551 .loc 1 5421 20 is_stmt 0 view .LVU4763 13552 00b8 E36A ldr r3, [r4, #44] 13553 .LVL1013: 5421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13554 .loc 1 5421 20 view .LVU4764 13555 00ba CDE7 b .L858 13556 .LVL1014: 13557 .L865: 5425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13558 .loc 1 5425 20 view .LVU4765 13559 00bc 4FF00073 mov r3, #33554432 13560 00c0 CAE7 b .L858 13561 .LVL1015: 13562 .L871: 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13563 .loc 1 5438 9 is_stmt 1 view .LVU4766 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13564 .loc 1 5438 13 is_stmt 0 view .LVU4767 13565 00c2 2268 ldr r2, [r4] 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13566 .loc 1 5438 23 view .LVU4768 13567 00c4 1368 ldr r3, [r2] 5438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13568 .loc 1 5438 29 view .LVU4769 13569 00c6 43F40043 orr r3, r3, #32768 13570 00ca 1360 str r3, [r2] 13571 00cc E9E7 b .L854 13572 .LVL1016: 13573 .L856: 5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13574 .loc 1 5448 7 is_stmt 1 view .LVU4770 5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13575 .loc 1 5448 11 is_stmt 0 view .LVU4771 13576 00ce 2368 ldr r3, [r4] 13577 00d0 5B68 ldr r3, [r3, #4] 5448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13578 .loc 1 5448 10 view .LVU4772 13579 00d2 13F0007F tst r3, #33554432 13580 00d6 03D1 bne .L860 5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13581 .loc 1 5451 9 is_stmt 1 view .LVU4773 13582 00d8 2046 mov r0, r4 13583 .LVL1017: 5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13584 .loc 1 5451 9 is_stmt 0 view .LVU4774 13585 00da FFF7FEFF bl I2C_ITMasterSeqCplt 13586 .LVL1018: 5451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13587 .loc 1 5451 9 view .LVU4775 13588 00de E0E7 b .L854 13589 .LVL1019: ARM GAS /tmp/ccclMPzv.s page 450 13590 .L860: 5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13591 .loc 1 5457 9 is_stmt 1 view .LVU4776 13592 00e0 4021 movs r1, #64 13593 .LVL1020: 5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13594 .loc 1 5457 9 is_stmt 0 view .LVU4777 13595 00e2 2046 mov r0, r4 13596 .LVL1021: 5457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13597 .loc 1 5457 9 view .LVU4778 13598 00e4 FFF7FEFF bl I2C_ITError 13599 .LVL1022: 13600 00e8 DBE7 b .L854 13601 .LVL1023: 13602 .L855: 5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13603 .loc 1 5461 8 is_stmt 1 view .LVU4779 5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13604 .loc 1 5461 11 is_stmt 0 view .LVU4780 13605 00ea 11F0400F tst r1, #64 13606 00ee 1CD0 beq .L861 5461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13607 .loc 1 5461 60 discriminator 1 view .LVU4781 13608 00f0 12F0400F tst r2, #64 13609 00f4 19D0 beq .L861 5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13610 .loc 1 5464 5 is_stmt 1 view .LVU4782 5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13611 .loc 1 5464 13 is_stmt 0 view .LVU4783 13612 00f6 638D ldrh r3, [r4, #42] 13613 00f8 9BB2 uxth r3, r3 5464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13614 .loc 1 5464 8 view .LVU4784 13615 00fa 8BB9 cbnz r3, .L862 5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13616 .loc 1 5466 7 is_stmt 1 view .LVU4785 5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13617 .loc 1 5466 11 is_stmt 0 view .LVU4786 13618 00fc 2368 ldr r3, [r4] 13619 00fe 5A68 ldr r2, [r3, #4] 13620 .LVL1024: 5466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13621 .loc 1 5466 10 view .LVU4787 13622 0100 12F0007F tst r2, #33554432 13623 0104 CDD1 bne .L854 5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13624 .loc 1 5469 9 is_stmt 1 view .LVU4788 5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13625 .loc 1 5469 17 is_stmt 0 view .LVU4789 13626 0106 E26A ldr r2, [r4, #44] 5469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13627 .loc 1 5469 12 view .LVU4790 13628 0108 12F5803F cmn r2, #65536 13629 010c 04D1 bne .L863 5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13630 .loc 1 5472 11 is_stmt 1 view .LVU4791 ARM GAS /tmp/ccclMPzv.s page 451 5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13631 .loc 1 5472 25 is_stmt 0 view .LVU4792 13632 010e 5A68 ldr r2, [r3, #4] 5472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13633 .loc 1 5472 31 view .LVU4793 13634 0110 42F48042 orr r2, r2, #16384 13635 0114 5A60 str r2, [r3, #4] 13636 0116 C4E7 b .L854 13637 .L863: 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13638 .loc 1 5477 11 is_stmt 1 view .LVU4794 13639 0118 2046 mov r0, r4 13640 .LVL1025: 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13641 .loc 1 5477 11 is_stmt 0 view .LVU4795 13642 011a FFF7FEFF bl I2C_ITMasterSeqCplt 13643 .LVL1026: 5477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13644 .loc 1 5477 11 view .LVU4796 13645 011e C0E7 b .L854 13646 .LVL1027: 13647 .L862: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13648 .loc 1 5485 7 is_stmt 1 view .LVU4797 13649 0120 4021 movs r1, #64 13650 .LVL1028: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13651 .loc 1 5485 7 is_stmt 0 view .LVU4798 13652 0122 2046 mov r0, r4 13653 .LVL1029: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13654 .loc 1 5485 7 view .LVU4799 13655 0124 FFF7FEFF bl I2C_ITError 13656 .LVL1030: 5485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13657 .loc 1 5485 7 view .LVU4800 13658 0128 BBE7 b .L854 13659 .LVL1031: 13660 .L861: 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13661 .loc 1 5488 8 is_stmt 1 view .LVU4801 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13662 .loc 1 5488 11 is_stmt 0 view .LVU4802 13663 012a 11F0200F tst r1, #32 13664 012e B8D0 beq .L854 5488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13665 .loc 1 5488 63 discriminator 1 view .LVU4803 13666 0130 12F0200F tst r2, #32 13667 0134 B5D0 beq .L854 5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13668 .loc 1 5492 5 is_stmt 1 view .LVU4804 13669 0136 2046 mov r0, r4 13670 .LVL1032: 5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13671 .loc 1 5492 5 is_stmt 0 view .LVU4805 13672 0138 FFF7FEFF bl I2C_ITMasterCplt 13673 .LVL1033: ARM GAS /tmp/ccclMPzv.s page 452 5492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13674 .loc 1 5492 5 view .LVU4806 13675 013c B1E7 b .L854 13676 .LVL1034: 13677 .L864: 13678 .LCFI142: 13679 .cfi_def_cfa_offset 0 13680 .cfi_restore 4 13681 .cfi_restore 14 5380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13682 .loc 1 5380 3 discriminator 1 view .LVU4807 13683 013e 0220 movs r0, #2 13684 .LVL1035: 5503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13685 .loc 1 5503 1 view .LVU4808 13686 0140 7047 bx lr 13687 .cfi_endproc 13688 .LFE381: 13690 .section .text.I2C_DMAError,"ax",%progbits 13691 .align 1 13692 .syntax unified 13693 .thumb 13694 .thumb_func 13696 I2C_DMAError: 13697 .LVL1036: 13698 .LFB399: 6892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13699 .loc 1 6892 1 is_stmt 1 view -0 13700 .cfi_startproc 13701 @ args = 0, pretend = 0, frame = 0 13702 @ frame_needed = 0, uses_anonymous_args = 0 6892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13703 .loc 1 6892 1 is_stmt 0 view .LVU4810 13704 0000 08B5 push {r3, lr} 13705 .LCFI143: 13706 .cfi_def_cfa_offset 8 13707 .cfi_offset 3, -8 13708 .cfi_offset 14, -4 6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13709 .loc 1 6894 3 is_stmt 1 view .LVU4811 6894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13710 .loc 1 6894 22 is_stmt 0 view .LVU4812 13711 0002 806A ldr r0, [r0, #40] 13712 .LVL1037: 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13713 .loc 1 6897 3 is_stmt 1 view .LVU4813 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13714 .loc 1 6897 7 is_stmt 0 view .LVU4814 13715 0004 0268 ldr r2, [r0] 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13716 .loc 1 6897 17 view .LVU4815 13717 0006 5368 ldr r3, [r2, #4] 6897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13718 .loc 1 6897 23 view .LVU4816 13719 0008 43F40043 orr r3, r3, #32768 13720 000c 5360 str r3, [r2, #4] 6900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } ARM GAS /tmp/ccclMPzv.s page 453 13721 .loc 1 6900 3 is_stmt 1 view .LVU4817 13722 000e 1021 movs r1, #16 13723 0010 FFF7FEFF bl I2C_ITError 13724 .LVL1038: 6901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13725 .loc 1 6901 1 is_stmt 0 view .LVU4818 13726 0014 08BD pop {r3, pc} 13727 .cfi_endproc 13728 .LFE399: 13730 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 13731 .align 1 13732 .syntax unified 13733 .thumb 13734 .thumb_func 13736 I2C_DMAMasterTransmitCplt: 13737 .LVL1039: 13738 .LFB395: 6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13739 .loc 1 6732 1 is_stmt 1 view -0 13740 .cfi_startproc 13741 @ args = 0, pretend = 0, frame = 0 13742 @ frame_needed = 0, uses_anonymous_args = 0 6732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13743 .loc 1 6732 1 is_stmt 0 view .LVU4820 13744 0000 10B5 push {r4, lr} 13745 .LCFI144: 13746 .cfi_def_cfa_offset 8 13747 .cfi_offset 4, -8 13748 .cfi_offset 14, -4 6734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13749 .loc 1 6734 3 is_stmt 1 view .LVU4821 6734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13750 .loc 1 6734 22 is_stmt 0 view .LVU4822 13751 0002 846A ldr r4, [r0, #40] 13752 .LVL1040: 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13753 .loc 1 6737 3 is_stmt 1 view .LVU4823 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13754 .loc 1 6737 7 is_stmt 0 view .LVU4824 13755 0004 2268 ldr r2, [r4] 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13756 .loc 1 6737 17 view .LVU4825 13757 0006 1368 ldr r3, [r2] 6737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13758 .loc 1 6737 23 view .LVU4826 13759 0008 23F48043 bic r3, r3, #16384 13760 000c 1360 str r3, [r2] 6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13761 .loc 1 6740 3 is_stmt 1 view .LVU4827 6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13762 .loc 1 6740 11 is_stmt 0 view .LVU4828 13763 000e 638D ldrh r3, [r4, #42] 13764 0010 9BB2 uxth r3, r3 6740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13765 .loc 1 6740 6 view .LVU4829 13766 0012 ABB1 cbz r3, .L881 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 454 13767 .loc 1 6749 5 is_stmt 1 view .LVU4830 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13768 .loc 1 6749 9 is_stmt 0 view .LVU4831 13769 0014 616A ldr r1, [r4, #36] 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13770 .loc 1 6749 27 view .LVU4832 13771 0016 238D ldrh r3, [r4, #40] 6749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13772 .loc 1 6749 20 view .LVU4833 13773 0018 1944 add r1, r1, r3 13774 001a 6162 str r1, [r4, #36] 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13775 .loc 1 6752 5 is_stmt 1 view .LVU4834 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13776 .loc 1 6752 13 is_stmt 0 view .LVU4835 13777 001c 638D ldrh r3, [r4, #42] 13778 001e 9BB2 uxth r3, r3 6752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13779 .loc 1 6752 8 view .LVU4836 13780 0020 FF2B cmp r3, #255 13781 0022 12D9 bls .L877 6754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13782 .loc 1 6754 7 is_stmt 1 view .LVU4837 6754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13783 .loc 1 6754 22 is_stmt 0 view .LVU4838 13784 0024 FF23 movs r3, #255 13785 0026 2385 strh r3, [r4, #40] @ movhi 13786 .L878: 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13787 .loc 1 6762 5 is_stmt 1 view .LVU4839 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13788 .loc 1 6762 81 is_stmt 0 view .LVU4840 13789 0028 2268 ldr r2, [r4] 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13790 .loc 1 6762 9 view .LVU4841 13791 002a 238D ldrh r3, [r4, #40] 13792 002c 2832 adds r2, r2, #40 13793 002e A06B ldr r0, [r4, #56] 13794 .LVL1041: 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13795 .loc 1 6762 9 view .LVU4842 13796 0030 FFF7FEFF bl HAL_DMA_Start_IT 13797 .LVL1042: 6762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13798 .loc 1 6762 8 discriminator 1 view .LVU4843 13799 0034 60B1 cbz r0, .L879 6766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13800 .loc 1 6766 7 is_stmt 1 view .LVU4844 13801 0036 1021 movs r1, #16 13802 0038 2046 mov r0, r4 13803 003a FFF7FEFF bl I2C_ITError 13804 .LVL1043: 13805 .L874: 6774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13806 .loc 1 6774 1 is_stmt 0 view .LVU4845 13807 003e 10BD pop {r4, pc} 13808 .LVL1044: ARM GAS /tmp/ccclMPzv.s page 455 13809 .L881: 6743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13810 .loc 1 6743 5 is_stmt 1 view .LVU4846 13811 0040 2021 movs r1, #32 13812 0042 2046 mov r0, r4 13813 .LVL1045: 6743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13814 .loc 1 6743 5 is_stmt 0 view .LVU4847 13815 0044 FFF7FEFF bl I2C_Enable_IRQ 13816 .LVL1046: 13817 0048 F9E7 b .L874 13818 .LVL1047: 13819 .L877: 6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13820 .loc 1 6758 7 is_stmt 1 view .LVU4848 6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13821 .loc 1 6758 28 is_stmt 0 view .LVU4849 13822 004a 638D ldrh r3, [r4, #42] 6758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13823 .loc 1 6758 22 view .LVU4850 13824 004c 2385 strh r3, [r4, #40] @ movhi 13825 004e EBE7 b .L878 13826 .LVL1048: 13827 .L879: 6771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13828 .loc 1 6771 7 is_stmt 1 view .LVU4851 13829 0050 4021 movs r1, #64 13830 0052 2046 mov r0, r4 13831 0054 FFF7FEFF bl I2C_Enable_IRQ 13832 .LVL1049: 6774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13833 .loc 1 6774 1 is_stmt 0 view .LVU4852 13834 0058 F1E7 b .L874 13835 .cfi_endproc 13836 .LFE395: 13838 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 13839 .align 1 13840 .syntax unified 13841 .thumb 13842 .thumb_func 13844 I2C_DMAMasterReceiveCplt: 13845 .LVL1050: 13846 .LFB397: 6812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13847 .loc 1 6812 1 is_stmt 1 view -0 13848 .cfi_startproc 13849 @ args = 0, pretend = 0, frame = 0 13850 @ frame_needed = 0, uses_anonymous_args = 0 6812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13851 .loc 1 6812 1 is_stmt 0 view .LVU4854 13852 0000 10B5 push {r4, lr} 13853 .LCFI145: 13854 .cfi_def_cfa_offset 8 13855 .cfi_offset 4, -8 13856 .cfi_offset 14, -4 6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13857 .loc 1 6814 3 is_stmt 1 view .LVU4855 ARM GAS /tmp/ccclMPzv.s page 456 6814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13858 .loc 1 6814 22 is_stmt 0 view .LVU4856 13859 0002 846A ldr r4, [r0, #40] 13860 .LVL1051: 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13861 .loc 1 6817 3 is_stmt 1 view .LVU4857 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13862 .loc 1 6817 7 is_stmt 0 view .LVU4858 13863 0004 2268 ldr r2, [r4] 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13864 .loc 1 6817 17 view .LVU4859 13865 0006 1368 ldr r3, [r2] 6817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13866 .loc 1 6817 23 view .LVU4860 13867 0008 23F40043 bic r3, r3, #32768 13868 000c 1360 str r3, [r2] 6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13869 .loc 1 6820 3 is_stmt 1 view .LVU4861 6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13870 .loc 1 6820 11 is_stmt 0 view .LVU4862 13871 000e 638D ldrh r3, [r4, #42] 13872 0010 9BB2 uxth r3, r3 6820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13873 .loc 1 6820 6 view .LVU4863 13874 0012 ABB1 cbz r3, .L889 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13875 .loc 1 6829 5 is_stmt 1 view .LVU4864 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13876 .loc 1 6829 9 is_stmt 0 view .LVU4865 13877 0014 626A ldr r2, [r4, #36] 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13878 .loc 1 6829 27 view .LVU4866 13879 0016 238D ldrh r3, [r4, #40] 6829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13880 .loc 1 6829 20 view .LVU4867 13881 0018 1A44 add r2, r2, r3 13882 001a 6262 str r2, [r4, #36] 6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13883 .loc 1 6832 5 is_stmt 1 view .LVU4868 6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13884 .loc 1 6832 13 is_stmt 0 view .LVU4869 13885 001c 638D ldrh r3, [r4, #42] 13886 001e 9BB2 uxth r3, r3 6832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 13887 .loc 1 6832 8 view .LVU4870 13888 0020 FF2B cmp r3, #255 13889 0022 12D9 bls .L885 6834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13890 .loc 1 6834 7 is_stmt 1 view .LVU4871 6834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13891 .loc 1 6834 22 is_stmt 0 view .LVU4872 13892 0024 FF23 movs r3, #255 13893 0026 2385 strh r3, [r4, #40] @ movhi 13894 .L886: 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13895 .loc 1 6842 5 is_stmt 1 view .LVU4873 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) ARM GAS /tmp/ccclMPzv.s page 457 13896 .loc 1 6842 55 is_stmt 0 view .LVU4874 13897 0028 2168 ldr r1, [r4] 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13898 .loc 1 6842 9 view .LVU4875 13899 002a 238D ldrh r3, [r4, #40] 13900 002c 2431 adds r1, r1, #36 13901 002e E06B ldr r0, [r4, #60] 13902 .LVL1052: 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13903 .loc 1 6842 9 view .LVU4876 13904 0030 FFF7FEFF bl HAL_DMA_Start_IT 13905 .LVL1053: 6842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13906 .loc 1 6842 8 discriminator 1 view .LVU4877 13907 0034 60B1 cbz r0, .L887 6846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13908 .loc 1 6846 7 is_stmt 1 view .LVU4878 13909 0036 1021 movs r1, #16 13910 0038 2046 mov r0, r4 13911 003a FFF7FEFF bl I2C_ITError 13912 .LVL1054: 13913 .L882: 6854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13914 .loc 1 6854 1 is_stmt 0 view .LVU4879 13915 003e 10BD pop {r4, pc} 13916 .LVL1055: 13917 .L889: 6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13918 .loc 1 6823 5 is_stmt 1 view .LVU4880 13919 0040 2021 movs r1, #32 13920 0042 2046 mov r0, r4 13921 .LVL1056: 6823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13922 .loc 1 6823 5 is_stmt 0 view .LVU4881 13923 0044 FFF7FEFF bl I2C_Enable_IRQ 13924 .LVL1057: 13925 0048 F9E7 b .L882 13926 .LVL1058: 13927 .L885: 6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13928 .loc 1 6838 7 is_stmt 1 view .LVU4882 6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13929 .loc 1 6838 28 is_stmt 0 view .LVU4883 13930 004a 638D ldrh r3, [r4, #42] 6838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13931 .loc 1 6838 22 view .LVU4884 13932 004c 2385 strh r3, [r4, #40] @ movhi 13933 004e EBE7 b .L886 13934 .LVL1059: 13935 .L887: 6851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 13936 .loc 1 6851 7 is_stmt 1 view .LVU4885 13937 0050 4021 movs r1, #64 13938 0052 2046 mov r0, r4 13939 0054 FFF7FEFF bl I2C_Enable_IRQ 13940 .LVL1060: 6854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 458 13941 .loc 1 6854 1 is_stmt 0 view .LVU4886 13942 0058 F1E7 b .L882 13943 .cfi_endproc 13944 .LFE397: 13946 .section .text.I2C_Mem_ISR_IT,"ax",%progbits 13947 .align 1 13948 .syntax unified 13949 .thumb 13950 .thumb_func 13952 I2C_Mem_ISR_IT: 13953 .LVL1061: 13954 .LFB379: 5092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 13955 .loc 1 5092 1 is_stmt 1 view -0 13956 .cfi_startproc 13957 @ args = 0, pretend = 0, frame = 0 13958 @ frame_needed = 0, uses_anonymous_args = 0 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 13959 .loc 1 5093 3 view .LVU4888 5094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13960 .loc 1 5094 3 view .LVU4889 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13961 .loc 1 5097 3 view .LVU4890 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13962 .loc 1 5097 3 view .LVU4891 13963 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13964 0004 012B cmp r3, #1 13965 0006 00F0C180 beq .L903 5092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 13966 .loc 1 5092 1 is_stmt 0 view .LVU4892 13967 000a 70B5 push {r4, r5, r6, lr} 13968 .LCFI146: 13969 .cfi_def_cfa_offset 16 13970 .cfi_offset 4, -16 13971 .cfi_offset 5, -12 13972 .cfi_offset 6, -8 13973 .cfi_offset 14, -4 13974 000c 82B0 sub sp, sp, #8 13975 .LCFI147: 13976 .cfi_def_cfa_offset 24 13977 000e 0446 mov r4, r0 13978 0010 0D46 mov r5, r1 13979 0012 1646 mov r6, r2 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13980 .loc 1 5097 3 is_stmt 1 discriminator 2 view .LVU4893 13981 0014 0123 movs r3, #1 13982 0016 80F84030 strb r3, [r0, #64] 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13983 .loc 1 5097 3 discriminator 2 view .LVU4894 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13984 .loc 1 5099 3 view .LVU4895 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13985 .loc 1 5099 6 is_stmt 0 view .LVU4896 13986 001a 11F0100F tst r1, #16 13987 001e 02D0 beq .L892 5099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13988 .loc 1 5099 58 discriminator 1 view .LVU4897 ARM GAS /tmp/ccclMPzv.s page 459 13989 0020 12F0100F tst r2, #16 13990 0024 22D1 bne .L909 13991 .L892: 5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13992 .loc 1 5113 8 is_stmt 1 view .LVU4898 5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13993 .loc 1 5113 11 is_stmt 0 view .LVU4899 13994 0026 15F0040F tst r5, #4 13995 002a 29D0 beq .L894 5113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13996 .loc 1 5113 65 discriminator 1 view .LVU4900 13997 002c 16F0040F tst r6, #4 13998 0030 26D0 beq .L894 5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 13999 .loc 1 5117 5 is_stmt 1 view .LVU4901 5117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14000 .loc 1 5117 16 is_stmt 0 view .LVU4902 14001 0032 25F00405 bic r5, r5, #4 14002 .LVL1062: 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14003 .loc 1 5120 5 is_stmt 1 view .LVU4903 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14004 .loc 1 5120 36 is_stmt 0 view .LVU4904 14005 0036 2368 ldr r3, [r4] 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14006 .loc 1 5120 46 view .LVU4905 14007 0038 5A6A ldr r2, [r3, #36] 14008 .LVL1063: 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14009 .loc 1 5120 10 view .LVU4906 14010 003a 636A ldr r3, [r4, #36] 5120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14011 .loc 1 5120 21 view .LVU4907 14012 003c 1A70 strb r2, [r3] 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14013 .loc 1 5123 5 is_stmt 1 view .LVU4908 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14014 .loc 1 5123 9 is_stmt 0 view .LVU4909 14015 003e 636A ldr r3, [r4, #36] 5123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14016 .loc 1 5123 19 view .LVU4910 14017 0040 0133 adds r3, r3, #1 14018 0042 6362 str r3, [r4, #36] 5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14019 .loc 1 5125 5 is_stmt 1 view .LVU4911 5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14020 .loc 1 5125 9 is_stmt 0 view .LVU4912 14021 0044 238D ldrh r3, [r4, #40] 5125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14022 .loc 1 5125 19 view .LVU4913 14023 0046 013B subs r3, r3, #1 14024 0048 2385 strh r3, [r4, #40] @ movhi 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14025 .loc 1 5126 5 is_stmt 1 view .LVU4914 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14026 .loc 1 5126 9 is_stmt 0 view .LVU4915 14027 004a 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccclMPzv.s page 460 14028 004c 9BB2 uxth r3, r3 5126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14029 .loc 1 5126 20 view .LVU4916 14030 004e 013B subs r3, r3, #1 14031 0050 9BB2 uxth r3, r3 14032 0052 6385 strh r3, [r4, #42] @ movhi 14033 .LVL1064: 14034 .L893: 5210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14035 .loc 1 5210 3 is_stmt 1 view .LVU4917 5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14036 .loc 1 5212 3 view .LVU4918 5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14037 .loc 1 5212 6 is_stmt 0 view .LVU4919 14038 0054 15F0200F tst r5, #32 14039 0058 03D0 beq .L902 5212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14040 .loc 1 5212 61 discriminator 1 view .LVU4920 14041 005a 16F0200F tst r6, #32 14042 005e 40F09080 bne .L910 14043 .L902: 5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14044 .loc 1 5220 3 is_stmt 1 view .LVU4921 5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14045 .loc 1 5220 3 view .LVU4922 14046 0062 0020 movs r0, #0 14047 0064 84F84000 strb r0, [r4, #64] 5220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14048 .loc 1 5220 3 view .LVU4923 5222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14049 .loc 1 5222 3 view .LVU4924 5223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14050 .loc 1 5223 1 is_stmt 0 view .LVU4925 14051 0068 02B0 add sp, sp, #8 14052 .LCFI148: 14053 .cfi_remember_state 14054 .cfi_def_cfa_offset 16 14055 @ sp needed 14056 006a 70BD pop {r4, r5, r6, pc} 14057 .LVL1065: 14058 .L909: 14059 .LCFI149: 14060 .cfi_restore_state 5103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14061 .loc 1 5103 5 is_stmt 1 view .LVU4926 14062 006c 0368 ldr r3, [r0] 14063 006e 1022 movs r2, #16 14064 .LVL1066: 5103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14065 .loc 1 5103 5 is_stmt 0 view .LVU4927 14066 0070 DA61 str r2, [r3, #28] 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14067 .loc 1 5108 5 is_stmt 1 view .LVU4928 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14068 .loc 1 5108 9 is_stmt 0 view .LVU4929 14069 0072 436C ldr r3, [r0, #68] 5108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** ARM GAS /tmp/ccclMPzv.s page 461 14070 .loc 1 5108 21 view .LVU4930 14071 0074 43F00403 orr r3, r3, #4 14072 0078 4364 str r3, [r0, #68] 5111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14073 .loc 1 5111 5 is_stmt 1 view .LVU4931 14074 007a FFF7FEFF bl I2C_Flush_TXDR 14075 .LVL1067: 5111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14076 .loc 1 5111 5 is_stmt 0 view .LVU4932 14077 007e E9E7 b .L893 14078 .LVL1068: 14079 .L894: 5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14080 .loc 1 5128 8 is_stmt 1 view .LVU4933 5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14081 .loc 1 5128 11 is_stmt 0 view .LVU4934 14082 0080 15F0020F tst r5, #2 14083 0084 1DD0 beq .L895 5128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14084 .loc 1 5128 65 discriminator 1 view .LVU4935 14085 0086 16F0020F tst r6, #2 14086 008a 1AD0 beq .L895 5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14087 .loc 1 5131 5 is_stmt 1 view .LVU4936 5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14088 .loc 1 5131 13 is_stmt 0 view .LVU4937 14089 008c 236D ldr r3, [r4, #80] 5131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14090 .loc 1 5131 8 view .LVU4938 14091 008e B3F1FF3F cmp r3, #-1 14092 0092 06D0 beq .L911 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14093 .loc 1 5145 7 is_stmt 1 view .LVU4939 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14094 .loc 1 5145 11 is_stmt 0 view .LVU4940 14095 0094 2368 ldr r3, [r4] 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14096 .loc 1 5145 34 view .LVU4941 14097 0096 226D ldr r2, [r4, #80] 14098 .LVL1069: 5145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14099 .loc 1 5145 28 view .LVU4942 14100 0098 9A62 str r2, [r3, #40] 5148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14101 .loc 1 5148 7 is_stmt 1 view .LVU4943 5148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14102 .loc 1 5148 24 is_stmt 0 view .LVU4944 14103 009a 4FF0FF33 mov r3, #-1 14104 009e 2365 str r3, [r4, #80] 14105 00a0 D8E7 b .L893 14106 .LVL1070: 14107 .L911: 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14108 .loc 1 5134 7 is_stmt 1 view .LVU4945 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14109 .loc 1 5134 35 is_stmt 0 view .LVU4946 14110 00a2 626A ldr r2, [r4, #36] ARM GAS /tmp/ccclMPzv.s page 462 14111 .LVL1071: 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14112 .loc 1 5134 11 view .LVU4947 14113 00a4 2368 ldr r3, [r4] 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14114 .loc 1 5134 30 view .LVU4948 14115 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2 5134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14116 .loc 1 5134 28 view .LVU4949 14117 00a8 9A62 str r2, [r3, #40] 5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14118 .loc 1 5137 7 is_stmt 1 view .LVU4950 5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14119 .loc 1 5137 11 is_stmt 0 view .LVU4951 14120 00aa 636A ldr r3, [r4, #36] 5137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14121 .loc 1 5137 21 view .LVU4952 14122 00ac 0133 adds r3, r3, #1 14123 00ae 6362 str r3, [r4, #36] 5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14124 .loc 1 5139 7 is_stmt 1 view .LVU4953 5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14125 .loc 1 5139 11 is_stmt 0 view .LVU4954 14126 00b0 238D ldrh r3, [r4, #40] 5139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** hi2c->XferCount--; 14127 .loc 1 5139 21 view .LVU4955 14128 00b2 013B subs r3, r3, #1 14129 00b4 2385 strh r3, [r4, #40] @ movhi 5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14130 .loc 1 5140 7 is_stmt 1 view .LVU4956 5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14131 .loc 1 5140 11 is_stmt 0 view .LVU4957 14132 00b6 638D ldrh r3, [r4, #42] 14133 00b8 9BB2 uxth r3, r3 5140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14134 .loc 1 5140 22 view .LVU4958 14135 00ba 013B subs r3, r3, #1 14136 00bc 9BB2 uxth r3, r3 14137 00be 6385 strh r3, [r4, #42] @ movhi 14138 00c0 C8E7 b .L893 14139 .LVL1072: 14140 .L895: 5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14141 .loc 1 5151 8 is_stmt 1 view .LVU4959 5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14142 .loc 1 5151 11 is_stmt 0 view .LVU4960 14143 00c2 15F0800F tst r5, #128 14144 00c6 2AD0 beq .L897 5151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14145 .loc 1 5151 64 discriminator 1 view .LVU4961 14146 00c8 16F0400F tst r6, #64 14147 00cc 27D0 beq .L897 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14148 .loc 1 5154 5 is_stmt 1 view .LVU4962 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14149 .loc 1 5154 14 is_stmt 0 view .LVU4963 14150 00ce 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccclMPzv.s page 463 14151 00d0 9BB2 uxth r3, r3 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14152 .loc 1 5154 8 view .LVU4964 14153 00d2 FBB1 cbz r3, .L898 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14154 .loc 1 5154 41 discriminator 1 view .LVU4965 14155 00d4 238D ldrh r3, [r4, #40] 5154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14156 .loc 1 5154 33 discriminator 1 view .LVU4966 14157 00d6 EBB9 cbnz r3, .L898 5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14158 .loc 1 5156 7 is_stmt 1 view .LVU4967 5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14159 .loc 1 5156 15 is_stmt 0 view .LVU4968 14160 00d8 638D ldrh r3, [r4, #42] 14161 00da 9BB2 uxth r3, r3 5156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14162 .loc 1 5156 10 view .LVU4969 14163 00dc FF2B cmp r3, #255 14164 00de 0BD9 bls .L899 5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14165 .loc 1 5158 9 is_stmt 1 view .LVU4970 5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14166 .loc 1 5158 24 is_stmt 0 view .LVU4971 14167 00e0 FF22 movs r2, #255 14168 .LVL1073: 5158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14169 .loc 1 5158 24 view .LVU4972 14170 00e2 2285 strh r2, [r4, #40] @ movhi 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14171 .loc 1 5159 9 is_stmt 1 view .LVU4973 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14172 .loc 1 5159 48 is_stmt 0 view .LVU4974 14173 00e4 E16C ldr r1, [r4, #76] 14174 .LVL1074: 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14175 .loc 1 5159 9 view .LVU4975 14176 00e6 0023 movs r3, #0 14177 00e8 0093 str r3, [sp] 14178 00ea 4FF08073 mov r3, #16777216 14179 00ee 89B2 uxth r1, r1 14180 00f0 2046 mov r0, r4 14181 .LVL1075: 5159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14182 .loc 1 5159 9 view .LVU4976 14183 00f2 FFF7FEFF bl I2C_TransferConfig 14184 .LVL1076: 14185 00f6 ADE7 b .L893 14186 .LVL1077: 14187 .L899: 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14188 .loc 1 5164 9 is_stmt 1 view .LVU4977 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14189 .loc 1 5164 30 is_stmt 0 view .LVU4978 14190 00f8 628D ldrh r2, [r4, #42] 14191 .LVL1078: 5164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, ARM GAS /tmp/ccclMPzv.s page 464 14192 .loc 1 5164 30 view .LVU4979 14193 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, 14194 .loc 1 5164 24 view .LVU4980 14195 00fc 2285 strh r2, [r4, #40] @ movhi 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14196 .loc 1 5165 9 is_stmt 1 view .LVU4981 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14197 .loc 1 5165 48 is_stmt 0 view .LVU4982 14198 00fe E16C ldr r1, [r4, #76] 14199 .LVL1079: 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14200 .loc 1 5165 9 view .LVU4983 14201 0100 0023 movs r3, #0 14202 0102 0093 str r3, [sp] 14203 0104 4FF00073 mov r3, #33554432 14204 0108 D2B2 uxtb r2, r2 14205 010a 89B2 uxth r1, r1 14206 010c 2046 mov r0, r4 14207 .LVL1080: 5165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14208 .loc 1 5165 9 view .LVU4984 14209 010e FFF7FEFF bl I2C_TransferConfig 14210 .LVL1081: 14211 0112 9FE7 b .L893 14212 .LVL1082: 14213 .L898: 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14214 .loc 1 5173 7 is_stmt 1 view .LVU4985 14215 0114 4021 movs r1, #64 14216 .LVL1083: 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14217 .loc 1 5173 7 is_stmt 0 view .LVU4986 14218 0116 2046 mov r0, r4 14219 .LVL1084: 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14220 .loc 1 5173 7 view .LVU4987 14221 0118 FFF7FEFF bl I2C_ITError 14222 .LVL1085: 5173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14223 .loc 1 5173 7 view .LVU4988 14224 011c 9AE7 b .L893 14225 .LVL1086: 14226 .L897: 5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14227 .loc 1 5176 8 is_stmt 1 view .LVU4989 5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14228 .loc 1 5176 11 is_stmt 0 view .LVU4990 14229 011e 15F0400F tst r5, #64 14230 0122 97D0 beq .L893 5176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14231 .loc 1 5176 63 discriminator 1 view .LVU4991 14232 0124 16F0400F tst r6, #64 14233 0128 94D0 beq .L893 5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14234 .loc 1 5180 5 is_stmt 1 view .LVU4992 14235 012a 0121 movs r1, #1 ARM GAS /tmp/ccclMPzv.s page 465 14236 .LVL1087: 5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14237 .loc 1 5180 5 is_stmt 0 view .LVU4993 14238 012c 2046 mov r0, r4 14239 .LVL1088: 5180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14240 .loc 1 5180 5 view .LVU4994 14241 012e FFF7FEFF bl I2C_Disable_IRQ 14242 .LVL1089: 5183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14243 .loc 1 5183 5 is_stmt 1 view .LVU4995 14244 0132 0221 movs r1, #2 14245 0134 2046 mov r0, r4 14246 0136 FFF7FEFF bl I2C_Enable_IRQ 14247 .LVL1090: 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14248 .loc 1 5185 5 view .LVU4996 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14249 .loc 1 5185 13 is_stmt 0 view .LVU4997 14250 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 14251 013e DBB2 uxtb r3, r3 5185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14252 .loc 1 5185 8 view .LVU4998 14253 0140 222B cmp r3, #34 14254 0142 0FD0 beq .L904 5093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14255 .loc 1 5093 12 view .LVU4999 14256 0144 1248 ldr r0, .L912 14257 .L900: 14258 .LVL1091: 5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14259 .loc 1 5190 5 is_stmt 1 view .LVU5000 5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14260 .loc 1 5190 13 is_stmt 0 view .LVU5001 14261 0146 638D ldrh r3, [r4, #42] 14262 0148 9BB2 uxth r3, r3 5190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14263 .loc 1 5190 8 view .LVU5002 14264 014a FF2B cmp r3, #255 14265 014c 0CD9 bls .L901 5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14266 .loc 1 5192 7 is_stmt 1 view .LVU5003 5192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14267 .loc 1 5192 22 is_stmt 0 view .LVU5004 14268 014e FF22 movs r2, #255 14269 0150 2285 strh r2, [r4, #40] @ movhi 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14270 .loc 1 5195 7 is_stmt 1 view .LVU5005 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14271 .loc 1 5195 46 is_stmt 0 view .LVU5006 14272 0152 E16C ldr r1, [r4, #76] 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14273 .loc 1 5195 7 view .LVU5007 14274 0154 0090 str r0, [sp] 14275 0156 4FF08073 mov r3, #16777216 14276 015a 89B2 uxth r1, r1 14277 015c 2046 mov r0, r4 ARM GAS /tmp/ccclMPzv.s page 466 14278 .LVL1092: 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14279 .loc 1 5195 7 view .LVU5008 14280 015e FFF7FEFF bl I2C_TransferConfig 14281 .LVL1093: 5195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14282 .loc 1 5195 7 view .LVU5009 14283 0162 77E7 b .L893 14284 .LVL1094: 14285 .L904: 5187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14286 .loc 1 5187 17 view .LVU5010 14287 0164 0B48 ldr r0, .L912+4 14288 0166 EEE7 b .L900 14289 .LVL1095: 14290 .L901: 5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14291 .loc 1 5200 7 is_stmt 1 view .LVU5011 5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14292 .loc 1 5200 28 is_stmt 0 view .LVU5012 14293 0168 628D ldrh r2, [r4, #42] 14294 016a 92B2 uxth r2, r2 5200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14295 .loc 1 5200 22 view .LVU5013 14296 016c 2285 strh r2, [r4, #40] @ movhi 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14297 .loc 1 5203 7 is_stmt 1 view .LVU5014 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14298 .loc 1 5203 46 is_stmt 0 view .LVU5015 14299 016e E16C ldr r1, [r4, #76] 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14300 .loc 1 5203 7 view .LVU5016 14301 0170 0090 str r0, [sp] 14302 0172 4FF00073 mov r3, #33554432 14303 0176 D2B2 uxtb r2, r2 14304 0178 89B2 uxth r1, r1 14305 017a 2046 mov r0, r4 14306 .LVL1096: 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14307 .loc 1 5203 7 view .LVU5017 14308 017c FFF7FEFF bl I2C_TransferConfig 14309 .LVL1097: 5203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14310 .loc 1 5203 7 view .LVU5018 14311 0180 68E7 b .L893 14312 .LVL1098: 14313 .L910: 5216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14314 .loc 1 5216 5 is_stmt 1 view .LVU5019 14315 0182 2946 mov r1, r5 14316 0184 2046 mov r0, r4 14317 0186 FFF7FEFF bl I2C_ITMasterCplt 14318 .LVL1099: 14319 018a 6AE7 b .L902 14320 .LVL1100: 14321 .L903: 14322 .LCFI150: ARM GAS /tmp/ccclMPzv.s page 467 14323 .cfi_def_cfa_offset 0 14324 .cfi_restore 4 14325 .cfi_restore 5 14326 .cfi_restore 6 14327 .cfi_restore 14 5097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14328 .loc 1 5097 3 is_stmt 0 discriminator 1 view .LVU5020 14329 018c 0220 movs r0, #2 14330 .LVL1101: 5223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14331 .loc 1 5223 1 view .LVU5021 14332 018e 7047 bx lr 14333 .L913: 14334 .align 2 14335 .L912: 14336 0190 00200080 .word -2147475456 14337 0194 00240080 .word -2147474432 14338 .cfi_endproc 14339 .LFE379: 14341 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 14342 .align 1 14343 .global HAL_I2C_ER_IRQHandler 14344 .syntax unified 14345 .thumb 14346 .thumb_func 14348 HAL_I2C_ER_IRQHandler: 14349 .LVL1102: 14350 .LFB364: 4658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14351 .loc 1 4658 1 is_stmt 1 view -0 14352 .cfi_startproc 14353 @ args = 0, pretend = 0, frame = 0 14354 @ 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); 14355 .loc 1 4658 1 is_stmt 0 view .LVU5023 14356 0000 10B5 push {r4, lr} 14357 .LCFI151: 14358 .cfi_def_cfa_offset 8 14359 .cfi_offset 4, -8 14360 .cfi_offset 14, -4 4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14361 .loc 1 4659 3 is_stmt 1 view .LVU5024 4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14362 .loc 1 4659 24 is_stmt 0 view .LVU5025 14363 0002 0268 ldr r2, [r0] 4659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14364 .loc 1 4659 12 view .LVU5026 14365 0004 9369 ldr r3, [r2, #24] 14366 .LVL1103: 4660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 14367 .loc 1 4660 3 is_stmt 1 view .LVU5027 4660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** uint32_t tmperror; 14368 .loc 1 4660 12 is_stmt 0 view .LVU5028 14369 0006 1168 ldr r1, [r2] 14370 .LVL1104: 4661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14371 .loc 1 4661 3 is_stmt 1 view .LVU5029 ARM GAS /tmp/ccclMPzv.s page 468 4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14372 .loc 1 4664 3 view .LVU5030 4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14373 .loc 1 4664 6 is_stmt 0 view .LVU5031 14374 0008 13F4807F tst r3, #256 14375 000c 09D0 beq .L915 4664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14376 .loc 1 4664 57 discriminator 1 view .LVU5032 14377 000e 11F0800F tst r1, #128 14378 0012 06D0 beq .L915 4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14379 .loc 1 4667 5 is_stmt 1 view .LVU5033 4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14380 .loc 1 4667 9 is_stmt 0 view .LVU5034 14381 0014 446C ldr r4, [r0, #68] 4667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14382 .loc 1 4667 21 view .LVU5035 14383 0016 44F00104 orr r4, r4, #1 14384 001a 4464 str r4, [r0, #68] 4670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14385 .loc 1 4670 5 is_stmt 1 view .LVU5036 14386 001c 4FF48074 mov r4, #256 14387 0020 D461 str r4, [r2, #28] 14388 .L915: 4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14389 .loc 1 4674 3 view .LVU5037 4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14390 .loc 1 4674 6 is_stmt 0 view .LVU5038 14391 0022 13F4806F tst r3, #1024 14392 0026 0AD0 beq .L916 4674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14393 .loc 1 4674 56 discriminator 1 view .LVU5039 14394 0028 11F0800F tst r1, #128 14395 002c 07D0 beq .L916 4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14396 .loc 1 4677 5 is_stmt 1 view .LVU5040 4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14397 .loc 1 4677 9 is_stmt 0 view .LVU5041 14398 002e 426C ldr r2, [r0, #68] 4677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14399 .loc 1 4677 21 view .LVU5042 14400 0030 42F00802 orr r2, r2, #8 14401 0034 4264 str r2, [r0, #68] 4680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14402 .loc 1 4680 5 is_stmt 1 view .LVU5043 14403 0036 0268 ldr r2, [r0] 14404 0038 4FF48064 mov r4, #1024 14405 003c D461 str r4, [r2, #28] 14406 .L916: 4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14407 .loc 1 4684 3 view .LVU5044 4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14408 .loc 1 4684 6 is_stmt 0 view .LVU5045 14409 003e 13F4007F tst r3, #512 14410 0042 0AD0 beq .L917 4684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14411 .loc 1 4684 57 discriminator 1 view .LVU5046 ARM GAS /tmp/ccclMPzv.s page 469 14412 0044 11F0800F tst r1, #128 14413 0048 07D0 beq .L917 4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14414 .loc 1 4687 5 is_stmt 1 view .LVU5047 4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14415 .loc 1 4687 9 is_stmt 0 view .LVU5048 14416 004a 436C ldr r3, [r0, #68] 14417 .LVL1105: 4687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14418 .loc 1 4687 21 view .LVU5049 14419 004c 43F00203 orr r3, r3, #2 14420 0050 4364 str r3, [r0, #68] 4690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14421 .loc 1 4690 5 is_stmt 1 view .LVU5050 14422 0052 0368 ldr r3, [r0] 14423 0054 4FF40072 mov r2, #512 14424 0058 DA61 str r2, [r3, #28] 14425 .L917: 4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14426 .loc 1 4694 3 view .LVU5051 4694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14427 .loc 1 4694 12 is_stmt 0 view .LVU5052 14428 005a 416C ldr r1, [r0, #68] 14429 .LVL1106: 4697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14430 .loc 1 4697 3 is_stmt 1 view .LVU5053 4697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14431 .loc 1 4697 6 is_stmt 0 view .LVU5054 14432 005c 11F00B0F tst r1, #11 14433 0060 00D1 bne .L920 14434 .LVL1107: 14435 .L914: 4701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14436 .loc 1 4701 1 view .LVU5055 14437 0062 10BD pop {r4, pc} 14438 .LVL1108: 14439 .L920: 4699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14440 .loc 1 4699 5 is_stmt 1 view .LVU5056 14441 0064 FFF7FEFF bl I2C_ITError 14442 .LVL1109: 4701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14443 .loc 1 4701 1 is_stmt 0 view .LVU5057 14444 0068 FBE7 b .L914 14445 .cfi_endproc 14446 .LFE364: 14448 .section .text.I2C_DMAAbort,"ax",%progbits 14449 .align 1 14450 .syntax unified 14451 .thumb 14452 .thumb_func 14454 I2C_DMAAbort: 14455 .LVL1110: 14456 .LFB400: 6911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14457 .loc 1 6911 1 is_stmt 1 view -0 14458 .cfi_startproc ARM GAS /tmp/ccclMPzv.s page 470 14459 @ args = 0, pretend = 0, frame = 0 14460 @ frame_needed = 0, uses_anonymous_args = 0 6911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14461 .loc 1 6911 1 is_stmt 0 view .LVU5059 14462 0000 08B5 push {r3, lr} 14463 .LCFI152: 14464 .cfi_def_cfa_offset 8 14465 .cfi_offset 3, -8 14466 .cfi_offset 14, -4 6913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14467 .loc 1 6913 3 is_stmt 1 view .LVU5060 6913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14468 .loc 1 6913 22 is_stmt 0 view .LVU5061 14469 0002 806A ldr r0, [r0, #40] 14470 .LVL1111: 6916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14471 .loc 1 6916 3 is_stmt 1 view .LVU5062 6916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14472 .loc 1 6916 11 is_stmt 0 view .LVU5063 14473 0004 836B ldr r3, [r0, #56] 6916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14474 .loc 1 6916 6 view .LVU5064 14475 0006 0BB1 cbz r3, .L922 6918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14476 .loc 1 6918 5 is_stmt 1 view .LVU5065 6918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14477 .loc 1 6918 37 is_stmt 0 view .LVU5066 14478 0008 0022 movs r2, #0 14479 000a 9A63 str r2, [r3, #56] 14480 .L922: 6920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14481 .loc 1 6920 3 is_stmt 1 view .LVU5067 6920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14482 .loc 1 6920 11 is_stmt 0 view .LVU5068 14483 000c C36B ldr r3, [r0, #60] 6920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** { 14484 .loc 1 6920 6 view .LVU5069 14485 000e 0BB1 cbz r3, .L923 6922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14486 .loc 1 6922 5 is_stmt 1 view .LVU5070 6922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14487 .loc 1 6922 37 is_stmt 0 view .LVU5071 14488 0010 0022 movs r2, #0 14489 0012 9A63 str r2, [r3, #56] 14490 .L923: 6925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14491 .loc 1 6925 3 is_stmt 1 view .LVU5072 14492 0014 FFF7FEFF bl I2C_TreatErrorCallback 14493 .LVL1112: 6926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14494 .loc 1 6926 1 is_stmt 0 view .LVU5073 14495 0018 08BD pop {r3, pc} 14496 .cfi_endproc 14497 .LFE400: 14499 .section .text.HAL_I2C_GetState,"ax",%progbits 14500 .align 1 14501 .global HAL_I2C_GetState ARM GAS /tmp/ccclMPzv.s page 471 14502 .syntax unified 14503 .thumb 14504 .thumb_func 14506 HAL_I2C_GetState: 14507 .LVL1113: 14508 .LFB375: 4892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** /* Return I2C handle state */ 14509 .loc 1 4892 1 is_stmt 1 view -0 14510 .cfi_startproc 14511 @ args = 0, pretend = 0, frame = 0 14512 @ frame_needed = 0, uses_anonymous_args = 0 14513 @ link register save eliminated. 4894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14514 .loc 1 4894 3 view .LVU5075 4894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14515 .loc 1 4894 14 is_stmt 0 view .LVU5076 14516 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 14517 .LVL1114: 4895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14518 .loc 1 4895 1 view .LVU5077 14519 0004 7047 bx lr 14520 .cfi_endproc 14521 .LFE375: 14523 .section .text.HAL_I2C_GetMode,"ax",%progbits 14524 .align 1 14525 .global HAL_I2C_GetMode 14526 .syntax unified 14527 .thumb 14528 .thumb_func 14530 HAL_I2C_GetMode: 14531 .LVL1115: 14532 .LFB376: 4904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->Mode; 14533 .loc 1 4904 1 is_stmt 1 view -0 14534 .cfi_startproc 14535 @ args = 0, pretend = 0, frame = 0 14536 @ frame_needed = 0, uses_anonymous_args = 0 14537 @ link register save eliminated. 4905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14538 .loc 1 4905 3 view .LVU5079 4905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14539 .loc 1 4905 14 is_stmt 0 view .LVU5080 14540 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 14541 .LVL1116: 4906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14542 .loc 1 4906 1 view .LVU5081 14543 0004 7047 bx lr 14544 .cfi_endproc 14545 .LFE376: 14547 .section .text.HAL_I2C_GetError,"ax",%progbits 14548 .align 1 14549 .global HAL_I2C_GetError 14550 .syntax unified 14551 .thumb 14552 .thumb_func 14554 HAL_I2C_GetError: 14555 .LVL1117: ARM GAS /tmp/ccclMPzv.s page 472 14556 .LFB377: 4915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** return hi2c->ErrorCode; 14557 .loc 1 4915 1 is_stmt 1 view -0 14558 .cfi_startproc 14559 @ args = 0, pretend = 0, frame = 0 14560 @ frame_needed = 0, uses_anonymous_args = 0 14561 @ link register save eliminated. 4916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14562 .loc 1 4916 3 view .LVU5083 4916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** } 14563 .loc 1 4916 14 is_stmt 0 view .LVU5084 14564 0000 406C ldr r0, [r0, #68] 14565 .LVL1118: 4917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_i2c.c **** 14566 .loc 1 4917 1 view .LVU5085 14567 0002 7047 bx lr 14568 .cfi_endproc 14569 .LFE377: 14571 .text 14572 .Letext0: 14573 .file 2 "/home/fra/bin/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/mach 14574 .file 3 "/home/fra/bin/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/sys/ 14575 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 14576 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" 14577 .file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" 14578 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" 14579 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_i2c.h" 14580 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" ARM GAS /tmp/ccclMPzv.s page 473 DEFINED SYMBOLS *ABS*:00000000 stm32g4xx_hal_i2c.c /tmp/ccclMPzv.s:21 .text.I2C_Flush_TXDR:00000000 $t /tmp/ccclMPzv.s:26 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR /tmp/ccclMPzv.s:64 .text.I2C_TransferConfig:00000000 $t /tmp/ccclMPzv.s:69 .text.I2C_TransferConfig:00000000 I2C_TransferConfig /tmp/ccclMPzv.s:127 .text.I2C_Enable_IRQ:00000000 $t /tmp/ccclMPzv.s:132 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ /tmp/ccclMPzv.s:294 .text.I2C_Enable_IRQ:00000090 $d /tmp/ccclMPzv.s:13378 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA /tmp/ccclMPzv.s:13078 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA /tmp/ccclMPzv.s:12699 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA /tmp/ccclMPzv.s:301 .text.I2C_Disable_IRQ:00000000 $t /tmp/ccclMPzv.s:306 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ /tmp/ccclMPzv.s:430 .text.I2C_ConvertOtherXferOptions:00000000 $t /tmp/ccclMPzv.s:435 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions /tmp/ccclMPzv.s:476 .text.I2C_IsErrorOccurred:00000000 $t /tmp/ccclMPzv.s:481 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred /tmp/ccclMPzv.s:758 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t /tmp/ccclMPzv.s:763 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccclMPzv.s:861 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t /tmp/ccclMPzv.s:866 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout /tmp/ccclMPzv.s:978 .text.I2C_RequestMemoryWrite:00000000 $t /tmp/ccclMPzv.s:983 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite /tmp/ccclMPzv.s:1102 .text.I2C_RequestMemoryWrite:00000078 $d /tmp/ccclMPzv.s:1107 .text.I2C_RequestMemoryRead:00000000 $t /tmp/ccclMPzv.s:1112 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead /tmp/ccclMPzv.s:1231 .text.I2C_RequestMemoryRead:00000074 $d /tmp/ccclMPzv.s:1236 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t /tmp/ccclMPzv.s:1241 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccclMPzv.s:1339 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t /tmp/ccclMPzv.s:1344 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccclMPzv.s:1509 .text.HAL_I2C_MspInit:00000000 $t /tmp/ccclMPzv.s:1515 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit /tmp/ccclMPzv.s:1530 .text.HAL_I2C_Init:00000000 $t /tmp/ccclMPzv.s:1536 .text.HAL_I2C_Init:00000000 HAL_I2C_Init /tmp/ccclMPzv.s:1732 .text.HAL_I2C_MspDeInit:00000000 $t /tmp/ccclMPzv.s:1738 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit /tmp/ccclMPzv.s:1753 .text.HAL_I2C_DeInit:00000000 $t /tmp/ccclMPzv.s:1759 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit /tmp/ccclMPzv.s:1824 .text.HAL_I2C_Master_Transmit:00000000 $t /tmp/ccclMPzv.s:1830 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit /tmp/ccclMPzv.s:2190 .text.HAL_I2C_Master_Transmit:000001a0 $d /tmp/ccclMPzv.s:2195 .text.HAL_I2C_Master_Receive:00000000 $t /tmp/ccclMPzv.s:2201 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive /tmp/ccclMPzv.s:2510 .text.HAL_I2C_Master_Receive:00000178 $d /tmp/ccclMPzv.s:2515 .text.HAL_I2C_Slave_Transmit:00000000 $t /tmp/ccclMPzv.s:2521 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit /tmp/ccclMPzv.s:2974 .text.HAL_I2C_Slave_Receive:00000000 $t /tmp/ccclMPzv.s:2980 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive /tmp/ccclMPzv.s:3328 .text.HAL_I2C_Master_Transmit_IT:00000000 $t /tmp/ccclMPzv.s:3334 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT /tmp/ccclMPzv.s:3533 .text.HAL_I2C_Master_Transmit_IT:000000bc $d /tmp/ccclMPzv.s:12308 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT /tmp/ccclMPzv.s:3540 .text.HAL_I2C_Master_Receive_IT:00000000 $t /tmp/ccclMPzv.s:3546 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT /tmp/ccclMPzv.s:3699 .text.HAL_I2C_Master_Receive_IT:0000008c $d ARM GAS /tmp/ccclMPzv.s page 474 /tmp/ccclMPzv.s:3706 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t /tmp/ccclMPzv.s:3712 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT /tmp/ccclMPzv.s:3856 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d /tmp/ccclMPzv.s:11711 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT /tmp/ccclMPzv.s:3862 .text.HAL_I2C_Slave_Receive_IT:00000000 $t /tmp/ccclMPzv.s:3868 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT /tmp/ccclMPzv.s:3971 .text.HAL_I2C_Slave_Receive_IT:0000005c $d /tmp/ccclMPzv.s:3977 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t /tmp/ccclMPzv.s:3983 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA /tmp/ccclMPzv.s:4331 .text.HAL_I2C_Master_Transmit_DMA:0000015c $d /tmp/ccclMPzv.s:13736 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt /tmp/ccclMPzv.s:13696 .text.I2C_DMAError:00000000 I2C_DMAError /tmp/ccclMPzv.s:4341 .text.HAL_I2C_Master_Receive_DMA:00000000 $t /tmp/ccclMPzv.s:4347 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA /tmp/ccclMPzv.s:4649 .text.HAL_I2C_Master_Receive_DMA:00000138 $d /tmp/ccclMPzv.s:13844 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt /tmp/ccclMPzv.s:4659 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t /tmp/ccclMPzv.s:4665 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccclMPzv.s:4971 .text.HAL_I2C_Slave_Transmit_DMA:00000130 $d /tmp/ccclMPzv.s:10404 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt /tmp/ccclMPzv.s:4979 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t /tmp/ccclMPzv.s:4985 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA /tmp/ccclMPzv.s:5208 .text.HAL_I2C_Slave_Receive_DMA:000000e4 $d /tmp/ccclMPzv.s:10456 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt /tmp/ccclMPzv.s:5216 .text.HAL_I2C_Mem_Write:00000000 $t /tmp/ccclMPzv.s:5222 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write /tmp/ccclMPzv.s:5580 .text.HAL_I2C_Mem_Read:00000000 $t /tmp/ccclMPzv.s:5586 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read /tmp/ccclMPzv.s:5944 .text.HAL_I2C_Mem_Read:000001ac $d /tmp/ccclMPzv.s:5949 .text.HAL_I2C_Mem_Write_IT:00000000 $t /tmp/ccclMPzv.s:5955 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT /tmp/ccclMPzv.s:6133 .text.HAL_I2C_Mem_Write_IT:000000ac $d /tmp/ccclMPzv.s:13952 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT /tmp/ccclMPzv.s:6140 .text.HAL_I2C_Mem_Read_IT:00000000 $t /tmp/ccclMPzv.s:6146 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT /tmp/ccclMPzv.s:6321 .text.HAL_I2C_Mem_Read_IT:000000a8 $d /tmp/ccclMPzv.s:6328 .text.HAL_I2C_Mem_Write_DMA:00000000 $t /tmp/ccclMPzv.s:6334 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA /tmp/ccclMPzv.s:6620 .text.HAL_I2C_Mem_Write_DMA:00000120 $d /tmp/ccclMPzv.s:6629 .text.HAL_I2C_Mem_Read_DMA:00000000 $t /tmp/ccclMPzv.s:6635 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA /tmp/ccclMPzv.s:6923 .text.HAL_I2C_Mem_Read_DMA:00000120 $d /tmp/ccclMPzv.s:6932 .text.HAL_I2C_IsDeviceReady:00000000 $t /tmp/ccclMPzv.s:6938 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady /tmp/ccclMPzv.s:7235 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t /tmp/ccclMPzv.s:7241 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccclMPzv.s:7509 .text.HAL_I2C_Master_Seq_Transmit_IT:00000100 $d /tmp/ccclMPzv.s:7515 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t /tmp/ccclMPzv.s:7521 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/ccclMPzv.s:7945 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001cc $d /tmp/ccclMPzv.s:7954 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t /tmp/ccclMPzv.s:7960 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccclMPzv.s:8153 .text.HAL_I2C_Master_Seq_Receive_IT:000000ac $d /tmp/ccclMPzv.s:8159 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t /tmp/ccclMPzv.s:8165 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA /tmp/ccclMPzv.s:8498 .text.HAL_I2C_Master_Seq_Receive_DMA:00000160 $d /tmp/ccclMPzv.s:8507 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t ARM GAS /tmp/ccclMPzv.s page 475 /tmp/ccclMPzv.s:8513 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccclMPzv.s:8724 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d8 $d /tmp/ccclMPzv.s:14454 .text.I2C_DMAAbort:00000000 I2C_DMAAbort /tmp/ccclMPzv.s:8730 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t /tmp/ccclMPzv.s:8736 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccclMPzv.s:9127 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000019c $d /tmp/ccclMPzv.s:9135 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t /tmp/ccclMPzv.s:9141 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccclMPzv.s:9352 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d8 $d /tmp/ccclMPzv.s:9358 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t /tmp/ccclMPzv.s:9364 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccclMPzv.s:9752 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000198 $d /tmp/ccclMPzv.s:9760 .text.HAL_I2C_EnableListen_IT:00000000 $t /tmp/ccclMPzv.s:9766 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT /tmp/ccclMPzv.s:9813 .text.HAL_I2C_EnableListen_IT:00000028 $d /tmp/ccclMPzv.s:9818 .text.HAL_I2C_DisableListen_IT:00000000 $t /tmp/ccclMPzv.s:9824 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT /tmp/ccclMPzv.s:9890 .text.HAL_I2C_Master_Abort_IT:00000000 $t /tmp/ccclMPzv.s:9896 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT /tmp/ccclMPzv.s:10043 .text.HAL_I2C_Master_Abort_IT:00000088 $d /tmp/ccclMPzv.s:10048 .text.HAL_I2C_EV_IRQHandler:00000000 $t /tmp/ccclMPzv.s:10054 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler /tmp/ccclMPzv.s:10092 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t /tmp/ccclMPzv.s:10098 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback /tmp/ccclMPzv.s:10113 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t /tmp/ccclMPzv.s:10119 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback /tmp/ccclMPzv.s:10134 .text.I2C_ITMasterSeqCplt:00000000 $t /tmp/ccclMPzv.s:10139 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt /tmp/ccclMPzv.s:10224 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t /tmp/ccclMPzv.s:10230 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccclMPzv.s:10245 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t /tmp/ccclMPzv.s:10251 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccclMPzv.s:10266 .text.I2C_ITSlaveSeqCplt:00000000 $t /tmp/ccclMPzv.s:10271 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt /tmp/ccclMPzv.s:10399 .text.I2C_DMASlaveTransmitCplt:00000000 $t /tmp/ccclMPzv.s:10451 .text.I2C_DMASlaveReceiveCplt:00000000 $t /tmp/ccclMPzv.s:10512 .text.HAL_I2C_AddrCallback:00000000 $t /tmp/ccclMPzv.s:10518 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback /tmp/ccclMPzv.s:10535 .text.I2C_ITAddrCplt:00000000 $t /tmp/ccclMPzv.s:10540 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt /tmp/ccclMPzv.s:10700 .text.HAL_I2C_ListenCpltCallback:00000000 $t /tmp/ccclMPzv.s:10706 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback /tmp/ccclMPzv.s:10721 .text.I2C_ITListenCplt:00000000 $t /tmp/ccclMPzv.s:10726 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt /tmp/ccclMPzv.s:10830 .text.I2C_ITListenCplt:00000064 $d /tmp/ccclMPzv.s:10835 .text.HAL_I2C_MemTxCpltCallback:00000000 $t /tmp/ccclMPzv.s:10841 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback /tmp/ccclMPzv.s:10856 .text.HAL_I2C_MemRxCpltCallback:00000000 $t /tmp/ccclMPzv.s:10862 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback /tmp/ccclMPzv.s:10877 .text.HAL_I2C_ErrorCallback:00000000 $t /tmp/ccclMPzv.s:10883 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback /tmp/ccclMPzv.s:10898 .text.HAL_I2C_AbortCpltCallback:00000000 $t /tmp/ccclMPzv.s:10904 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback /tmp/ccclMPzv.s:10919 .text.I2C_TreatErrorCallback:00000000 $t /tmp/ccclMPzv.s:10924 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback /tmp/ccclMPzv.s:10981 .text.I2C_ITError:00000000 $t /tmp/ccclMPzv.s:10986 .text.I2C_ITError:00000000 I2C_ITError ARM GAS /tmp/ccclMPzv.s page 476 /tmp/ccclMPzv.s:11265 .text.I2C_ITError:00000124 $d /tmp/ccclMPzv.s:11272 .text.I2C_ITSlaveCplt:00000000 $t /tmp/ccclMPzv.s:11277 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt /tmp/ccclMPzv.s:11324 .text.I2C_ITSlaveCplt:0000001e $d /tmp/ccclMPzv.s:11334 .text.I2C_ITSlaveCplt:00000028 $t /tmp/ccclMPzv.s:11701 .text.I2C_ITSlaveCplt:000001ec $d /tmp/ccclMPzv.s:11706 .text.I2C_Slave_ISR_IT:00000000 $t /tmp/ccclMPzv.s:12026 .text.I2C_ITMasterCplt:00000000 $t /tmp/ccclMPzv.s:12031 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt /tmp/ccclMPzv.s:12303 .text.I2C_Master_ISR_IT:00000000 $t /tmp/ccclMPzv.s:12694 .text.I2C_Mem_ISR_DMA:00000000 $t /tmp/ccclMPzv.s:13067 .text.I2C_Mem_ISR_DMA:000001a0 $d /tmp/ccclMPzv.s:13073 .text.I2C_Slave_ISR_DMA:00000000 $t /tmp/ccclMPzv.s:13217 .text.I2C_Slave_ISR_DMA:00000094 $d /tmp/ccclMPzv.s:13228 .text.I2C_Slave_ISR_DMA:0000009e $t /tmp/ccclMPzv.s:13373 .text.I2C_Master_ISR_DMA:00000000 $t /tmp/ccclMPzv.s:13691 .text.I2C_DMAError:00000000 $t /tmp/ccclMPzv.s:13731 .text.I2C_DMAMasterTransmitCplt:00000000 $t /tmp/ccclMPzv.s:13839 .text.I2C_DMAMasterReceiveCplt:00000000 $t /tmp/ccclMPzv.s:13947 .text.I2C_Mem_ISR_IT:00000000 $t /tmp/ccclMPzv.s:14336 .text.I2C_Mem_ISR_IT:00000190 $d /tmp/ccclMPzv.s:14342 .text.HAL_I2C_ER_IRQHandler:00000000 $t /tmp/ccclMPzv.s:14348 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler /tmp/ccclMPzv.s:14449 .text.I2C_DMAAbort:00000000 $t /tmp/ccclMPzv.s:14500 .text.HAL_I2C_GetState:00000000 $t /tmp/ccclMPzv.s:14506 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState /tmp/ccclMPzv.s:14524 .text.HAL_I2C_GetMode:00000000 $t /tmp/ccclMPzv.s:14530 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode /tmp/ccclMPzv.s:14548 .text.HAL_I2C_GetError:00000000 $t /tmp/ccclMPzv.s:14554 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState