From 2628932a40d769d8d0180ba6fed1e7b9b2718982 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 3 May 2020 19:53:02 +0200 Subject: minkbd: repo restructure --- Blink/build/stm32f0xx_hal_i2c.lst | 20498 ------------------------------------ 1 file changed, 20498 deletions(-) delete mode 100644 Blink/build/stm32f0xx_hal_i2c.lst (limited to 'Blink/build/stm32f0xx_hal_i2c.lst') diff --git a/Blink/build/stm32f0xx_hal_i2c.lst b/Blink/build/stm32f0xx_hal_i2c.lst deleted file mode 100644 index 1811f86..0000000 --- a/Blink/build/stm32f0xx_hal_i2c.lst +++ /dev/null @@ -1,20498 +0,0 @@ -ARM GAS /tmp/ccFk2Nxo.s page 1 - - - 1 .cpu cortex-m0 - 2 .eabi_attribute 20, 1 - 3 .eabi_attribute 21, 1 - 4 .eabi_attribute 23, 3 - 5 .eabi_attribute 24, 1 - 6 .eabi_attribute 25, 1 - 7 .eabi_attribute 26, 1 - 8 .eabi_attribute 30, 1 - 9 .eabi_attribute 34, 0 - 10 .eabi_attribute 18, 4 - 11 .file "stm32f0xx_hal_i2c.c" - 12 .text - 13 .Ltext0: - 14 .cfi_sections .debug_frame - 15 .section .text.I2C_Flush_TXDR,"ax",%progbits - 16 .align 1 - 17 .syntax unified - 18 .code 16 - 19 .thumb_func - 20 .fpu softvfp - 22 I2C_Flush_TXDR: - 23 .LFB102: - 24 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c" - 1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ****************************************************************************** - 3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @file stm32f0xx_hal_i2c.c - 4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @author MCD Application Team - 5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C HAL module driver. - 6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This file provides firmware functions to manage the following - 7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: - 8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + Initialization and de-initialization functions - 9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + IO operation functions - 10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + Peripheral State and Errors functions - 11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * - 12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim - 13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ============================================================================== - 14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### How to use this driver ##### - 15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ============================================================================== - 16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The I2C HAL driver can be used as follows: - 18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: - 20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; - 21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the @ref HAL_I2C_MspInit() API: - 23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) Enable the I2Cx interface clock - 24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) I2C pins configuration - 25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs - 26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain - 27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process - 28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority - 29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel - 30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process - 31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive channel - 32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using - 33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the DMA handle parameters - 34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel - ARM GAS /tmp/ccFk2Nxo.s page 2 - - - 35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle - 36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on - 37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the DMA Tx or Rx channel - 38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres - 40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure - 41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the @ref HAL_I2C_Init(), configures also the low le - 43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized @ref HAL_I2C_MspInit(&hi2c) API. - 44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function @ref HAL_I2C_IsDevic - 46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : - 48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Polling mode IO operation *** - 50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ================================= - 51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Tran - 53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Recei - 54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Transm - 55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Receive - 56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Polling mode IO MEM operation *** - 58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===================================== - 59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using @ref HAL_I2C_ - 61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using @ref HAL_I2C - 62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode IO operation *** - 65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =================================== - 66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_ - 68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user - 69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback( - 70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_R - 71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user ca - 72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback( - 73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Tr - 74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user - 75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback() - 76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Rec - 77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can - 78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback() - 79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can - 80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() - 81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_I - 82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can - 83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback() - 84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro. - 85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication - 86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation *** - 89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ========================================================== - 90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition - ARM GAS /tmp/ccFk2Nxo.s page 3 - - - 92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** when a direction change during transfer - 93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer - 95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Option field values are defined through @ref I2C_XFEROPTIONS and are listed below: - 96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfa - 97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con - 98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and data to transfer without a final stop condition - 99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a - 100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and data to transfer without a final stop condition, an then permit a c - 101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** several times (like @ref HAL_I2C_Master_Seq_Transmit_IT() then @ref HAL - 102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or @ref HAL_I2C_Master_Seq_Transmit_DMA() then @ref HAL_I2C_Master_Seq_ - 103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart - 104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th - 105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases - 106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart - 107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th - 108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases - 109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re - 110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** interface several times (link with option I2C_FIRST_AND_NEXT_FRAME). - 111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Usage can, transfer several bytes one by one using HAL_I2C_Master_Seq_T - 112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_AND_NEXT_FRAME then - 113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_AND_NEXT_FRAME th - 114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_AND_NEXT_FRAME the - 115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit o - 116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio - 117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c - 118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** interface. - 119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave - 120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_FRAME then I2C_OTHE - 121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_FRAME then I2C_OT - 122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_FRAME then I2C_OTH - 123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to - 124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Differents sequential I2C interfaces are listed below: - 126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using @ref - 127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or using @ref HAL_I2C_Master_Seq_Transmit_DMA() - 128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, @ref HAL_I2C_MasterTxCpltCallback() is e - 129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback( - 130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using @ref - 131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or using @ref HAL_I2C_Master_Seq_Receive_DMA() - 132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, @ref HAL_I2C_MasterRxCpltCallback() is exec - 133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback( - 134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using @ref HAL_I2C_Mas - 135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can - 136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback() - 137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using @ref HAL_I2C_EnableListen - 138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) When address slave I2C match, @ref HAL_I2C_AddrCallback() is executed and user can - 139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code to check the Address Match Code and the transmission direction request - 140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At Listen mode end @ref HAL_I2C_ListenCpltCallback() is executed and user can - 141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ListenCpltCallback() - 142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using @ref - 143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or using @ref HAL_I2C_Slave_Seq_Transmit_DMA() - 144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, @ref HAL_I2C_SlaveTxCpltCallback() is ex - 145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback() - 146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using @ref H - 147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or using @ref HAL_I2C_Slave_Seq_Receive_DMA() - 148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, @ref HAL_I2C_SlaveRxCpltCallback() is execu - ARM GAS /tmp/ccFk2Nxo.s page 4 - - - 149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback() - 150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user ca - 151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() - 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro. - 153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication - 154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** - 156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ======================================= - 157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address - 159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Mem_Write_IT() - 160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of write transfer, @ref HAL_I2C_MemTxCpltCallback() is executed and user ca - 161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemTxCpltCallback() - 162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address - 163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Mem_Read_IT() - 164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of read transfer, @ref HAL_I2C_MemRxCpltCallback() is executed and user can - 165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemRxCpltCallback() - 166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can - 167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() - 168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** DMA mode IO operation *** - 170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ============================== - 171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using - 173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Master_Transmit_DMA() - 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user - 175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback( - 176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using - 177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Master_Receive_DMA() - 178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user ca - 179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback( - 180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using - 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Slave_Transmit_DMA() - 182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user - 183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback() - 184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using - 185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Slave_Receive_DMA() - 186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can - 187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback() - 188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can - 189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() - 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_I - 191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can - 192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback() - 193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro. - 194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication - 195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** DMA mode IO MEM operation *** - 197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ================================= - 198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using - 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Mem_Write_DMA() - 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of write transfer, @ref HAL_I2C_MemTxCpltCallback() is executed and user ca - 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemTxCpltCallback() - 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using - 204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_Mem_Read_DMA() - 205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of read transfer, @ref HAL_I2C_MemRxCpltCallback() is executed and user can - ARM GAS /tmp/ccFk2Nxo.s page 5 - - - 206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemRxCpltCallback() - 207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can - 208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() - 209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** I2C HAL driver macros list *** - 212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ================================== - 213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. - 215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_ENABLE: Enable the I2C peripheral - 217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_DISABLE: Disable the I2C peripheral - 218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode - 219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not - 220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag - 221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt - 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) @ref __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt - 223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Callback registration *** - 225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ============================================= - 226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 - 228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks. - 229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Use Functions @ref HAL_I2C_RegisterCallback() or @ref HAL_I2C_RegisterAddrCallback() - 230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to register an interrupt callback. - 231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Function @ref HAL_I2C_RegisterCallback() allows to register following callbacks: - 233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. - 234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. - 235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. - 236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. - 237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. - 238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. - 239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. - 240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. - 241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. - 242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. - 243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. - 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID - 245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and a pointer to the user callback function. - 246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : @ref HAL_I2C_RegisterAdd - 248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Use function @ref HAL_I2C_UnRegisterCallback to reset a callback to the default - 250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** weak function. - 251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, - 252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and the Callback ID. - 253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This function allows to reset following callbacks: - 254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. - 255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. - 256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. - 257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. - 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. - 259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. - 260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. - 261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. - 262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. - ARM GAS /tmp/ccFk2Nxo.s page 6 - - - 263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. - 264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. - 265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : @ref HAL_I2C_UnRegisterAddrCallba - 267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** By default, after the @ref HAL_I2C_Init() and when the state is @ref HAL_I2C_STATE_RESET - 269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions: - 270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** examples @ref HAL_I2C_MasterTxCpltCallback(), @ref HAL_I2C_MasterRxCpltCallback(). - 271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are - 272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** reset to the legacy weak functions in the @ref HAL_I2C_Init()/ @ref HAL_I2C_DeInit() only when - 273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** these callbacks are null (not registered beforehand). - 274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the @ref HAL_I2C_Init()/ @ref HAL_I2C_DeInit() - 275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. - 276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Callbacks can be registered/unregistered in @ref HAL_I2C_STATE_READY state only. - 278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered - 279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** in @ref HAL_I2C_STATE_READY or @ref HAL_I2C_STATE_RESET state, - 280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. - 281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks - 282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** using @ref HAL_I2C_RegisterCallback() before calling @ref HAL_I2C_DeInit() - 283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or @ref HAL_I2C_Init() function. - 284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or - 286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks - 287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** are set to the corresponding weak functions. - 288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros - 291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim - 293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ****************************************************************************** - 294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @attention - 295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * - 296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *

© Copyright (c) 2016 STMicroelectronics. - 297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * All rights reserved.

- 298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * - 299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This software component is licensed by ST under BSD 3-Clause license, - 300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the "License"; You may not use this file except in compliance with the - 301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * License. You may obtain a copy of the License at: - 302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * opensource.org/licenses/BSD-3-Clause - 303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * - 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ****************************************************************************** - 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ - 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #include "stm32f0xx_hal.h" - 309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup STM32F0xx_HAL_Driver - 311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ - 312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C I2C - 315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C HAL module driver - 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ - 317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED - ARM GAS /tmp/ccFk2Nxo.s page 7 - - - 320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ - 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ - 323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define - 325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ - 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ - 328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ - 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ - 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ - 331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ - 332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ - 333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ - 334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ - 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ - 336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ - 337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U - 339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define SlaveAddr_SHIFT 7U - 340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define SlaveAddr_MSK 0x06U - 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ - 343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | (uint32_ - 344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) - 345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | ( - 346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | ( - 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | ( - 348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | ( - 349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | ( - 350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | ( - 351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ - 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_TX_IT (0x00000001U) - 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_RX_IT (0x00000002U) - 356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (0x00000004U) - 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (0x00000011U) - 359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (0x00000012U) - 360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (0x00000012U) - 361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ - 363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) - 364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} - 366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/ - 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ - 370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ - 371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions - 373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ - 374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ - 376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); - ARM GAS /tmp/ccFk2Nxo.s page 8 - - - 377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); - 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); - 379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); - 380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); - 381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); - 382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle IT transfer */ - 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); - 385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); - 386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); - 387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); - 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); - 389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); - 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); - 391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle IT transfer */ - 393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1 - 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16 - 395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ - 397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint - 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3 - 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin - 400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint - 401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ - 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta - 404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, - 405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, - 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, - 407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_ - 408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ - 410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); - 411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); - 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to flush TXDR register */ - 414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); - 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ - 417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t - 418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to Convert Specific options */ - 420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); - 421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} - 423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ - 426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions - 428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ - 429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions - 432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initialization and Configuration functions - 433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * - ARM GAS /tmp/ccFk2Nxo.s page 9 - - - 434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim - 435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== - 436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### - 437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== - 438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and - 439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** deinitialize the I2Cx peripheral: - 440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures - 442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). - 443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with - 445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the selected configuration: - 446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Clock Timing - 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 1 - 448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) - 449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Dual Addressing mode - 450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 2 - 451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 2 Mask - 452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) General call mode - 453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Nostretch mode - 454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration - 456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** of the selected I2Cx peripheral. - 457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim - 459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ - 460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters - 464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. - 465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - 466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. - 467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status - 468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) - 470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ - 472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c == NULL) - 473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ - 478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); - 479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); - 480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); - 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); - 482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); - 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); - 484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); - 485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); - 486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) - 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ - 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; - ARM GAS /tmp/ccFk2Nxo.s page 10 - - - 491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) - 493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the I2C Callback settings */ - 494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback - 495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback - 496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback - 497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback - 498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback - 499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback - 500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback - 501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback - 502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback - 503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback - 504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) - 506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ - 508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ - 511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); - 512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else - 513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ - 514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); - 515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; - 519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ - 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); - 522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ - 524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ - 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; - 526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ - 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ - 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; - 530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ - 532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) - 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); - 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ - 537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); - 539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ - 542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ - 543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) - 544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10); - 546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ - ARM GAS /tmp/ccFk2Nxo.s page 11 - - - 548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); - 549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ - 551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ - 552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; - 553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ - 555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | (hi2c->Init.OwnAddr - 556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ - 558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ - 559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); - 560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ - 562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); - 563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; - 567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; - 570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. - 574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - 575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. - 576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status - 577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) - 579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ - 581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c == NULL) - 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ - 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); - 588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; - 590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ - 592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); - 593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) - 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) - 596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ - 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ - 601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); - 602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else - 603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ - 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); - ARM GAS /tmp/ccFk2Nxo.s page 12 - - - 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; - 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; - 610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ - 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); - 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; - 616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initialize the I2C MSP. - 620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. - 622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None - 623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) - 625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); - 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, - 630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file - 631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. - 636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. - 638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None - 639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) - 641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); - 644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, - 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file - 647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) - 651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Register a User I2C Callback - 653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * To be used instead of the weak predefined callback - 654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - 655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. - 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered - 657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: - 658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID - 659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID - 660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID - 661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID - ARM GAS /tmp/ccFk2Nxo.s page 13 - - - 662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID - 663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID - 664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID - 665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID - 666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID - 667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID - 668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID - 669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pCallback pointer to the Callback function - 670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status - 671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb - 673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; - 675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (pCallback == NULL) - 677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ - 684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); - 685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) - 687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) - 689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : - 691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; - 692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : - 695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; - 696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : - 699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; - 700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : - 703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; - 704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : - 707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; - 708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : - 711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; - 712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : - 715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; - 716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : - ARM GAS /tmp/ccFk2Nxo.s page 14 - - - 719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; - 720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : - 723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; - 724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : - 727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; - 728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : - 731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; - 732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : - 735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ - 739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; - 740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) - 744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) - 746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : - 748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; - 749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : - 752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; - 753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : - 756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ - 760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; - 761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else - 765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ - 770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; - 771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ - 774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); - 775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; - ARM GAS /tmp/ccFk2Nxo.s page 15 - - - 776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Unregister an I2C Callback - 780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback - 781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - 782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. - 783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered - 784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: - 785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: - 786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID - 787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID - 788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID - 789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID - 790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID - 791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID - 792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID - 793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID - 794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID - 795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID - 796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID - 797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status - 798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal - 800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; - 802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ - 804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); - 805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) - 807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) - 809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : - 811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb - 812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : - 815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb - 816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : - 819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba - 820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : - 823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba - 824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : - 827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac - 828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : - 831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback - 832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - ARM GAS /tmp/ccFk2Nxo.s page 16 - - - 833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : - 835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback - 836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : - 839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback - 840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : - 843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback - 844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : - 847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit - 848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : - 851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit - 852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : - 855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ - 859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; - 860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) - 864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) - 866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : - 868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit - 869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : - 872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit - 873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : - 876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ - 880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; - 881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; - 882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else - 885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ - ARM GAS /tmp/ccFk2Nxo.s page 17 - - - 890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; - 891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ - 894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); - 895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; - 896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback - 900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback - 901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - 902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. - 903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function - 904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status - 905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC - 907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; - 909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (pCallback == NULL) - 911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ - 918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); - 919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) - 921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; - 923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else - 925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ - 930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; - 931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ - 934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); - 935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; - 936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback - 940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal - 941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - 942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. - 943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status - 944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) - 946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 18 - - - 947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; - 948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ - 950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); - 951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) - 953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ - 955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else - 957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ - 959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; - 960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ - 962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; - 963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ - 966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); - 967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; - 968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} - 974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - 975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions - 977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Data transfers functions - 978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * - 979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim - 980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== - 981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### IO operation functions ##### - 982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== - 983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] - 984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data - 985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transfers. - 986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) There are two modes of transfer: - 988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. - 989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The status of all data processing is returned by the same function - 990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** after finishing transfer. - 991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts - 992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. - 993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The end of the data processing will be indicated through the - 994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when - 995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** using DMA mode. - 996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Blocking mode functions are : - 998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() - 999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() -1000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() -1001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() -1002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() -1003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() - ARM GAS /tmp/ccFk2Nxo.s page 19 - - -1004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() -1005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : -1007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() -1008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() -1009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() -1010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() -1011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() -1012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() -1013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() -1014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() -1015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() -1016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() -1017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() -1018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() -1019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() -1020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : -1022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() -1023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() -1024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() -1025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() -1026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() -1027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() -1028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() -1029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() -1030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() -1031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() -1032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: -1034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() -1035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() -1036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() -1037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() -1038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() -1039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() -1040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() -1041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() -1042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() -1043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() -1044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim -1046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ -1047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. -1051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -1054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -1055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -1058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD - ARM GAS /tmp/ccFk2Nxo.s page 20 - - -1061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -1063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -1070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -1071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK -1073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -1078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -1079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -1085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -1087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ -1088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -1089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -1091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S -1092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ -1097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) -1100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ -1102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -1103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ -1107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; -1108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -1110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -1111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -1113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -1114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) -1116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ - ARM GAS /tmp/ccFk2Nxo.s page 21 - - -1118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) -1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -1124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA -1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST -1132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ -1137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set */ -1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -1145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ -1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); -1148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -1150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -1151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. -1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -1168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -1169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa - ARM GAS /tmp/ccFk2Nxo.s page 22 - - -1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -1177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -1184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -1185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK -1187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -1192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -1199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -1201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ -1202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -1203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -1205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S -1206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ -1211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) -1214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ -1216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -1217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ -1222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; -1223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -1225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -1226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -1228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -1229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) -1231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 23 - - -1232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ -1233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) -1234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA -1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST -1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ -1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set */ -1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -1254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -1260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ -1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); -1263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -1266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. -1280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, ui -1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 24 - - -1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -1294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -1303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -1305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -1306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -1312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -1314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -1315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ -1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) -1318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ -1325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -1326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ -1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) -1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ -1331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) -1332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ -1339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -1340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ -1343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) -1344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ - ARM GAS /tmp/ccFk2Nxo.s page 25 - - -1346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) -1351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ -1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -1354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ -1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; -1362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -1367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP flag is set */ -1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) -1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Normal use case for Transmitter mode */ -1378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */ -1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP flag */ -1388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -1389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ -1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) -1392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -1402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - ARM GAS /tmp/ccFk2Nxo.s page 26 - - -1403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode -1417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -1422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uin -1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -1433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -1440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -1443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -1449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -1452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ -1454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) -1455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 27 - - -1460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ -1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -1463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ -1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) -1466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) -1473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ -1475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -1476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ -1481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) -1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ -1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; -1485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -1488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -1490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ -1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; -1497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -1500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -1502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP flag is set */ -1505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -1506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP flag */ -1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ -1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) - ARM GAS /tmp/ccFk2Nxo.s page 28 - - -1517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -1528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt -1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -1545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -1546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t -1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -1557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -1565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -1573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 29 - - -1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -1577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -1578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -1583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ -1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT -1588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -1593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -1594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ -1597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -1598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX -1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); -1600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt -1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -1614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -1615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * -1620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -1626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ - ARM GAS /tmp/ccFk2Nxo.s page 30 - - -1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -1635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -1641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -1646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -1647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -1652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ -1656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ -1657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -1662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -1663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -1664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ -1666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -1667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX -1668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); -1669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt -1680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) -1687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 31 - - -1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -1694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -1698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -1699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; -1706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -1712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ -1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -1716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX -1717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); -1718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt -1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) -1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -1743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -1744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - ARM GAS /tmp/ccFk2Nxo.s page 32 - - -1745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -1748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -1754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; -1755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -1760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ -1764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX -1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); -1767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA -1778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -1781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t -1787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -1790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -1794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; - ARM GAS /tmp/ccFk2Nxo.s page 33 - - -1802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; -1810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -1815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -1820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) -1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -1827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; -1828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -1830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; -1831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -1833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; -1834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; -1835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -1837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> -1838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -1844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -1847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -1855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -1857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART -1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ - ARM GAS /tmp/ccFk2Nxo.s page 34 - - -1859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -1862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -1867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -1868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -1869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ -1870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); -1871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; -1874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -1878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -1880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -1883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ -1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -1894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ -1897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ -1898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -1903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -1904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -1905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ -1906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ -1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); -1909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -1912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; - ARM GAS /tmp/ccFk2Nxo.s page 35 - - -1916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -1920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA -1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -1922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -1923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -1924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -1925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -1927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -1929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t -1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -1935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -1937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -1939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -1943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -1946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -1947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -1949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -1950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; -1953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -1955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -1958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -1963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) -1966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -1968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; -1971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ - ARM GAS /tmp/ccFk2Nxo.s page 36 - - -1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; -1974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; -1977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; -1978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -1980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p -1981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -1985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -1986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -1987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -1989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -1990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -1992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -1993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -1995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -1996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -1997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -1998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -1999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -2000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * -2001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ -2002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -2004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -2005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -2011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ -2013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); -2014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; -2017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -2026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 37 - - -2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ -2036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -2037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -2039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ -2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ -2041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -2047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ -2049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -2050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ -2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); -2052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA -2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -2065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -2066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -2067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -2069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -2070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size -2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -2075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -2077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - ARM GAS /tmp/ccFk2Nxo.s page 38 - - -2087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -2090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -2091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -2093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; -2094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -2096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; -2099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; -2102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; -2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; -2106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -2108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX -2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -2118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -2126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -2128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -2134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -2136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ -2137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); -2138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -2140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; -2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 39 - - -2144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -2146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -2150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -2166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA -2167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -2168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -2169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -2170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -2171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -2172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -2173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) -2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -2176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -2178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -2180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -2188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -2190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -2192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; -2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ - ARM GAS /tmp/ccFk2Nxo.s page 40 - - -2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; -2202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; -2205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; -2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; -2209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa -2212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -2221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -2229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -2232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -2237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -2238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ -2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); -2241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; -2244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -2249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -2253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - ARM GAS /tmp/ccFk2Nxo.s page 41 - - -2258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -2268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address -2269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -2271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -2272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address -2274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address -2275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -2277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -2279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -2280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre -2281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); -2286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -2288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -2290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -2292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -2297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -2300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK -2302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -2307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; -2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -2309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -2312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -2313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -2314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 42 - - -2315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ -2316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL -2317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ -2324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -2325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST -2328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS -2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do -2336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ -2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -2339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ -2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; -2345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -2347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -2348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -2350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -2351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) -2353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ -2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) -2356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -2361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -2363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA -2364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST -2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 43 - - -2372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U); -2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ -2376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ -2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -2378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -2384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ -2386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); -2387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -2403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address -2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -2405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -2406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -2407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -2408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address -2409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address -2410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -2411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -2412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -2413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -2414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres -2416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -2418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -2420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); -2421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -2423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -2425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -2427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 44 - - -2429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -2435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK -2437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; -2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -2444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -2448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -2449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ -2451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ -2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -2459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ -2460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -2461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -2463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S -2464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ -2469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do -2472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ -2474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) -2475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ -2480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; -2481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -2483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -2484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; - ARM GAS /tmp/ccFk2Nxo.s page 45 - - -2486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -2487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) -2489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ -2491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) -2492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -2497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -2499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST -2500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST -2505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U); -2509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ -2511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ -2512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) -2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -2518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -2519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ -2521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); -2522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -2524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -2537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres -2538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -2539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -2540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -2541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -2542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address - ARM GAS /tmp/ccFk2Nxo.s page 46 - - -2543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address -2544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -2545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -2547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -2548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd -2549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -2551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -2552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -2554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); -2555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -2557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -2559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -2561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -2565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -2571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -2574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; -2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -2578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -2581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -2582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -2583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -2586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -2588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -2589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -2594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ -2597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar -2598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ - ARM GAS /tmp/ccFk2Nxo.s page 47 - - -2600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ -2605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); -2606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -2611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -2612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ -2615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -2616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX -2617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); -2618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -2628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre -2629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -2630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -2631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -2632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -2633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address -2634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address -2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -2636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -2637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -2638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -2639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd -2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -2642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -2643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -2645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); -2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -2648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -2650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -2652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -2656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 48 - - -2657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -2662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -2665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -2667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; -2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -2669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -2671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -2672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -2673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -2674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -2675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -2677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -2679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -2680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -2685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ -2688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart -2689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ -2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ -2697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -2702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -2703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -2704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ -2706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -2707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX -2708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); -2709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 49 - - -2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -2718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address -2719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -2720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -2721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -2722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -2723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address -2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address -2725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -2726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -2727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -2728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -2729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA -2730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -2732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -2734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -2736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); -2737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -2739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -2741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -2743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -2747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -2753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -2755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -2756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -2758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; -2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -2760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -2762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -2763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -2764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -2765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; -2766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -2768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -2770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - ARM GAS /tmp/ccFk2Nxo.s page 50 - - -2771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -2776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ -2779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar -2780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -2788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -2790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; -2791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; -2794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -2796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; -2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; -2798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -2800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX -2801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -2806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -2810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -2818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -2820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ -2821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); -2822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -2824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); - ARM GAS /tmp/ccFk2Nxo.s page 51 - - -2828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -2830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -2831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -2832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ -2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); -2834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -2836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; -2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -2842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -2846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -2862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. -2863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -2864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -2865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -2866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -2867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address -2868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address -2869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -2870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be read -2871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -2872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -2873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd -2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -2876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -2877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -2878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -2880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); -2881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -2883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) - ARM GAS /tmp/ccFk2Nxo.s page 52 - - -2885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -2887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -2891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -2893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -2897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ -2899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; -2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -2904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -2906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -2907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -2908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; -2910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -2912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -2914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -2915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -2920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ -2923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart -2924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -2931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; -2934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -2936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; -2937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -2939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; -2940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; -2941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 53 - - -2942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -2943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa -2944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -2949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -2953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -2961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ -2963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE -2964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -2966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -2967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -2973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -2974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ -2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); -2976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; -2979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -2982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -2983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -2984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -2985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -2987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -2988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -2990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -2991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -2993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -2995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -2996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -2997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -2998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 54 - - -2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -3000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -3004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. -3005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This function is used with Memory devices -3006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -3007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -3008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -3009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -3010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Trials Number of trials -3011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -3012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -3013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -3014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria -3015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; -3017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; -3019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp1; -3021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp2; -3022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -3024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) -3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -3028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -3032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; -3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -3035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do -3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Start */ -3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); -3040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ -3042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ -3043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); -3044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); -3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); -3047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) -3049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) -3051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) -3053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -3055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - ARM GAS /tmp/ccFk2Nxo.s page 55 - - -3056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -3058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; -3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); -3068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); -3069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ -3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) -3073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ -3075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) -3076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -3082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Device is ready */ -3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -3085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -3090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ -3094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) -3095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -3101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ -3103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -3104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */ -3107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_Trials == Trials) -3108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ -3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; -3111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ - ARM GAS /tmp/ccFk2Nxo.s page 56 - - -3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) -3114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -3119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -3120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Trials */ -3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Trials++; -3124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (I2C_Trials < Trials); -3126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -3128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -3129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; -3132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -3141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte -3146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during -3147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -3148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -3149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -3150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -3151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -3153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS -3154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -3155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -3156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint -3157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -3159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; -3160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -3162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); -3163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -3165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -3168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; - ARM GAS /tmp/ccFk2Nxo.s page 57 - - -3170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -3171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -3172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -3176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; -3177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -3178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ -3180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -3181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -3183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -3184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -3188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -3189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene -3192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ -3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST -3194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; -3196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ -3200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); -3201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ -3203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount < MAX_NBYTE_SIZE) -3204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -3206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ -3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); -3211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); -3219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -3221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -3225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 58 - - -3227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -3229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. -3230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during -3231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -3232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -3233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -3234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -3235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -3236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -3237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS -3238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -3239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -3240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin -3241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; -3244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -3245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -3247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); -3248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -3250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -3253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; -3255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -3256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -3257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -3260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -3261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; -3262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; -3263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ -3265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -3266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -3268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -3273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -3274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene -3277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ -3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST -3279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; -3281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 59 - - -3284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ -3285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); -3286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ -3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount < MAX_NBYTE_SIZE) -3289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -3291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) -3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -3297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -3299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; -3300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -3302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; -3303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; -3306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; -3307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -3309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> -3310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -3314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -3316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -3318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -3319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -3327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ -3329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); -3330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -3333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ - ARM GAS /tmp/ccFk2Nxo.s page 60 - - -3341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); -3342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; -3345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -3349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -3351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -3353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -3354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ -3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -3365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -3367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ -3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ -3369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ -3377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -3378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ -3379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); -3380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -3383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -3387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -3391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter -3392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during -3393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -3394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -3395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -3396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -3397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer - ARM GAS /tmp/ccFk2Nxo.s page 61 - - -3398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -3399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS -3400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -3401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -3402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 -3403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; -3406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -3408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); -3409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -3411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -3414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -3416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -3417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -3418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -3420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -3421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -3422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; -3423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ -3426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -3427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -3429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -3430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -3434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene -3438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ -3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST -3440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; -3442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ -3446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); -3447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ -3449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount < MAX_NBYTE_SIZE) -3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -3452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 62 - - -3455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ -3456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); -3457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); -3465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -3467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -3471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -3475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA -3476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during -3477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -3478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -3479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -3480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -3481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -3482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -3483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS -3484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -3485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -3486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint -3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; -3490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -3491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -3493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); -3494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -3496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -3499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; -3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; -3502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -3503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -3505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -3506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -3507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; -3508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; -3509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ -3511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) - ARM GAS /tmp/ccFk2Nxo.s page 63 - - -3512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -3515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -3520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene -3523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ -3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST -3525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; -3527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ -3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); -3532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ -3534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount < MAX_NBYTE_SIZE) -3535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -3537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) -3541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -3543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -3545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; -3546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -3548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; -3549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -3551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; -3552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; -3553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -3555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p -3556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -3561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -3562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -3564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -3565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 64 - - -3569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -3573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ -3575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); -3576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -3578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -3579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ -3587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); -3588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -3590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; -3591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -3596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -3597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -3599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -3600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ -3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; -3611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ -3613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ -3614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ -3615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ -3623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ -3624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ -3625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); - ARM GAS /tmp/ccFk2Nxo.s page 65 - - -3626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -3629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -3633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit -3638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during -3639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -3640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -3641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -3642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -3643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS -3644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -3645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -3646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S -3647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -3649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); -3650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) -3652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -3654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ -3660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); -3661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -3664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ -3666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ -3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) -3668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ -3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); -3671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ -3673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) -3674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; -3676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -3678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : -3680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ -3681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; -3682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 66 - - -3683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ -3684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) -3685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ -3687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); -3688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; -3694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -3695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -3696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -3698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -3699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -3701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -3702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -3703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -3704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; -3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; -3706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) -3708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ -3710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ -3711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -3712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ -3721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); -3722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -3724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -3732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit -3733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during -3734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -3735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -3736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -3737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -3738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS -3739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status - ARM GAS /tmp/ccFk2Nxo.s page 67 - - -3740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -3741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t -3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -3744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -3746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); -3747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) -3749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -3751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -3758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ -3760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); -3761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ -3763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ -3764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) -3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ -3767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); -3768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) -3770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ -3772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -3773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; -3775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : -3777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ -3778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; -3779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ -3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) -3782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ -3784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); -3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) -3790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) -3792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; -3794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ -3796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) - ARM GAS /tmp/ccFk2Nxo.s page 68 - - -3797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : -3799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ -3800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; -3801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ -3803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) -3804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ -3806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); -3807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -3814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; -3817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -3818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -3819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -3822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -3824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -3826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -3827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; -3828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; -3829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -3831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -3833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; -3834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -3836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; -3837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -3839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; -3840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; -3841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -3843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX -3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -3849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -3850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -3852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -3853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 69 - - -3854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -3861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -3863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -3864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset XferSize */ -3866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = 0; -3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -3871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -3872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -3873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -3875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) -3884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ -3886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ -3887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ -3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); -3898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; -3901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -3905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - ARM GAS /tmp/ccFk2Nxo.s page 70 - - -3911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with -3912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during -3913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -3914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -3915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -3916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -3917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS -3918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -3919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -3920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si -3921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -3923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); -3924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) -3926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) -3928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -3930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -3931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ -3934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); -3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -3938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ -3940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ -3941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) -3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ -3944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); -3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) -3947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; -3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ -3951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -3952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : -3954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ -3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; -3956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ -3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) -3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ -3961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); -3962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; - ARM GAS /tmp/ccFk2Nxo.s page 71 - - -3968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -3970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -3972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -3973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -3975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; -3979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; -3980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) -3982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -3983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ -3984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ -3985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -3986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -3989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -3990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -3992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -3993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -3994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ -3995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); -3996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -3997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -3998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -3999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -4002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with -4007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during -4008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer -4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent -4012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS -4013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -4014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S -4016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; -4018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -4020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); -4021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) -4023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) - ARM GAS /tmp/ccFk2Nxo.s page 72 - - -4025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; -4027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ -4031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); -4032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -4035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ -4037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ -4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) -4039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ -4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); -4042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) -4044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ -4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -4047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; -4049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : -4051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ -4052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; -4053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ -4055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) -4056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ -4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); -4059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) -4064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) -4066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; -4068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ -4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -4071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : -4073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ -4074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; -4075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ -4077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) -4078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ -4080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); -4081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 73 - - -4082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -4088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; -4091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; -4092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -4093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ -4095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; -4096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ -4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; -4099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; -4100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -4101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; -4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; -4103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -4105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ -4107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; -4108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ -4110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; -4111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ -4113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; -4114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; -4115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -4117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa -4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -4122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -4123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -4124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -4126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; -4127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -4129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -4130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -4132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) -4135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -4138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 74 - - -4139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset XferSize */ -4140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = 0; -4141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ -4145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -4147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ -4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; -4150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -4153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -4155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) -4158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ -4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ -4161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -4162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -4166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -4169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -4170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ -4171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); -4172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; -4175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -4181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. -4186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -4189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) -4191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) -4193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -4195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; - ARM GAS /tmp/ccFk2Nxo.s page 75 - - -4196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the Address Match interrupt */ -4198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); -4199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -4201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -4205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. -4210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C -4212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -4213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) -4215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ -4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmp; -4218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ -4220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) -4221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; -4223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); -4224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -4225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -4227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the Address Match interrupt */ -4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); -4230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -4232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; -4236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. -4241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -4244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -4245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -4246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) -4248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) -4250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); - ARM GAS /tmp/ccFk2Nxo.s page 76 - - -4253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ -4255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); -4256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); -4257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ -4259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; -4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ -4262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe -4263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); -4264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -4266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -4267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process -4269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current -4270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ -4271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); -4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -4274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong usage of abort function */ -4278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ -4279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -4280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} -4285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks -4288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ -4289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. -4293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) -4298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ -4300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); -4301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); -4302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ -4304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferISR != NULL) -4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); -4307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 77 - - -4310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. -4312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) -4317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); -4319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); -4320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; -4321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ -4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_E -4324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; -4326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear BERR flag */ -4328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); -4329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ -4332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ER -4333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; -4335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear OVR flag */ -4337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); -4338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ -4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_E -4342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; -4344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ARLO flag */ -4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); -4347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ -4350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; -4351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ -4353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ -4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); -4356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. -4361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) -4366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 78 - - -4367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file -4372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. -4377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) -4382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file -4388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. -4392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) -4397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file -4403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. -4408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) -4413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file -4419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Slave Address Match callback. - ARM GAS /tmp/ccFk2Nxo.s page 79 - - -4424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE -4427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code -4428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM -4431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(TransferDirection); -4435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(AddrMatchCode); -4436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file -4439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Listen Complete callback. -4444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) -4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file -4455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. -4460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) -4465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file -4471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. -4476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) - ARM GAS /tmp/ccFk2Nxo.s page 80 - - -4481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file -4487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C error callback. -4492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) -4497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file -4503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C abort callback. -4508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -4511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) -4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -4515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); -4516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, -4518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file -4519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} -4524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions -4527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions -4528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * -4529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim -4530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== -4531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### -4532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== -4533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] -4534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral -4535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and the data flow. -4536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim - ARM GAS /tmp/ccFk2Nxo.s page 81 - - -4538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ -4539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Return the I2C handle state. -4543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL state -4546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) -4548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return I2C handle state */ -4550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->State; -4551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. -4555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for I2C module -4557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL mode -4558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) -4560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->Mode; -4562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Return the I2C error code. -4566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval I2C Error Code -4569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) -4571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->ErrorCode; -4573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} -4577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} -4581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions -4584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ -4585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. -4589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. -4592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. -4593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -4594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - ARM GAS /tmp/ccFk2Nxo.s page 82 - - -4595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint -4596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; -4598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; -4599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -4602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ -4604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -4606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -4607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */ -4609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ -4610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ -4611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; -4612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ -4614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); -4615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, -4617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ -4619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; -4620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ -4622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; -4623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -4625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -4626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -4628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -4629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, -4631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ -4633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; -4634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -4636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -4637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -4639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -4640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I -4642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) -4644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); -4646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -4648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -4650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START -4651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 83 - - -4652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -4655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) -4656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, hi2c->XferOptions, I2C_NO_S -4658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST -4662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ -4668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) -4669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ -4671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); -4672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ -4676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -4677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); -4678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2 -4682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) -4684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) -4686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ -4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) -4689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ -4691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; -4692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ -4696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); -4697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ -4703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -4704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); -4705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 84 - - -4709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -4710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_ -4713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */ -4715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); -4716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -4719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -4720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -4722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. -4726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. -4729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. -4730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -4731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3 -4733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; -4735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; -4736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ -4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -4739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if STOPF is set */ -4741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_ -4742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave complete process */ -4744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); -4745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ -4748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check that I2C transfer finished */ -4750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ -4751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean XferCount == 0*/ -4752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So clear Flag NACKF only */ -4753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) -4754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) /* Sam -4756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ -4758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); -4759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) -4761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -4764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ - ARM GAS /tmp/ccFk2Nxo.s page 85 - - -4766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); -4767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ -4769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ -4770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); -4771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -4776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ -4781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -4782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -4783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ -4785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; -4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) -4788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); -4791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, -4795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > 0U) -4797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ -4799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; -4800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -4802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -4803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -4805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -4806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ -4809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) -4810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ -4812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); -4813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, -4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); -4818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, -4820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ -4822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ - ARM GAS /tmp/ccFk2Nxo.s page 86 - - -4823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if all Datas have already been sent */ -4824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ -4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > 0U) -4826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ -4828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; -4829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -4832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -4835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) -4839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ -4841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ -4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); -4843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -4853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. -4859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. -4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. -4863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -4864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -4865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin -4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; -4868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; -4869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ -4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -4872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NAC -4874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -4876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -4877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */ -4879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - ARM GAS /tmp/ccFk2Nxo.s page 87 - - -4880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ -4882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ -4883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ -4884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); -4885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ -4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); -4888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_ -4890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC interrupt */ -4892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); -4893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) -4895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Recover Slave address */ -4897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); -4898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ -4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -4901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; -4904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) -4909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; -4911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; -4915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ -4919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); -4920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ -4922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; -4923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ -4925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) -4926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; -4928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; -4932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ - ARM GAS /tmp/ccFk2Nxo.s page 88 - - -4937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) -4938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ -4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); -4941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ -4945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); -4947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_I -4951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) -4953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) -4955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ -4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) -4958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ -4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; -4961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ -4965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); -4966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ -4972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); -4974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2 -4977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */ -4979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); -4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -4982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -4984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -4987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -4990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -4991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -4992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -4993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. - ARM GAS /tmp/ccFk2Nxo.s page 89 - - -4994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -4995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -4996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. -4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. -4998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -4999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint -5001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; -5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U; -5004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ -5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); -5007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if STOPF is set */ -5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ -5010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave complete process */ -5012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); -5013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NAC -5016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check that I2C transfer finished */ -5018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ -5019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean XferCount == 0 */ -5020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So clear Flag NACKF only */ -5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || -5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) -5023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ -5025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -5026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) -5028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) -5030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** treatdmanack = 1U; -5032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ -5037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -5038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) -5040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U) -5042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** treatdmanack = 1U; -5044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (treatdmanack == 1U) -5049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) /* S - ARM GAS /tmp/ccFk2Nxo.s page 90 - - -5051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ -5053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); -5054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM -5056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -5059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ -5061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); -5062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ -5064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ -5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); -5066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -5070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -5071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ -5076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -5078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ -5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; -5081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) -5083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); -5086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ -5092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -5093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C -5096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); -5098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -5102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; - ARM GAS /tmp/ccFk2Nxo.s page 91 - - -5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques -5112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -5113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -5114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -5115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address -5117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address -5118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -5119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value -5120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -5121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1 -5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI -5125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ -5127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) -5128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -5130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ -5133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) -5134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Memory Address */ -5136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); -5137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ -5139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send MSB of Memory Address */ -5142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); -5143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ -5145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) -5146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -5148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send LSB of Memory Address */ -5151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); -5152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ -5155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) -5156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -5158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -5161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request - ARM GAS /tmp/ccFk2Nxo.s page 92 - - -5165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -5166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -5167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value -5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface -5169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address -5170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address -5171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -5172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value -5173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -5174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16 -5176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR -5178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ -5180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) -5181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -5183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ -5186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) -5187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Memory Address */ -5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); -5190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ -5192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send MSB of Memory Address */ -5195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); -5196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ -5198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) -5199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -5201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send LSB of Memory Address */ -5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); -5205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TC flag is set */ -5208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) -5209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -5211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Address complete process callback. -5218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -5219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. -5220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ - ARM GAS /tmp/ccFk2Nxo.s page 93 - - -5222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) -5223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection; -5225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t slaveaddrcode; -5226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd1code; -5227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd2code; -5228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ -5230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(ITFlags); -5231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ -5233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) -5234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); -5236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); -5237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); -5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); -5239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ -5241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) -5242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((slaveaddrcode & SlaveAddr_MSK) == ((ownadd1code >> SlaveAddr_SHIFT) & SlaveAddr_MSK)) -5244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = ownadd1code; -5246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount++; -5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) -5248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Address Event counter */ -5250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; -5251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ -5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -5254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ -5259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); -5261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); -5263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = ownadd2code; -5269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR Interrupts */ -5271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); -5272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ -5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); - ARM GAS /tmp/ccFk2Nxo.s page 94 - - -5279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); -5281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ -5285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR Interrupts */ -5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); -5289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ -5294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); -5296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); -5298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Else clear address flag only */ -5302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ -5305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); -5306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Master sequential complete process. -5314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -5315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) -5318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ -5320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -5321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ -5323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ -5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) -5325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; -5328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -5329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ -5331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); -5332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 95 - - -5336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); -5339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); -5341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ -5344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; -5348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -5349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ -5351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); -5352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); -5359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); -5361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. -5367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -5368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) -5371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ -5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -5374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) -5376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ -5378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; -5380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ -5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); -5383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); -5390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); -5392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - ARM GAS /tmp/ccFk2Nxo.s page 96 - - -5393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) -5396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ -5398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -5399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; -5400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ -5402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); -5403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); -5410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); -5412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -5417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Master complete process. -5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. -5424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) -5427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; -5429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -5432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ -5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); -5435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ -5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; -5438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -5439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -5440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) -5442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -5444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -5445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set acknowledge error code */ -5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; -5448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 97 - - -5450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ -5451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); -5452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ -5454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_RX_IT); -5455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ -5457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; -5458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) -5461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); -5464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ -5466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) -5467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) -5471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -5473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); -5480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); -5482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -5487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); -5494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); -5496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ -5500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) -5501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) -5505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - ARM GAS /tmp/ccFk2Nxo.s page 98 - - -5507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); -5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); -5516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); -5528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); -5530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -5536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Slave complete process. -5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -5542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. -5543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) -5546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); -5548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; -5549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -5552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts */ -5554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT); -5555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ -5557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -5558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ -5560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); -5561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ -5563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); - ARM GAS /tmp/ccFk2Nxo.s page 99 - - -5564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ -5566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) -5567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -5569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmatx); -5571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) -5574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -5576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmarx); -5578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ -5583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ -5586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) -5587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ -5589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; -5590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ -5592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; -5593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -5595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -5596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) -5598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -5601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ -5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) -5606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ -5608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; -5609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; -5612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -5613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -5614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) -5616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); -5619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ - ARM GAS /tmp/ccFk2Nxo.s page 100 - - -5621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) -5622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ -5624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); -5625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) -5628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Tranfer */ -5630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); -5631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -5633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ -5639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); -5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); -5643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) -5647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); -5656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); -5658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); -5670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); -5672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Listen complete process. - ARM GAS /tmp/ccFk2Nxo.s page 101 - - -5678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -5679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. -5680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) -5683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ -5685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; -5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -5689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -5690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ -5692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) -5693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ -5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; -5696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ -5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; -5699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) -5701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; -5703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; -5704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ -5706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; -5707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all Interrupts*/ -5711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); -5712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ -5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -5715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ -5720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); -5722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); -5724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C interrupts error process. -5729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -5730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ErrorCode Error code to handle. -5731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) -5734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 102 - - -5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; -5736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ -5738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -5739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; -5740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U; -5741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set new error code */ -5743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; -5744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ -5746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || -5747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || -5748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) -5749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ -5751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); -5752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ -5754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; -5755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; -5756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; -5757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts */ -5761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); -5762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If state is an abort treatment on goind, don't change state */ -5764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This change will be do later */ -5765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) -5766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ -5768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; -5771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; -5772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ -5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) -5776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; -5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) -5780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : -5782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ -5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; -5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ -5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) -5790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ - ARM GAS /tmp/ccFk2Nxo.s page 103 - - -5792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); -5793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ -5797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) -5798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; -5800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) -5802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : -5804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ -5805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; -5806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ -5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) -5812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ -5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); -5815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_ABORT) -5819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -5821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); -5828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); -5830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -5835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -5836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -5839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); -5840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); -5842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -5843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Tx data register flush process. -5848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. - ARM GAS /tmp/ccFk2Nxo.s page 104 - - -5849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) -5852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 25 .loc 1 5852 0 - 26 .cfi_startproc - 27 @ args = 0, pretend = 0, frame = 0 - 28 @ frame_needed = 0, uses_anonymous_args = 0 - 29 @ link register save eliminated. - 30 .LVL0: -5853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a pending TXIS flag is set */ -5854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ -5855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) - 31 .loc 1 5855 0 - 32 0000 0368 ldr r3, [r0] - 33 0002 9A69 ldr r2, [r3, #24] - 34 0004 9207 lsls r2, r2, #30 - 35 0006 01D5 bpl .L2 -5856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; - 36 .loc 1 5857 0 - 37 0008 0022 movs r2, #0 - 38 000a 9A62 str r2, [r3, #40] - 39 .L2: -5858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register if not empty */ -5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) - 40 .loc 1 5861 0 - 41 000c 0368 ldr r3, [r0] - 42 000e 9A69 ldr r2, [r3, #24] - 43 0010 D207 lsls r2, r2, #31 - 44 0012 03D4 bmi .L1 -5862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); - 45 .loc 1 5863 0 - 46 0014 9A69 ldr r2, [r3, #24] - 47 0016 0121 movs r1, #1 - 48 0018 0A43 orrs r2, r1 - 49 001a 9A61 str r2, [r3, #24] - 50 .L1: -5864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 51 .loc 1 5865 0 - 52 @ sp needed - 53 001c 7047 bx lr - 54 .cfi_endproc - 55 .LFE102: - 57 .section .text.I2C_TransferConfig,"ax",%progbits - 58 .align 1 - 59 .syntax unified - 60 .code 16 - 61 .thumb_func - 62 .fpu softvfp - 64 I2C_TransferConfig: - 65 .LFB114: -5866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 105 - - -5867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. -5869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle -5870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) -5873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati -5875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ -5877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; -5878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ -5880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) -5881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupt */ -5883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); -5884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ -5886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Buffer pointer */ -5889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; -5890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the XferSize to transfer */ -5892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -5893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -5895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -5899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -5902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, h -5903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); -5906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ -5910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); -5911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. -5917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle -5918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) -5921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati -5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; - ARM GAS /tmp/ccFk2Nxo.s page 106 - - -5924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) -5926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ -5928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; -5929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ -5931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ -5932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); -5933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ -5937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ -5938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ -5939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. -5944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle -5945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) -5948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati -5950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ -5952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; -5953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ -5955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) -5956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupt */ -5958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); -5959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ -5961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Buffer pointer */ -5964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; -5965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the XferSize to transfer */ -5967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) -5968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; -5970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; -5974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ -5977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, h -5978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -5980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); - ARM GAS /tmp/ccFk2Nxo.s page 107 - - -5981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -5983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ -5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); -5986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -5989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -5990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. -5992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle -5993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -5994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -5995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) -5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -5997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati -5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; -5999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) && \ -6001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) -6002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ -6004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; -6005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ -6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); -6008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -6010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ -6012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ -6013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ -6014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C communication error callback. -6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle -6020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -6021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) -6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati -6025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Acknowledge */ -6027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; -6028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -6030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); -6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C communication abort callback -6035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). -6036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle. -6037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None - ARM GAS /tmp/ccFk2Nxo.s page 108 - - -6038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) -6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati -6042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset AbortCpltCallback */ -6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; -6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; -6046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if come from abort from user */ -6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) -6049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -6051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -6053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -6054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); -6055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); -6057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -6058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -6060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ -6062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) -6063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); -6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else -6065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); -6066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ -6067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. -6072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -6073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -6074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. -6075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET). -6076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -6077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value -6078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -6079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta -6081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) -6083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ -6085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) -6086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) -6088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; -6090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -6091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -6092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -6094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); - ARM GAS /tmp/ccFk2Nxo.s page 109 - - -6095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -6100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. -6104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -6105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -6106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -6107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value -6108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -6109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, -6111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) -6113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */ -6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) -6116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ -6121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) -6122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) -6124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; -6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -6127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -6128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -6130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -6131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -6137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. -6141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -6142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -6143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -6144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value -6145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -6146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, -6148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) -6150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */ - ARM GAS /tmp/ccFk2Nxo.s page 110 - - -6152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) -6153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ -6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) -6159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; -6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -6163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -6165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -6166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -6171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. -6175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -6177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -6178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value -6179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -6180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, -6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) -6184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */ -6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) -6187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a STOPF is detected */ -6192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) -6193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an RXNE is pending */ -6195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ -6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) -6197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return HAL_OK */ -6199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ -6200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -6201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -6203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -6205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -6206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ -6208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); - ARM GAS /tmp/ccFk2Nxo.s page 111 - - -6209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; -6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -6212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -6213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -6215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -6216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ -6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) -6223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; -6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -6226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -6228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -6229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -6234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication. -6238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -6239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -6240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration -6241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value -6242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status -6243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_ -6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) -6247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP Flag is reset */ -6249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ -6250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) -6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ -6253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) -6254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) -6256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; -6258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -6259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -6260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -6262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -6263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 112 - - -6266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACKF Flag */ -6270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); -6271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ -6273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); -6274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ -6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); -6277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ -6279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); -6280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; -6282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; -6283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; -6284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ -6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); -6287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; -6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; -6291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar -6295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. -6297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. -6298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. -6299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. -6300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: -6301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . -6302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. -6303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. -6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. -6305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: -6306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. -6307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). -6308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. -6309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. -6310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -6311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t -6313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 66 .loc 1 6313 0 - 67 .cfi_startproc - 68 @ args = 4, pretend = 0, frame = 0 - 69 @ frame_needed = 0, uses_anonymous_args = 0 - 70 .LVL1: - 71 0000 F0B5 push {r4, r5, r6, r7, lr} - 72 .LCFI0: - 73 .cfi_def_cfa_offset 20 - 74 .cfi_offset 4, -20 - ARM GAS /tmp/ccFk2Nxo.s page 113 - - - 75 .cfi_offset 5, -16 - 76 .cfi_offset 6, -12 - 77 .cfi_offset 7, -8 - 78 .cfi_offset 14, -4 - 79 0002 059C ldr r4, [sp, #20] -6314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ -6315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); -6316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); -6317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); -6318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* update CR2 register */ -6320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEN - 80 .loc 1 6320 0 - 81 0004 0568 ldr r5, [r0] - 82 0006 6868 ldr r0, [r5, #4] - 83 .LVL2: - 84 0008 660D lsrs r6, r4, #21 - 85 000a 8027 movs r7, #128 - 86 000c FF00 lsls r7, r7, #3 - 87 000e 3740 ands r7, r6 - 88 0010 054E ldr r6, .L5 - 89 0012 3E43 orrs r6, r7 - 90 0014 B043 bics r0, r6 - 91 0016 8905 lsls r1, r1, #22 - 92 .LVL3: - 93 0018 890D lsrs r1, r1, #22 - 94 001a 1204 lsls r2, r2, #16 - 95 .LVL4: - 96 001c 1143 orrs r1, r2 - 97 001e 0B43 orrs r3, r1 - 98 .LVL5: - 99 0020 2343 orrs r3, r4 - 100 0022 0343 orrs r3, r0 - 101 0024 6B60 str r3, [r5, #4] -6321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ -6322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 102 .loc 1 6322 0 - 103 @ sp needed - 104 0026 F0BD pop {r4, r5, r6, r7, pc} - 105 .L6: - 106 .align 2 - 107 .L5: - 108 0028 FF63FF03 .word 67068927 - 109 .cfi_endproc - 110 .LFE114: - 112 .section .text.I2C_Enable_IRQ,"ax",%progbits - 113 .align 1 - 114 .syntax unified - 115 .code 16 - 116 .thumb_func - 117 .fpu softvfp - 119 I2C_Enable_IRQ: - 120 .LFB115: -6323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. -6326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains - ARM GAS /tmp/ccFk2Nxo.s page 114 - - -6327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -6328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. -6329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -6330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) -6332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 121 .loc 1 6332 0 - 122 .cfi_startproc - 123 @ args = 0, pretend = 0, frame = 0 - 124 @ frame_needed = 0, uses_anonymous_args = 0 - 125 @ link register save eliminated. - 126 .LVL6: -6333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U; -6334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \ - 127 .loc 1 6335 0 - 128 0000 436B ldr r3, [r0, #52] - 129 0002 1C4A ldr r2, .L23 - 130 0004 9342 cmp r3, r2 - 131 0006 12D0 beq .L8 - 132 .loc 1 6335 0 is_stmt 0 discriminator 1 - 133 0008 1B4A ldr r2, .L23+4 - 134 000a 9342 cmp r3, r2 - 135 000c 0FD0 beq .L8 -6336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) -6337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) -6339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ -6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; -6342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT) -6345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ -6347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; -6348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT) -6351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ -6353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; -6354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT) -6357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ -6359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; -6360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -6363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) - 136 .loc 1 6364 0 is_stmt 1 - 137 000e 4B07 lsls r3, r1, #29 - 138 0010 2AD4 bmi .L18 -6333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U; - ARM GAS /tmp/ccFk2Nxo.s page 115 - - - 139 .loc 1 6333 0 - 140 0012 0023 movs r3, #0 - 141 .L14: - 142 .LVL7: -6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */ -6367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; -6368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) - 143 .loc 1 6370 0 - 144 0014 CA07 lsls r2, r1, #31 - 145 0016 01D5 bpl .L15 -6371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ -6373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; - 146 .loc 1 6373 0 - 147 0018 F222 movs r2, #242 - 148 001a 1343 orrs r3, r2 - 149 .LVL8: - 150 .L15: -6374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) - 151 .loc 1 6376 0 - 152 001c 8A07 lsls r2, r1, #30 - 153 001e 25D4 bmi .L19 -6377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ -6379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; -6380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT) - 154 .loc 1 6382 0 - 155 0020 1222 movs r2, #18 - 156 0022 1140 ands r1, r2 - 157 .LVL9: - 158 0024 1229 cmp r1, #18 - 159 0026 0FD1 bne .L13 -6383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ -6385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; - 160 .loc 1 6385 0 - 161 0028 0E32 adds r2, r2, #14 - 162 002a 1343 orrs r3, r2 - 163 .LVL10: - 164 002c 0CE0 b .L13 - 165 .LVL11: - 166 .L8: -6338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 167 .loc 1 6338 0 - 168 002e 4B07 lsls r3, r1, #29 - 169 0030 0FD4 bmi .L17 -6333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 170 .loc 1 6333 0 - 171 0032 0023 movs r3, #0 - 172 .L10: - ARM GAS /tmp/ccFk2Nxo.s page 116 - - - 173 .LVL12: -6344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 174 .loc 1 6344 0 - 175 0034 1122 movs r2, #17 - 176 0036 0A40 ands r2, r1 - 177 0038 112A cmp r2, #17 - 178 003a 0CD0 beq .L20 - 179 .L11: - 180 003c 1222 movs r2, #18 - 181 003e 1140 ands r1, r2 - 182 .LVL13: -6350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 183 .loc 1 6350 0 - 184 0040 1229 cmp r1, #18 - 185 0042 0BD0 beq .L21 - 186 .L12: -6356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 187 .loc 1 6356 0 - 188 0044 1229 cmp r1, #18 - 189 0046 0CD0 beq .L22 - 190 .L13: -6386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable interrupts only at the end */ -6390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ -6391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* all interrupts requested done */ -6392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); - 191 .loc 1 6392 0 - 192 0048 0168 ldr r1, [r0] - 193 004a 0A68 ldr r2, [r1] - 194 004c 1343 orrs r3, r2 - 195 .LVL14: - 196 004e 0B60 str r3, [r1] -6393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 197 .loc 1 6393 0 - 198 @ sp needed - 199 0050 7047 bx lr - 200 .LVL15: - 201 .L17: -6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 202 .loc 1 6341 0 - 203 0052 B823 movs r3, #184 - 204 0054 EEE7 b .L10 - 205 .LVL16: - 206 .L20: -6347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 207 .loc 1 6347 0 - 208 0056 7F32 adds r2, r2, #127 - 209 0058 1343 orrs r3, r2 - 210 .LVL17: - 211 005a EFE7 b .L11 - 212 .LVL18: - 213 .L21: -6353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 214 .loc 1 6353 0 - 215 005c 0E32 adds r2, r2, #14 - ARM GAS /tmp/ccFk2Nxo.s page 117 - - - 216 005e 1343 orrs r3, r2 - 217 .LVL19: - 218 0060 F0E7 b .L12 - 219 .L22: -6359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 220 .loc 1 6359 0 - 221 0062 4022 movs r2, #64 - 222 0064 1343 orrs r3, r2 - 223 .LVL20: - 224 0066 EFE7 b .L13 - 225 .LVL21: - 226 .L18: -6367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 227 .loc 1 6367 0 - 228 0068 B823 movs r3, #184 - 229 006a D3E7 b .L14 - 230 .LVL22: - 231 .L19: -6379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 232 .loc 1 6379 0 - 233 006c F422 movs r2, #244 - 234 006e 1343 orrs r3, r2 - 235 .LVL23: - 236 0070 EAE7 b .L13 - 237 .L24: - 238 0072 C046 .align 2 - 239 .L23: - 240 0074 00000000 .word I2C_Master_ISR_DMA - 241 0078 00000000 .word I2C_Slave_ISR_DMA - 242 .cfi_endproc - 243 .LFE115: - 245 .section .text.I2C_Disable_IRQ,"ax",%progbits - 246 .align 1 - 247 .syntax unified - 248 .code 16 - 249 .thumb_func - 250 .fpu softvfp - 252 I2C_Disable_IRQ: - 253 .LFB116: -6394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. -6397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains -6398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. -6399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. -6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -6401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) -6403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 254 .loc 1 6403 0 - 255 .cfi_startproc - 256 @ args = 0, pretend = 0, frame = 0 - 257 @ frame_needed = 0, uses_anonymous_args = 0 - 258 .LVL24: - 259 0000 30B5 push {r4, r5, lr} - 260 .LCFI1: - 261 .cfi_def_cfa_offset 12 - ARM GAS /tmp/ccFk2Nxo.s page 118 - - - 262 .cfi_offset 4, -12 - 263 .cfi_offset 5, -8 - 264 .cfi_offset 14, -4 - 265 .LVL25: -6404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U; -6405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) - 266 .loc 1 6406 0 - 267 0002 CB07 lsls r3, r1, #31 - 268 0004 09D5 bpl .L32 - 269 .LVL26: -6407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ -6409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; -6410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) - 270 .loc 1 6411 0 - 271 0006 4123 movs r3, #65 - 272 0008 C35C ldrb r3, [r0, r3] - 273 000a 2822 movs r2, #40 - 274 000c 1340 ands r3, r2 - 275 000e 282B cmp r3, #40 - 276 0010 01D0 beq .L35 -6412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ -6414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; - 277 .loc 1 6414 0 - 278 0012 F223 movs r3, #242 - 279 0014 02E0 b .L26 - 280 .L35: -6409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 281 .loc 1 6409 0 - 282 0016 1A33 adds r3, r3, #26 - 283 0018 00E0 b .L26 - 284 .LVL27: - 285 .L32: -6404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 286 .loc 1 6404 0 - 287 001a 0023 movs r3, #0 - 288 .LVL28: - 289 .L26: -6415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) - 290 .loc 1 6418 0 - 291 001c 8A07 lsls r2, r1, #30 - 292 001e 09D5 bpl .L27 -6419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ -6421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; - 293 .loc 1 6421 0 - 294 0020 4424 movs r4, #68 - 295 0022 1C43 orrs r4, r3 - 296 .LVL29: -6422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) - ARM GAS /tmp/ccFk2Nxo.s page 119 - - - 297 .loc 1 6423 0 - 298 0024 4122 movs r2, #65 - 299 0026 825C ldrb r2, [r0, r2] - 300 0028 2825 movs r5, #40 - 301 002a 2A40 ands r2, r5 - 302 002c 282A cmp r2, #40 - 303 002e 14D0 beq .L34 -6424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ -6426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; - 304 .loc 1 6426 0 - 305 0030 F422 movs r2, #244 - 306 0032 1343 orrs r3, r2 - 307 .LVL30: - 308 .L27: -6427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) - 309 .loc 1 6430 0 - 310 0034 4A07 lsls r2, r1, #29 - 311 0036 01D5 bpl .L28 -6431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ -6433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; - 312 .loc 1 6433 0 - 313 0038 B822 movs r2, #184 - 314 003a 1343 orrs r3, r2 - 315 .LVL31: - 316 .L28: -6434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT) - 317 .loc 1 6436 0 - 318 003c 1122 movs r2, #17 - 319 003e 0A40 ands r2, r1 - 320 0040 112A cmp r2, #17 - 321 0042 0CD0 beq .L36 - 322 .L29: - 323 0044 1222 movs r2, #18 - 324 0046 1140 ands r1, r2 - 325 .LVL32: -6437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ -6439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; -6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT) - 326 .loc 1 6442 0 - 327 0048 1229 cmp r1, #18 - 328 004a 0BD0 beq .L37 - 329 .L30: -6443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ -6445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; -6446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 120 - - -6448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT) - 330 .loc 1 6448 0 - 331 004c 1229 cmp r1, #18 - 332 004e 0CD0 beq .L38 - 333 .L31: -6449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ -6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; -6452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable interrupts only at the end */ -6455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ -6456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* all disable interrupts request are not done */ -6457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); - 334 .loc 1 6457 0 - 335 0050 0168 ldr r1, [r0] - 336 0052 0A68 ldr r2, [r1] - 337 0054 9A43 bics r2, r3 - 338 0056 0A60 str r2, [r1] -6458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 339 .loc 1 6458 0 - 340 @ sp needed - 341 0058 30BD pop {r4, r5, pc} - 342 .LVL33: - 343 .L34: -6421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 344 .loc 1 6421 0 - 345 005a 2300 movs r3, r4 - 346 005c EAE7 b .L27 - 347 .LVL34: - 348 .L36: -6439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 349 .loc 1 6439 0 - 350 005e 7F32 adds r2, r2, #127 - 351 0060 1343 orrs r3, r2 - 352 .LVL35: - 353 0062 EFE7 b .L29 - 354 .LVL36: - 355 .L37: -6445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 356 .loc 1 6445 0 - 357 0064 0E32 adds r2, r2, #14 - 358 0066 1343 orrs r3, r2 - 359 .LVL37: - 360 0068 F0E7 b .L30 - 361 .L38: -6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 362 .loc 1 6451 0 - 363 006a 4022 movs r2, #64 - 364 006c 1343 orrs r3, r2 - 365 .LVL38: - 366 006e EFE7 b .L31 - 367 .cfi_endproc - 368 .LFE116: - 370 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits - 371 .align 1 - 372 .syntax unified - ARM GAS /tmp/ccFk2Nxo.s page 121 - - - 373 .code 16 - 374 .thumb_func - 375 .fpu softvfp - 377 I2C_ConvertOtherXferOptions: - 378 .LFB117: -6459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** -6460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** -6461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functionnal XferOptions. -6462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. -6463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None -6464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ -6465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) -6466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 379 .loc 1 6466 0 - 380 .cfi_startproc - 381 @ args = 0, pretend = 0, frame = 0 - 382 @ frame_needed = 0, uses_anonymous_args = 0 - 383 @ link register save eliminated. - 384 .LVL39: -6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ -6468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ -6469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ -6470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) - 385 .loc 1 6470 0 - 386 0000 C36A ldr r3, [r0, #44] - 387 0002 AA2B cmp r3, #170 - 388 0004 05D0 beq .L42 -6471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; -6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ -6475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ -6476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ -6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ -6478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) - 389 .loc 1 6478 0 - 390 0006 C26A ldr r2, [r0, #44] - 391 0008 AA23 movs r3, #170 - 392 000a 1B02 lsls r3, r3, #8 - 393 000c 9A42 cmp r2, r3 - 394 000e 03D0 beq .L43 - 395 .L39: -6479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; -6481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else -6483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { -6484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ -6485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } -6486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 396 .loc 1 6486 0 - 397 @ sp needed - 398 0010 7047 bx lr - 399 .L42: -6472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 400 .loc 1 6472 0 - 401 0012 0023 movs r3, #0 - ARM GAS /tmp/ccFk2Nxo.s page 122 - - - 402 0014 C362 str r3, [r0, #44] - 403 0016 FBE7 b .L39 - 404 .L43: -6480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 405 .loc 1 6480 0 - 406 0018 8023 movs r3, #128 - 407 001a 9B04 lsls r3, r3, #18 - 408 001c C362 str r3, [r0, #44] - 409 .loc 1 6486 0 - 410 001e F7E7 b .L39 - 411 .cfi_endproc - 412 .LFE117: - 414 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits - 415 .align 1 - 416 .syntax unified - 417 .code 16 - 418 .thumb_func - 419 .fpu softvfp - 421 I2C_IsAcknowledgeFailed: - 422 .LFB113: -6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) - 423 .loc 1 6245 0 - 424 .cfi_startproc - 425 @ args = 0, pretend = 0, frame = 0 - 426 @ frame_needed = 0, uses_anonymous_args = 0 - 427 .LVL40: - 428 0000 70B5 push {r4, r5, r6, lr} - 429 .LCFI2: - 430 .cfi_def_cfa_offset 16 - 431 .cfi_offset 4, -16 - 432 .cfi_offset 5, -12 - 433 .cfi_offset 6, -8 - 434 .cfi_offset 14, -4 - 435 0002 0400 movs r4, r0 - 436 0004 0E00 movs r6, r1 - 437 0006 1500 movs r5, r2 -6246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 438 .loc 1 6246 0 - 439 0008 0368 ldr r3, [r0] - 440 000a 9B69 ldr r3, [r3, #24] - 441 000c DB06 lsls r3, r3, #27 - 442 000e 19D5 bpl .L50 - 443 .LVL41: - 444 .L47: -6250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 445 .loc 1 6250 0 - 446 0010 2368 ldr r3, [r4] - 447 0012 9A69 ldr r2, [r3, #24] - 448 0014 9206 lsls r2, r2, #26 - 449 0016 17D4 bmi .L51 -6253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 450 .loc 1 6253 0 - 451 0018 731C adds r3, r6, #1 - 452 001a F9D0 beq .L47 -6255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 453 .loc 1 6255 0 - 454 001c FFF7FEFF bl HAL_GetTick - ARM GAS /tmp/ccFk2Nxo.s page 123 - - - 455 .LVL42: - 456 0020 401B subs r0, r0, r5 - 457 0022 B042 cmp r0, r6 - 458 0024 01D8 bhi .L48 -6255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 459 .loc 1 6255 0 is_stmt 0 discriminator 1 - 460 0026 002E cmp r6, #0 - 461 0028 F2D1 bne .L47 - 462 .L48: -6257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 463 .loc 1 6257 0 is_stmt 1 - 464 002a 636C ldr r3, [r4, #68] - 465 002c 2022 movs r2, #32 - 466 002e 1343 orrs r3, r2 - 467 0030 6364 str r3, [r4, #68] -6258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 468 .loc 1 6258 0 - 469 0032 4123 movs r3, #65 - 470 0034 E254 strb r2, [r4, r3] -6259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 471 .loc 1 6259 0 - 472 0036 0023 movs r3, #0 - 473 0038 2232 adds r2, r2, #34 - 474 003a A354 strb r3, [r4, r2] -6262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 475 .loc 1 6262 0 - 476 003c 023A subs r2, r2, #2 - 477 003e A354 strb r3, [r4, r2] -6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 478 .loc 1 6264 0 - 479 0040 0120 movs r0, #1 - 480 0042 1AE0 b .L46 - 481 .LVL43: - 482 .L50: -6290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 483 .loc 1 6290 0 - 484 0044 0020 movs r0, #0 - 485 .LVL44: - 486 0046 18E0 b .L46 - 487 .LVL45: - 488 .L51: -6270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 489 .loc 1 6270 0 - 490 0048 1022 movs r2, #16 - 491 004a DA61 str r2, [r3, #28] -6273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 492 .loc 1 6273 0 - 493 004c 2368 ldr r3, [r4] - 494 004e 2025 movs r5, #32 - 495 .LVL46: - 496 0050 DD61 str r5, [r3, #28] -6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 497 .loc 1 6276 0 - 498 0052 2000 movs r0, r4 - 499 0054 FFF7FEFF bl I2C_Flush_TXDR - 500 .LVL47: -6279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 124 - - - 501 .loc 1 6279 0 - 502 0058 2268 ldr r2, [r4] - 503 005a 5368 ldr r3, [r2, #4] - 504 005c 0749 ldr r1, .L52 - 505 005e 0B40 ands r3, r1 - 506 0060 5360 str r3, [r2, #4] -6281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 507 .loc 1 6281 0 - 508 0062 636C ldr r3, [r4, #68] - 509 0064 0422 movs r2, #4 - 510 0066 1343 orrs r3, r2 - 511 0068 6364 str r3, [r4, #68] -6282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 512 .loc 1 6282 0 - 513 006a 4123 movs r3, #65 - 514 006c E554 strb r5, [r4, r3] -6283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 515 .loc 1 6283 0 - 516 006e 0023 movs r3, #0 - 517 0070 3E32 adds r2, r2, #62 - 518 0072 A354 strb r3, [r4, r2] -6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 519 .loc 1 6286 0 - 520 0074 023A subs r2, r2, #2 - 521 0076 A354 strb r3, [r4, r2] -6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 522 .loc 1 6288 0 - 523 0078 0120 movs r0, #1 - 524 .L46: -6291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 525 .loc 1 6291 0 - 526 @ sp needed - 527 .LVL48: - 528 .LVL49: - 529 007a 70BD pop {r4, r5, r6, pc} - 530 .L53: - 531 .align 2 - 532 .L52: - 533 007c 00E800FE .word -33495040 - 534 .cfi_endproc - 535 .LFE113: - 537 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits - 538 .align 1 - 539 .syntax unified - 540 .code 16 - 541 .thumb_func - 542 .fpu softvfp - 544 I2C_WaitOnTXISFlagUntilTimeout: - 545 .LFB110: -6111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) - 546 .loc 1 6111 0 - 547 .cfi_startproc - 548 @ args = 0, pretend = 0, frame = 0 - 549 @ frame_needed = 0, uses_anonymous_args = 0 - 550 .LVL50: - 551 0000 70B5 push {r4, r5, r6, lr} - 552 .LCFI3: - ARM GAS /tmp/ccFk2Nxo.s page 125 - - - 553 .cfi_def_cfa_offset 16 - 554 .cfi_offset 4, -16 - 555 .cfi_offset 5, -12 - 556 .cfi_offset 6, -8 - 557 .cfi_offset 14, -4 - 558 0002 0400 movs r4, r0 - 559 0004 0D00 movs r5, r1 - 560 0006 1600 movs r6, r2 - 561 .LVL51: - 562 .L57: -6112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 563 .loc 1 6112 0 - 564 0008 2368 ldr r3, [r4] - 565 000a 9B69 ldr r3, [r3, #24] - 566 000c 9B07 lsls r3, r3, #30 - 567 000e 1CD4 bmi .L61 -6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 568 .loc 1 6115 0 - 569 0010 3200 movs r2, r6 - 570 0012 2900 movs r1, r5 - 571 0014 2000 movs r0, r4 - 572 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed - 573 .LVL52: - 574 001a 0028 cmp r0, #0 - 575 001c 17D1 bne .L60 -6121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 576 .loc 1 6121 0 - 577 001e 6B1C adds r3, r5, #1 - 578 0020 F2D0 beq .L57 -6123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 579 .loc 1 6123 0 - 580 0022 FFF7FEFF bl HAL_GetTick - 581 .LVL53: - 582 0026 801B subs r0, r0, r6 - 583 0028 A842 cmp r0, r5 - 584 002a 01D8 bhi .L58 -6123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 585 .loc 1 6123 0 is_stmt 0 discriminator 1 - 586 002c 002D cmp r5, #0 - 587 002e EBD1 bne .L57 - 588 .L58: -6125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 589 .loc 1 6125 0 is_stmt 1 - 590 0030 636C ldr r3, [r4, #68] - 591 0032 2022 movs r2, #32 - 592 0034 1343 orrs r3, r2 - 593 0036 6364 str r3, [r4, #68] -6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 594 .loc 1 6126 0 - 595 0038 4123 movs r3, #65 - 596 003a E254 strb r2, [r4, r3] -6127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 597 .loc 1 6127 0 - 598 003c 0023 movs r3, #0 - 599 003e 2232 adds r2, r2, #34 - 600 0040 A354 strb r3, [r4, r2] -6130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 126 - - - 601 .loc 1 6130 0 - 602 0042 023A subs r2, r2, #2 - 603 0044 A354 strb r3, [r4, r2] -6132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 604 .loc 1 6132 0 - 605 0046 0120 movs r0, #1 - 606 0048 00E0 b .L56 - 607 .L61: -6136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 608 .loc 1 6136 0 - 609 004a 0020 movs r0, #0 - 610 .L56: -6137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 611 .loc 1 6137 0 - 612 @ sp needed - 613 .LVL54: - 614 .LVL55: - 615 .LVL56: - 616 004c 70BD pop {r4, r5, r6, pc} - 617 .LVL57: - 618 .L60: -6117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 619 .loc 1 6117 0 - 620 004e 0120 movs r0, #1 - 621 0050 FCE7 b .L56 - 622 .cfi_endproc - 623 .LFE110: - 625 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits - 626 .align 1 - 627 .syntax unified - 628 .code 16 - 629 .thumb_func - 630 .fpu softvfp - 632 I2C_WaitOnFlagUntilTimeout: - 633 .LFB109: -6081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 634 .loc 1 6081 0 - 635 .cfi_startproc - 636 @ args = 4, pretend = 0, frame = 0 - 637 @ frame_needed = 0, uses_anonymous_args = 0 - 638 .LVL58: - 639 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 640 .LCFI4: - 641 .cfi_def_cfa_offset 24 - 642 .cfi_offset 3, -24 - 643 .cfi_offset 4, -20 - 644 .cfi_offset 5, -16 - 645 .cfi_offset 6, -12 - 646 .cfi_offset 7, -8 - 647 .cfi_offset 14, -4 - 648 0002 0600 movs r6, r0 - 649 0004 0C00 movs r4, r1 - 650 0006 1700 movs r7, r2 - 651 0008 1D00 movs r5, r3 - 652 .LVL59: - 653 .L64: -6082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 127 - - - 654 .loc 1 6082 0 - 655 000a 3368 ldr r3, [r6] - 656 000c 9B69 ldr r3, [r3, #24] - 657 000e 2340 ands r3, r4 - 658 0010 1B1B subs r3, r3, r4 - 659 0012 5A42 rsbs r2, r3, #0 - 660 0014 5341 adcs r3, r3, r2 - 661 0016 BB42 cmp r3, r7 - 662 0018 16D1 bne .L68 -6085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 663 .loc 1 6085 0 - 664 001a 6B1C adds r3, r5, #1 - 665 001c F5D0 beq .L64 -6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 666 .loc 1 6087 0 - 667 001e FFF7FEFF bl HAL_GetTick - 668 .LVL60: - 669 0022 069B ldr r3, [sp, #24] - 670 0024 C01A subs r0, r0, r3 - 671 0026 A842 cmp r0, r5 - 672 0028 01D8 bhi .L65 -6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 673 .loc 1 6087 0 is_stmt 0 discriminator 1 - 674 002a 002D cmp r5, #0 - 675 002c EDD1 bne .L64 - 676 .L65: -6089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 677 .loc 1 6089 0 is_stmt 1 - 678 002e 736C ldr r3, [r6, #68] - 679 0030 2022 movs r2, #32 - 680 0032 1343 orrs r3, r2 - 681 0034 7364 str r3, [r6, #68] -6090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 682 .loc 1 6090 0 - 683 0036 4123 movs r3, #65 - 684 0038 F254 strb r2, [r6, r3] -6091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 685 .loc 1 6091 0 - 686 003a 0023 movs r3, #0 - 687 003c 2232 adds r2, r2, #34 - 688 003e B354 strb r3, [r6, r2] -6094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 689 .loc 1 6094 0 - 690 0040 023A subs r2, r2, #2 - 691 0042 B354 strb r3, [r6, r2] -6095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 692 .loc 1 6095 0 - 693 0044 0120 movs r0, #1 - 694 0046 00E0 b .L66 - 695 .L68: -6099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 696 .loc 1 6099 0 - 697 0048 0020 movs r0, #0 - 698 .L66: -6100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 699 .loc 1 6100 0 - 700 @ sp needed - ARM GAS /tmp/ccFk2Nxo.s page 128 - - - 701 .LVL61: - 702 .LVL62: - 703 .LVL63: - 704 004a F8BD pop {r3, r4, r5, r6, r7, pc} - 705 .cfi_endproc - 706 .LFE109: - 708 .section .text.I2C_RequestMemoryWrite,"ax",%progbits - 709 .align 1 - 710 .syntax unified - 711 .code 16 - 712 .thumb_func - 713 .fpu softvfp - 715 I2C_RequestMemoryWrite: - 716 .LFB93: -5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI - 717 .loc 1 5123 0 - 718 .cfi_startproc - 719 @ args = 8, pretend = 0, frame = 0 - 720 @ frame_needed = 0, uses_anonymous_args = 0 - 721 .LVL64: - 722 0000 70B5 push {r4, r5, r6, lr} - 723 .LCFI5: - 724 .cfi_def_cfa_offset 16 - 725 .cfi_offset 4, -16 - 726 .cfi_offset 5, -12 - 727 .cfi_offset 6, -8 - 728 .cfi_offset 14, -4 - 729 0002 82B0 sub sp, sp, #8 - 730 .LCFI6: - 731 .cfi_def_cfa_offset 24 - 732 0004 0400 movs r4, r0 - 733 0006 1600 movs r6, r2 - 734 0008 1D00 movs r5, r3 -5124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 735 .loc 1 5124 0 - 736 000a 8023 movs r3, #128 - 737 .LVL65: - 738 000c EAB2 uxtb r2, r5 - 739 .LVL66: - 740 000e 1848 ldr r0, .L75 - 741 .LVL67: - 742 0010 0090 str r0, [sp] - 743 0012 5B04 lsls r3, r3, #17 - 744 0014 2000 movs r0, r4 - 745 0016 FFF7FEFF bl I2C_TransferConfig - 746 .LVL68: -5127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 747 .loc 1 5127 0 - 748 001a 079A ldr r2, [sp, #28] - 749 001c 0699 ldr r1, [sp, #24] - 750 001e 2000 movs r0, r4 - 751 0020 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout - 752 .LVL69: - 753 0024 0028 cmp r0, #0 - 754 0026 1ED1 bne .L73 -5133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 755 .loc 1 5133 0 - ARM GAS /tmp/ccFk2Nxo.s page 129 - - - 756 0028 012D cmp r5, #1 - 757 002a 0ED1 bne .L71 -5136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 758 .loc 1 5136 0 - 759 002c 2368 ldr r3, [r4] - 760 002e F6B2 uxtb r6, r6 - 761 0030 9E62 str r6, [r3, #40] - 762 .L72: -5155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 763 .loc 1 5155 0 - 764 0032 079B ldr r3, [sp, #28] - 765 0034 0093 str r3, [sp] - 766 0036 069B ldr r3, [sp, #24] - 767 0038 0022 movs r2, #0 - 768 003a 8021 movs r1, #128 - 769 003c 2000 movs r0, r4 - 770 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 771 .LVL70: - 772 0042 0028 cmp r0, #0 - 773 0044 10D0 beq .L70 -5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 774 .loc 1 5157 0 - 775 0046 0120 movs r0, #1 - 776 0048 0EE0 b .L70 - 777 .L71: -5142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 778 .loc 1 5142 0 - 779 004a 2368 ldr r3, [r4] - 780 004c 320A lsrs r2, r6, #8 - 781 004e 9A62 str r2, [r3, #40] -5145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 782 .loc 1 5145 0 - 783 0050 079A ldr r2, [sp, #28] - 784 0052 0699 ldr r1, [sp, #24] - 785 0054 2000 movs r0, r4 - 786 0056 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout - 787 .LVL71: - 788 005a 0028 cmp r0, #0 - 789 005c 06D1 bne .L74 -5151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 790 .loc 1 5151 0 - 791 005e 2368 ldr r3, [r4] - 792 0060 F6B2 uxtb r6, r6 - 793 0062 9E62 str r6, [r3, #40] - 794 0064 E5E7 b .L72 - 795 .L73: -5129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 796 .loc 1 5129 0 - 797 0066 0120 movs r0, #1 - 798 .L70: -5161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 799 .loc 1 5161 0 - 800 0068 02B0 add sp, sp, #8 - 801 @ sp needed - 802 .LVL72: - 803 006a 70BD pop {r4, r5, r6, pc} - 804 .LVL73: - ARM GAS /tmp/ccFk2Nxo.s page 130 - - - 805 .L74: -5147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 806 .loc 1 5147 0 - 807 006c 0120 movs r0, #1 - 808 006e FBE7 b .L70 - 809 .L76: - 810 .align 2 - 811 .L75: - 812 0070 00200080 .word -2147475456 - 813 .cfi_endproc - 814 .LFE93: - 816 .section .text.I2C_RequestMemoryRead,"ax",%progbits - 817 .align 1 - 818 .syntax unified - 819 .code 16 - 820 .thumb_func - 821 .fpu softvfp - 823 I2C_RequestMemoryRead: - 824 .LFB94: -5176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR - 825 .loc 1 5176 0 - 826 .cfi_startproc - 827 @ args = 8, pretend = 0, frame = 0 - 828 @ frame_needed = 0, uses_anonymous_args = 0 - 829 .LVL74: - 830 0000 70B5 push {r4, r5, r6, lr} - 831 .LCFI7: - 832 .cfi_def_cfa_offset 16 - 833 .cfi_offset 4, -16 - 834 .cfi_offset 5, -12 - 835 .cfi_offset 6, -8 - 836 .cfi_offset 14, -4 - 837 0002 82B0 sub sp, sp, #8 - 838 .LCFI8: - 839 .cfi_def_cfa_offset 24 - 840 0004 0400 movs r4, r0 - 841 0006 1600 movs r6, r2 - 842 0008 1D00 movs r5, r3 -5177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 843 .loc 1 5177 0 - 844 000a DAB2 uxtb r2, r3 - 845 .LVL75: - 846 000c 174B ldr r3, .L83 - 847 .LVL76: - 848 000e 0093 str r3, [sp] - 849 0010 0023 movs r3, #0 - 850 0012 FFF7FEFF bl I2C_TransferConfig - 851 .LVL77: -5180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 852 .loc 1 5180 0 - 853 0016 079A ldr r2, [sp, #28] - 854 0018 0699 ldr r1, [sp, #24] - 855 001a 2000 movs r0, r4 - 856 001c FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout - 857 .LVL78: - 858 0020 0028 cmp r0, #0 - 859 0022 1ED1 bne .L81 - ARM GAS /tmp/ccFk2Nxo.s page 131 - - -5186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 860 .loc 1 5186 0 - 861 0024 012D cmp r5, #1 - 862 0026 0ED1 bne .L79 -5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 863 .loc 1 5189 0 - 864 0028 2368 ldr r3, [r4] - 865 002a F6B2 uxtb r6, r6 - 866 002c 9E62 str r6, [r3, #40] - 867 .L80: -5208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 868 .loc 1 5208 0 - 869 002e 079B ldr r3, [sp, #28] - 870 0030 0093 str r3, [sp] - 871 0032 069B ldr r3, [sp, #24] - 872 0034 0022 movs r2, #0 - 873 0036 4021 movs r1, #64 - 874 0038 2000 movs r0, r4 - 875 003a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 876 .LVL79: - 877 003e 0028 cmp r0, #0 - 878 0040 10D0 beq .L78 -5210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 879 .loc 1 5210 0 - 880 0042 0120 movs r0, #1 - 881 0044 0EE0 b .L78 - 882 .L79: -5195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 883 .loc 1 5195 0 - 884 0046 2368 ldr r3, [r4] - 885 0048 320A lsrs r2, r6, #8 - 886 004a 9A62 str r2, [r3, #40] -5198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 887 .loc 1 5198 0 - 888 004c 079A ldr r2, [sp, #28] - 889 004e 0699 ldr r1, [sp, #24] - 890 0050 2000 movs r0, r4 - 891 0052 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout - 892 .LVL80: - 893 0056 0028 cmp r0, #0 - 894 0058 06D1 bne .L82 -5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 895 .loc 1 5204 0 - 896 005a 2368 ldr r3, [r4] - 897 005c F6B2 uxtb r6, r6 - 898 005e 9E62 str r6, [r3, #40] - 899 0060 E5E7 b .L80 - 900 .L81: -5182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 901 .loc 1 5182 0 - 902 0062 0120 movs r0, #1 - 903 .L78: -5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 904 .loc 1 5214 0 - 905 0064 02B0 add sp, sp, #8 - 906 @ sp needed - 907 .LVL81: - ARM GAS /tmp/ccFk2Nxo.s page 132 - - - 908 0066 70BD pop {r4, r5, r6, pc} - 909 .LVL82: - 910 .L82: -5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 911 .loc 1 5200 0 - 912 0068 0120 movs r0, #1 - 913 006a FBE7 b .L78 - 914 .L84: - 915 .align 2 - 916 .L83: - 917 006c 00200080 .word -2147475456 - 918 .cfi_endproc - 919 .LFE94: - 921 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits - 922 .align 1 - 923 .syntax unified - 924 .code 16 - 925 .thumb_func - 926 .fpu softvfp - 928 I2C_WaitOnSTOPFlagUntilTimeout: - 929 .LFB111: -6148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) - 930 .loc 1 6148 0 - 931 .cfi_startproc - 932 @ args = 0, pretend = 0, frame = 0 - 933 @ frame_needed = 0, uses_anonymous_args = 0 - 934 .LVL83: - 935 0000 70B5 push {r4, r5, r6, lr} - 936 .LCFI9: - 937 .cfi_def_cfa_offset 16 - 938 .cfi_offset 4, -16 - 939 .cfi_offset 5, -12 - 940 .cfi_offset 6, -8 - 941 .cfi_offset 14, -4 - 942 0002 0500 movs r5, r0 - 943 0004 0C00 movs r4, r1 - 944 0006 1600 movs r6, r2 - 945 .LVL84: - 946 .L86: -6149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 947 .loc 1 6149 0 - 948 0008 2B68 ldr r3, [r5] - 949 000a 9B69 ldr r3, [r3, #24] - 950 000c 9B06 lsls r3, r3, #26 - 951 000e 1AD4 bmi .L91 -6152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 952 .loc 1 6152 0 - 953 0010 3200 movs r2, r6 - 954 0012 2100 movs r1, r4 - 955 0014 2800 movs r0, r5 - 956 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed - 957 .LVL85: - 958 001a 0028 cmp r0, #0 - 959 001c 15D1 bne .L90 -6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 960 .loc 1 6158 0 - 961 001e FFF7FEFF bl HAL_GetTick - ARM GAS /tmp/ccFk2Nxo.s page 133 - - - 962 .LVL86: - 963 0022 801B subs r0, r0, r6 - 964 0024 A042 cmp r0, r4 - 965 0026 01D8 bhi .L88 -6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 966 .loc 1 6158 0 is_stmt 0 discriminator 1 - 967 0028 002C cmp r4, #0 - 968 002a EDD1 bne .L86 - 969 .L88: -6160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 970 .loc 1 6160 0 is_stmt 1 - 971 002c 6B6C ldr r3, [r5, #68] - 972 002e 2022 movs r2, #32 - 973 0030 1343 orrs r3, r2 - 974 0032 6B64 str r3, [r5, #68] -6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 975 .loc 1 6161 0 - 976 0034 4123 movs r3, #65 - 977 0036 EA54 strb r2, [r5, r3] -6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 978 .loc 1 6162 0 - 979 0038 0023 movs r3, #0 - 980 003a 2232 adds r2, r2, #34 - 981 003c AB54 strb r3, [r5, r2] -6165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 982 .loc 1 6165 0 - 983 003e 023A subs r2, r2, #2 - 984 0040 AB54 strb r3, [r5, r2] -6167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 985 .loc 1 6167 0 - 986 0042 0120 movs r0, #1 - 987 .L87: -6171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 988 .loc 1 6171 0 - 989 @ sp needed - 990 .LVL87: - 991 .LVL88: - 992 .LVL89: - 993 0044 70BD pop {r4, r5, r6, pc} - 994 .LVL90: - 995 .L91: -6170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 996 .loc 1 6170 0 - 997 0046 0020 movs r0, #0 - 998 0048 FCE7 b .L87 - 999 .L90: -6154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1000 .loc 1 6154 0 - 1001 004a 0120 movs r0, #1 - 1002 004c FAE7 b .L87 - 1003 .cfi_endproc - 1004 .LFE111: - 1006 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits - 1007 .align 1 - 1008 .syntax unified - 1009 .code 16 - 1010 .thumb_func - ARM GAS /tmp/ccFk2Nxo.s page 134 - - - 1011 .fpu softvfp - 1013 I2C_WaitOnRXNEFlagUntilTimeout: - 1014 .LFB112: -6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) - 1015 .loc 1 6182 0 - 1016 .cfi_startproc - 1017 @ args = 0, pretend = 0, frame = 0 - 1018 @ frame_needed = 0, uses_anonymous_args = 0 - 1019 .LVL91: - 1020 0000 70B5 push {r4, r5, r6, lr} - 1021 .LCFI10: - 1022 .cfi_def_cfa_offset 16 - 1023 .cfi_offset 4, -16 - 1024 .cfi_offset 5, -12 - 1025 .cfi_offset 6, -8 - 1026 .cfi_offset 14, -4 - 1027 0002 0400 movs r4, r0 - 1028 0004 0D00 movs r5, r1 - 1029 0006 1600 movs r6, r2 - 1030 .LVL92: - 1031 .L93: -6183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1032 .loc 1 6183 0 - 1033 0008 2368 ldr r3, [r4] - 1034 000a 9B69 ldr r3, [r3, #24] - 1035 000c 5B07 lsls r3, r3, #29 - 1036 000e 33D4 bmi .L100 -6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1037 .loc 1 6186 0 - 1038 0010 3200 movs r2, r6 - 1039 0012 2900 movs r1, r5 - 1040 0014 2000 movs r0, r4 - 1041 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed - 1042 .LVL93: - 1043 001a 0028 cmp r0, #0 - 1044 001c 2ED1 bne .L99 -6192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1045 .loc 1 6192 0 - 1046 001e 2368 ldr r3, [r4] - 1047 0020 9A69 ldr r2, [r3, #24] - 1048 0022 9206 lsls r2, r2, #26 - 1049 0024 11D4 bmi .L101 -6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1050 .loc 1 6222 0 - 1051 0026 FFF7FEFF bl HAL_GetTick - 1052 .LVL94: - 1053 002a 801B subs r0, r0, r6 - 1054 002c A842 cmp r0, r5 - 1055 002e 01D8 bhi .L97 -6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1056 .loc 1 6222 0 is_stmt 0 discriminator 1 - 1057 0030 002D cmp r5, #0 - 1058 0032 E9D1 bne .L93 - 1059 .L97: -6224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 1060 .loc 1 6224 0 is_stmt 1 - 1061 0034 636C ldr r3, [r4, #68] - ARM GAS /tmp/ccFk2Nxo.s page 135 - - - 1062 0036 2022 movs r2, #32 - 1063 0038 1343 orrs r3, r2 - 1064 003a 6364 str r3, [r4, #68] -6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1065 .loc 1 6225 0 - 1066 003c 4123 movs r3, #65 - 1067 003e E254 strb r2, [r4, r3] -6228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1068 .loc 1 6228 0 - 1069 0040 013B subs r3, r3, #1 - 1070 0042 0022 movs r2, #0 - 1071 0044 E254 strb r2, [r4, r3] -6230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1072 .loc 1 6230 0 - 1073 0046 0120 movs r0, #1 - 1074 .L94: -6234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1075 .loc 1 6234 0 - 1076 @ sp needed - 1077 .LVL95: - 1078 .LVL96: - 1079 .LVL97: - 1080 0048 70BD pop {r4, r5, r6, pc} - 1081 .LVL98: - 1082 .L101: -6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1083 .loc 1 6196 0 - 1084 004a 9A69 ldr r2, [r3, #24] - 1085 004c 5207 lsls r2, r2, #29 - 1086 004e 02D5 bpl .L96 -6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1087 .loc 1 6196 0 is_stmt 0 discriminator 1 - 1088 0050 228D ldrh r2, [r4, #40] - 1089 0052 002A cmp r2, #0 - 1090 0054 F8D1 bne .L94 - 1091 .L96: -6205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1092 .loc 1 6205 0 is_stmt 1 - 1093 0056 2022 movs r2, #32 - 1094 0058 DA61 str r2, [r3, #28] -6208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1095 .loc 1 6208 0 - 1096 005a 2168 ldr r1, [r4] - 1097 005c 4B68 ldr r3, [r1, #4] - 1098 005e 0848 ldr r0, .L102 - 1099 0060 0340 ands r3, r0 - 1100 0062 4B60 str r3, [r1, #4] -6210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 1101 .loc 1 6210 0 - 1102 0064 0023 movs r3, #0 - 1103 0066 6364 str r3, [r4, #68] -6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 1104 .loc 1 6211 0 - 1105 0068 4121 movs r1, #65 - 1106 006a 6254 strb r2, [r4, r1] -6212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1107 .loc 1 6212 0 - ARM GAS /tmp/ccFk2Nxo.s page 136 - - - 1108 006c 2232 adds r2, r2, #34 - 1109 006e A354 strb r3, [r4, r2] -6215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1110 .loc 1 6215 0 - 1111 0070 023A subs r2, r2, #2 - 1112 0072 A354 strb r3, [r4, r2] -6217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1113 .loc 1 6217 0 - 1114 0074 0120 movs r0, #1 - 1115 0076 E7E7 b .L94 - 1116 .L100: -6233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1117 .loc 1 6233 0 - 1118 0078 0020 movs r0, #0 - 1119 007a E5E7 b .L94 - 1120 .L99: -6188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1121 .loc 1 6188 0 - 1122 007c 0120 movs r0, #1 - 1123 007e E3E7 b .L94 - 1124 .L103: - 1125 .align 2 - 1126 .L102: - 1127 0080 00E800FE .word -33495040 - 1128 .cfi_endproc - 1129 .LFE112: - 1131 .section .text.HAL_I2C_MspInit,"ax",%progbits - 1132 .align 1 - 1133 .weak HAL_I2C_MspInit - 1134 .syntax unified - 1135 .code 16 - 1136 .thumb_func - 1137 .fpu softvfp - 1139 HAL_I2C_MspInit: - 1140 .LFB42: - 625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 1141 .loc 1 625 0 - 1142 .cfi_startproc - 1143 @ args = 0, pretend = 0, frame = 0 - 1144 @ frame_needed = 0, uses_anonymous_args = 0 - 1145 @ link register save eliminated. - 1146 .LVL99: - 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1147 .loc 1 632 0 - 1148 @ sp needed - 1149 0000 7047 bx lr - 1150 .cfi_endproc - 1151 .LFE42: - 1153 .section .text.HAL_I2C_Init,"ax",%progbits - 1154 .align 1 - 1155 .global HAL_I2C_Init - 1156 .syntax unified - 1157 .code 16 - 1158 .thumb_func - 1159 .fpu softvfp - 1161 HAL_I2C_Init: - 1162 .LFB40: - ARM GAS /tmp/ccFk2Nxo.s page 137 - - - 470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ - 1163 .loc 1 470 0 - 1164 .cfi_startproc - 1165 @ args = 0, pretend = 0, frame = 0 - 1166 @ frame_needed = 0, uses_anonymous_args = 0 - 1167 .LVL100: - 1168 0000 10B5 push {r4, lr} - 1169 .LCFI11: - 1170 .cfi_def_cfa_offset 8 - 1171 .cfi_offset 4, -8 - 1172 .cfi_offset 14, -4 - 1173 0002 041E subs r4, r0, #0 - 472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1174 .loc 1 472 0 - 1175 0004 59D0 beq .L111 - 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1176 .loc 1 487 0 - 1177 0006 4123 movs r3, #65 - 1178 0008 C35C ldrb r3, [r0, r3] - 1179 000a 002B cmp r3, #0 - 1180 000c 43D0 beq .L112 - 1181 .LVL101: - 1182 .L107: - 518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1183 .loc 1 518 0 - 1184 000e 4123 movs r3, #65 - 1185 0010 2422 movs r2, #36 - 1186 0012 E254 strb r2, [r4, r3] - 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1187 .loc 1 521 0 - 1188 0014 2268 ldr r2, [r4] - 1189 0016 1368 ldr r3, [r2] - 1190 0018 0121 movs r1, #1 - 1191 001a 8B43 bics r3, r1 - 1192 001c 1360 str r3, [r2] - 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1193 .loc 1 525 0 - 1194 001e 2268 ldr r2, [r4] - 1195 0020 274B ldr r3, .L115 - 1196 0022 6168 ldr r1, [r4, #4] - 1197 0024 0B40 ands r3, r1 - 1198 0026 1361 str r3, [r2, #16] - 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1199 .loc 1 529 0 - 1200 0028 2268 ldr r2, [r4] - 1201 002a 9368 ldr r3, [r2, #8] - 1202 002c 2549 ldr r1, .L115+4 - 1203 002e 0B40 ands r3, r1 - 1204 0030 9360 str r3, [r2, #8] - 532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1205 .loc 1 532 0 - 1206 0032 E368 ldr r3, [r4, #12] - 1207 0034 012B cmp r3, #1 - 1208 0036 34D0 beq .L113 - 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1209 .loc 1 538 0 - 1210 0038 2268 ldr r2, [r4] - ARM GAS /tmp/ccFk2Nxo.s page 138 - - - 1211 003a 8423 movs r3, #132 - 1212 003c 1B02 lsls r3, r3, #8 - 1213 003e A168 ldr r1, [r4, #8] - 1214 0040 0B43 orrs r3, r1 - 1215 0042 9360 str r3, [r2, #8] - 1216 .L109: - 543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1217 .loc 1 543 0 - 1218 0044 E368 ldr r3, [r4, #12] - 1219 0046 022B cmp r3, #2 - 1220 0048 32D0 beq .L114 - 1221 .L110: - 548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1222 .loc 1 548 0 - 1223 004a 2268 ldr r2, [r4] - 1224 004c 5168 ldr r1, [r2, #4] - 1225 004e 1E4B ldr r3, .L115+8 - 1226 0050 0B43 orrs r3, r1 - 1227 0052 5360 str r3, [r2, #4] - 552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1228 .loc 1 552 0 - 1229 0054 2268 ldr r2, [r4] - 1230 0056 D368 ldr r3, [r2, #12] - 1231 0058 1A49 ldr r1, .L115+4 - 1232 005a 0B40 ands r3, r1 - 1233 005c D360 str r3, [r2, #12] - 555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1234 .loc 1 555 0 - 1235 005e 2369 ldr r3, [r4, #16] - 1236 0060 6269 ldr r2, [r4, #20] - 1237 0062 1343 orrs r3, r2 - 1238 0064 A269 ldr r2, [r4, #24] - 1239 0066 1202 lsls r2, r2, #8 - 1240 0068 2168 ldr r1, [r4] - 1241 006a 1343 orrs r3, r2 - 1242 006c CB60 str r3, [r1, #12] - 559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1243 .loc 1 559 0 - 1244 006e 2268 ldr r2, [r4] - 1245 0070 E369 ldr r3, [r4, #28] - 1246 0072 216A ldr r1, [r4, #32] - 1247 0074 0B43 orrs r3, r1 - 1248 0076 1360 str r3, [r2] - 562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1249 .loc 1 562 0 - 1250 0078 2268 ldr r2, [r4] - 1251 007a 1368 ldr r3, [r2] - 1252 007c 0121 movs r1, #1 - 1253 007e 0B43 orrs r3, r1 - 1254 0080 1360 str r3, [r2] - 564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 1255 .loc 1 564 0 - 1256 0082 0023 movs r3, #0 - 1257 0084 6364 str r3, [r4, #68] - 565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; - 1258 .loc 1 565 0 - 1259 0086 4122 movs r2, #65 - ARM GAS /tmp/ccFk2Nxo.s page 139 - - - 1260 0088 1F31 adds r1, r1, #31 - 1261 008a A154 strb r1, [r4, r2] - 566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 1262 .loc 1 566 0 - 1263 008c 2363 str r3, [r4, #48] - 567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1264 .loc 1 567 0 - 1265 008e 0132 adds r2, r2, #1 - 1266 0090 A354 strb r3, [r4, r2] - 569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1267 .loc 1 569 0 - 1268 0092 0020 movs r0, #0 - 1269 .L106: - 570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1270 .loc 1 570 0 - 1271 @ sp needed - 1272 .LVL102: - 1273 0094 10BD pop {r4, pc} - 1274 .LVL103: - 1275 .L112: - 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1276 .loc 1 490 0 - 1277 0096 4033 adds r3, r3, #64 - 1278 0098 0022 movs r2, #0 - 1279 009a C254 strb r2, [r0, r3] - 514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 1280 .loc 1 514 0 - 1281 009c FFF7FEFF bl HAL_I2C_MspInit - 1282 .LVL104: - 1283 00a0 B5E7 b .L107 - 1284 .L113: - 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1285 .loc 1 534 0 - 1286 00a2 2268 ldr r2, [r4] - 1287 00a4 8023 movs r3, #128 - 1288 00a6 1B02 lsls r3, r3, #8 - 1289 00a8 A168 ldr r1, [r4, #8] - 1290 00aa 0B43 orrs r3, r1 - 1291 00ac 9360 str r3, [r2, #8] - 1292 00ae C9E7 b .L109 - 1293 .L114: - 545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1294 .loc 1 545 0 - 1295 00b0 2368 ldr r3, [r4] - 1296 00b2 8022 movs r2, #128 - 1297 00b4 1201 lsls r2, r2, #4 - 1298 00b6 5A60 str r2, [r3, #4] - 1299 00b8 C7E7 b .L110 - 1300 .LVL105: - 1301 .L111: - 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1302 .loc 1 474 0 - 1303 00ba 0120 movs r0, #1 - 1304 .LVL106: - 1305 00bc EAE7 b .L106 - 1306 .L116: - 1307 00be C046 .align 2 - ARM GAS /tmp/ccFk2Nxo.s page 140 - - - 1308 .L115: - 1309 00c0 FFFFFFF0 .word -251658241 - 1310 00c4 FF7FFFFF .word -32769 - 1311 00c8 00800002 .word 33587200 - 1312 .cfi_endproc - 1313 .LFE40: - 1315 .section .text.HAL_I2C_MspDeInit,"ax",%progbits - 1316 .align 1 - 1317 .weak HAL_I2C_MspDeInit - 1318 .syntax unified - 1319 .code 16 - 1320 .thumb_func - 1321 .fpu softvfp - 1323 HAL_I2C_MspDeInit: - 1324 .LFB43: - 641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 1325 .loc 1 641 0 - 1326 .cfi_startproc - 1327 @ args = 0, pretend = 0, frame = 0 - 1328 @ frame_needed = 0, uses_anonymous_args = 0 - 1329 @ link register save eliminated. - 1330 .LVL107: - 648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1331 .loc 1 648 0 - 1332 @ sp needed - 1333 0000 7047 bx lr - 1334 .cfi_endproc - 1335 .LFE43: - 1337 .section .text.HAL_I2C_DeInit,"ax",%progbits - 1338 .align 1 - 1339 .global HAL_I2C_DeInit - 1340 .syntax unified - 1341 .code 16 - 1342 .thumb_func - 1343 .fpu softvfp - 1345 HAL_I2C_DeInit: - 1346 .LFB41: - 579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ - 1347 .loc 1 579 0 - 1348 .cfi_startproc - 1349 @ args = 0, pretend = 0, frame = 0 - 1350 @ frame_needed = 0, uses_anonymous_args = 0 - 1351 .LVL108: - 1352 0000 70B5 push {r4, r5, r6, lr} - 1353 .LCFI12: - 1354 .cfi_def_cfa_offset 16 - 1355 .cfi_offset 4, -16 - 1356 .cfi_offset 5, -12 - 1357 .cfi_offset 6, -8 - 1358 .cfi_offset 14, -4 - 1359 0002 041E subs r4, r0, #0 - 581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1360 .loc 1 581 0 - 1361 0004 13D0 beq .L120 - 589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1362 .loc 1 589 0 - 1363 0006 4125 movs r5, #65 - ARM GAS /tmp/ccFk2Nxo.s page 141 - - - 1364 0008 2423 movs r3, #36 - 1365 000a 4355 strb r3, [r0, r5] - 592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1366 .loc 1 592 0 - 1367 000c 0268 ldr r2, [r0] - 1368 000e 1368 ldr r3, [r2] - 1369 0010 0121 movs r1, #1 - 1370 0012 8B43 bics r3, r1 - 1371 0014 1360 str r3, [r2] - 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 1372 .loc 1 604 0 - 1373 0016 FFF7FEFF bl HAL_I2C_MspDeInit - 1374 .LVL109: - 607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; - 1375 .loc 1 607 0 - 1376 001a 0023 movs r3, #0 - 1377 001c 6364 str r3, [r4, #68] - 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; - 1378 .loc 1 608 0 - 1379 001e 6355 strb r3, [r4, r5] - 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 1380 .loc 1 609 0 - 1381 0020 2363 str r3, [r4, #48] - 610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1382 .loc 1 610 0 - 1383 0022 4222 movs r2, #66 - 1384 0024 A354 strb r3, [r4, r2] - 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1385 .loc 1 613 0 - 1386 0026 023A subs r2, r2, #2 - 1387 0028 A354 strb r3, [r4, r2] - 615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1388 .loc 1 615 0 - 1389 002a 0020 movs r0, #0 - 1390 .L119: - 616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1391 .loc 1 616 0 - 1392 @ sp needed - 1393 .LVL110: - 1394 002c 70BD pop {r4, r5, r6, pc} - 1395 .LVL111: - 1396 .L120: - 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1397 .loc 1 583 0 - 1398 002e 0120 movs r0, #1 - 1399 .LVL112: - 1400 0030 FCE7 b .L119 - 1401 .cfi_endproc - 1402 .LFE41: - 1404 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits - 1405 .align 1 - 1406 .global HAL_I2C_Master_Transmit - 1407 .syntax unified - 1408 .code 16 - 1409 .thumb_func - 1410 .fpu softvfp - 1412 HAL_I2C_Master_Transmit: - ARM GAS /tmp/ccFk2Nxo.s page 142 - - - 1413 .LFB44: -1061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 1414 .loc 1 1061 0 - 1415 .cfi_startproc - 1416 @ args = 4, pretend = 0, frame = 8 - 1417 @ frame_needed = 0, uses_anonymous_args = 0 - 1418 .LVL113: - 1419 0000 F0B5 push {r4, r5, r6, r7, lr} - 1420 .LCFI13: - 1421 .cfi_def_cfa_offset 20 - 1422 .cfi_offset 4, -20 - 1423 .cfi_offset 5, -16 - 1424 .cfi_offset 6, -12 - 1425 .cfi_offset 7, -8 - 1426 .cfi_offset 14, -4 - 1427 0002 85B0 sub sp, sp, #20 - 1428 .LCFI14: - 1429 .cfi_def_cfa_offset 40 - 1430 0004 0500 movs r5, r0 - 1431 0006 0391 str r1, [sp, #12] - 1432 0008 1700 movs r7, r2 - 1433 000a 1E00 movs r6, r3 -1064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1434 .loc 1 1064 0 - 1435 000c 4123 movs r3, #65 - 1436 .LVL114: - 1437 000e C35C ldrb r3, [r0, r3] - 1438 0010 202B cmp r3, #32 - 1439 0012 00D0 beq .LCB1427 - 1440 0014 99E0 b .L129 @long jump - 1441 .LCB1427: -1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1442 .loc 1 1067 0 - 1443 0016 2033 adds r3, r3, #32 - 1444 0018 C35C ldrb r3, [r0, r3] - 1445 001a 012B cmp r3, #1 - 1446 001c 00D1 bne .LCB1431 - 1447 001e 97E0 b .L130 @long jump - 1448 .LCB1431: -1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1449 .loc 1 1067 0 is_stmt 0 discriminator 2 - 1450 0020 4023 movs r3, #64 - 1451 0022 0122 movs r2, #1 - 1452 .LVL115: - 1453 0024 C254 strb r2, [r0, r3] -1070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1454 .loc 1 1070 0 is_stmt 1 discriminator 2 - 1455 0026 FFF7FEFF bl HAL_GetTick - 1456 .LVL116: - 1457 002a 0400 movs r4, r0 - 1458 .LVL117: -1072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1459 .loc 1 1072 0 discriminator 2 - 1460 002c 8021 movs r1, #128 - 1461 002e 0090 str r0, [sp] - 1462 0030 1923 movs r3, #25 - 1463 0032 0122 movs r2, #1 - ARM GAS /tmp/ccFk2Nxo.s page 143 - - - 1464 0034 0902 lsls r1, r1, #8 - 1465 0036 2800 movs r0, r5 - 1466 .LVL118: - 1467 0038 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 1468 .LVL119: - 1469 003c 0028 cmp r0, #0 - 1470 003e 00D0 beq .LCB1452 - 1471 0040 88E0 b .L131 @long jump - 1472 .LCB1452: -1077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 1473 .loc 1 1077 0 - 1474 0042 4123 movs r3, #65 - 1475 0044 2122 movs r2, #33 - 1476 0046 EA54 strb r2, [r5, r3] -1078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 1477 .loc 1 1078 0 - 1478 0048 0133 adds r3, r3, #1 - 1479 004a 113A subs r2, r2, #17 - 1480 004c EA54 strb r2, [r5, r3] -1079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1481 .loc 1 1079 0 - 1482 004e 0023 movs r3, #0 - 1483 0050 6B64 str r3, [r5, #68] -1082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 1484 .loc 1 1082 0 - 1485 0052 6F62 str r7, [r5, #36] -1083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 1486 .loc 1 1083 0 - 1487 0054 6E85 strh r6, [r5, #42] -1084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1488 .loc 1 1084 0 - 1489 0056 6B63 str r3, [r5, #52] -1088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1490 .loc 1 1088 0 - 1491 0058 6B8D ldrh r3, [r5, #42] - 1492 005a 9BB2 uxth r3, r3 - 1493 005c FF2B cmp r3, #255 - 1494 005e 0BD9 bls .L123 -1090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S - 1495 .loc 1 1090 0 - 1496 0060 FF23 movs r3, #255 - 1497 0062 2B85 strh r3, [r5, #40] -1091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1498 .loc 1 1091 0 - 1499 0064 7F3B subs r3, r3, #127 - 1500 0066 3F4A ldr r2, .L136 - 1501 0068 0092 str r2, [sp] - 1502 006a 5B04 lsls r3, r3, #17 - 1503 006c FF22 movs r2, #255 - 1504 006e 0399 ldr r1, [sp, #12] - 1505 0070 2800 movs r0, r5 - 1506 0072 FFF7FEFF bl I2C_TransferConfig - 1507 .LVL120: - 1508 0076 18E0 b .L125 - 1509 .L123: -1095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ - 1510 .loc 1 1095 0 - ARM GAS /tmp/ccFk2Nxo.s page 144 - - - 1511 0078 6A8D ldrh r2, [r5, #42] - 1512 007a 92B2 uxth r2, r2 - 1513 007c 2A85 strh r2, [r5, #40] -1096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1514 .loc 1 1096 0 - 1515 007e 8023 movs r3, #128 - 1516 0080 D2B2 uxtb r2, r2 - 1517 0082 3849 ldr r1, .L136 - 1518 0084 0091 str r1, [sp] - 1519 0086 9B04 lsls r3, r3, #18 - 1520 0088 0399 ldr r1, [sp, #12] - 1521 008a 2800 movs r0, r5 - 1522 008c FFF7FEFF bl I2C_TransferConfig - 1523 .LVL121: - 1524 0090 0BE0 b .L125 - 1525 .L127: -1130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST - 1526 .loc 1 1130 0 - 1527 0092 6A8D ldrh r2, [r5, #42] - 1528 0094 92B2 uxth r2, r2 - 1529 0096 2A85 strh r2, [r5, #40] -1131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1530 .loc 1 1131 0 - 1531 0098 8023 movs r3, #128 - 1532 009a D2B2 uxtb r2, r2 - 1533 009c 0021 movs r1, #0 - 1534 009e 0091 str r1, [sp] - 1535 00a0 9B04 lsls r3, r3, #18 - 1536 00a2 0399 ldr r1, [sp, #12] - 1537 00a4 2800 movs r0, r5 - 1538 00a6 FFF7FEFF bl I2C_TransferConfig - 1539 .LVL122: - 1540 .L125: -1099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1541 .loc 1 1099 0 - 1542 00aa 6B8D ldrh r3, [r5, #42] - 1543 00ac 9BB2 uxth r3, r3 - 1544 00ae 002B cmp r3, #0 - 1545 00b0 34D0 beq .L135 -1102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1546 .loc 1 1102 0 - 1547 00b2 2200 movs r2, r4 - 1548 00b4 0A99 ldr r1, [sp, #40] - 1549 00b6 2800 movs r0, r5 - 1550 00b8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout - 1551 .LVL123: - 1552 00bc 0028 cmp r0, #0 - 1553 00be 4BD1 bne .L132 -1107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1554 .loc 1 1107 0 - 1555 00c0 2B68 ldr r3, [r5] - 1556 00c2 6A6A ldr r2, [r5, #36] - 1557 00c4 1278 ldrb r2, [r2] - 1558 00c6 9A62 str r2, [r3, #40] -1110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1559 .loc 1 1110 0 - 1560 00c8 6B6A ldr r3, [r5, #36] - ARM GAS /tmp/ccFk2Nxo.s page 145 - - - 1561 00ca 0133 adds r3, r3, #1 - 1562 00cc 6B62 str r3, [r5, #36] -1112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; - 1563 .loc 1 1112 0 - 1564 00ce 6B8D ldrh r3, [r5, #42] - 1565 00d0 013B subs r3, r3, #1 - 1566 00d2 9BB2 uxth r3, r3 - 1567 00d4 6B85 strh r3, [r5, #42] -1113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1568 .loc 1 1113 0 - 1569 00d6 2B8D ldrh r3, [r5, #40] - 1570 00d8 013B subs r3, r3, #1 - 1571 00da 9BB2 uxth r3, r3 - 1572 00dc 2B85 strh r3, [r5, #40] -1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1573 .loc 1 1115 0 - 1574 00de 6A8D ldrh r2, [r5, #42] - 1575 00e0 92B2 uxth r2, r2 - 1576 00e2 002A cmp r2, #0 - 1577 00e4 E1D0 beq .L125 -1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1578 .loc 1 1115 0 is_stmt 0 discriminator 1 - 1579 00e6 002B cmp r3, #0 - 1580 00e8 DFD1 bne .L125 -1118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1581 .loc 1 1118 0 is_stmt 1 - 1582 00ea 0094 str r4, [sp] - 1583 00ec 0A9B ldr r3, [sp, #40] - 1584 00ee 0022 movs r2, #0 - 1585 00f0 8021 movs r1, #128 - 1586 00f2 2800 movs r0, r5 - 1587 00f4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 1588 .LVL124: - 1589 00f8 0028 cmp r0, #0 - 1590 00fa 2FD1 bne .L133 -1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1591 .loc 1 1123 0 - 1592 00fc 6B8D ldrh r3, [r5, #42] - 1593 00fe 9BB2 uxth r3, r3 - 1594 0100 FF2B cmp r3, #255 - 1595 0102 C6D9 bls .L127 -1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA - 1596 .loc 1 1125 0 - 1597 0104 FF23 movs r3, #255 - 1598 0106 2B85 strh r3, [r5, #40] -1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1599 .loc 1 1126 0 - 1600 0108 7F3B subs r3, r3, #127 - 1601 010a 0022 movs r2, #0 - 1602 010c 0092 str r2, [sp] - 1603 010e 5B04 lsls r3, r3, #17 - 1604 0110 FF32 adds r2, r2, #255 - 1605 0112 0399 ldr r1, [sp, #12] - 1606 0114 2800 movs r0, r5 - 1607 0116 FFF7FEFF bl I2C_TransferConfig - 1608 .LVL125: - 1609 011a C6E7 b .L125 - ARM GAS /tmp/ccFk2Nxo.s page 146 - - - 1610 .L135: -1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1611 .loc 1 1138 0 - 1612 011c 2200 movs r2, r4 - 1613 011e 0A99 ldr r1, [sp, #40] - 1614 0120 2800 movs r0, r5 - 1615 0122 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout - 1616 .LVL126: - 1617 0126 0028 cmp r0, #0 - 1618 0128 1AD1 bne .L134 -1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1619 .loc 1 1144 0 - 1620 012a 2B68 ldr r3, [r5] - 1621 012c 2022 movs r2, #32 - 1622 012e DA61 str r2, [r3, #28] -1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1623 .loc 1 1147 0 - 1624 0130 2968 ldr r1, [r5] - 1625 0132 4B68 ldr r3, [r1, #4] - 1626 0134 0C4C ldr r4, .L136+4 - 1627 .LVL127: - 1628 0136 2340 ands r3, r4 - 1629 0138 4B60 str r3, [r1, #4] -1149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 1630 .loc 1 1149 0 - 1631 013a 4123 movs r3, #65 - 1632 013c EA54 strb r2, [r5, r3] -1150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1633 .loc 1 1150 0 - 1634 013e 0023 movs r3, #0 - 1635 0140 2232 adds r2, r2, #34 - 1636 0142 AB54 strb r3, [r5, r2] -1153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1637 .loc 1 1153 0 - 1638 0144 023A subs r2, r2, #2 - 1639 0146 AB54 strb r3, [r5, r2] -1155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1640 .loc 1 1155 0 - 1641 0148 00E0 b .L122 - 1642 .LVL128: - 1643 .L129: -1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1644 .loc 1 1159 0 - 1645 014a 0220 movs r0, #2 - 1646 .LVL129: - 1647 .L122: -1161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1648 .loc 1 1161 0 - 1649 014c 05B0 add sp, sp, #20 - 1650 @ sp needed - 1651 .LVL130: - 1652 .LVL131: - 1653 014e F0BD pop {r4, r5, r6, r7, pc} - 1654 .LVL132: - 1655 .L130: -1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1656 .loc 1 1067 0 - ARM GAS /tmp/ccFk2Nxo.s page 147 - - - 1657 0150 0220 movs r0, #2 - 1658 .LVL133: - 1659 0152 FBE7 b .L122 - 1660 .LVL134: - 1661 .L131: -1074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1662 .loc 1 1074 0 - 1663 0154 0120 movs r0, #1 - 1664 0156 F9E7 b .L122 - 1665 .L132: -1104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1666 .loc 1 1104 0 - 1667 0158 0120 movs r0, #1 - 1668 015a F7E7 b .L122 - 1669 .L133: -1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1670 .loc 1 1120 0 - 1671 015c 0120 movs r0, #1 - 1672 015e F5E7 b .L122 - 1673 .L134: -1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1674 .loc 1 1140 0 - 1675 0160 0120 movs r0, #1 - 1676 0162 F3E7 b .L122 - 1677 .L137: - 1678 .align 2 - 1679 .L136: - 1680 0164 00200080 .word -2147475456 - 1681 0168 00E800FE .word -33495040 - 1682 .cfi_endproc - 1683 .LFE44: - 1685 .section .text.HAL_I2C_Master_Receive,"ax",%progbits - 1686 .align 1 - 1687 .global HAL_I2C_Master_Receive - 1688 .syntax unified - 1689 .code 16 - 1690 .thumb_func - 1691 .fpu softvfp - 1693 HAL_I2C_Master_Receive: - 1694 .LFB45: -1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 1695 .loc 1 1175 0 - 1696 .cfi_startproc - 1697 @ args = 4, pretend = 0, frame = 8 - 1698 @ frame_needed = 0, uses_anonymous_args = 0 - 1699 .LVL135: - 1700 0000 F0B5 push {r4, r5, r6, r7, lr} - 1701 .LCFI15: - 1702 .cfi_def_cfa_offset 20 - 1703 .cfi_offset 4, -20 - 1704 .cfi_offset 5, -16 - 1705 .cfi_offset 6, -12 - 1706 .cfi_offset 7, -8 - 1707 .cfi_offset 14, -4 - 1708 0002 85B0 sub sp, sp, #20 - 1709 .LCFI16: - 1710 .cfi_def_cfa_offset 40 - ARM GAS /tmp/ccFk2Nxo.s page 148 - - - 1711 0004 0500 movs r5, r0 - 1712 0006 0391 str r1, [sp, #12] - 1713 0008 1700 movs r7, r2 - 1714 000a 1E00 movs r6, r3 -1178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1715 .loc 1 1178 0 - 1716 000c 4123 movs r3, #65 - 1717 .LVL136: - 1718 000e C35C ldrb r3, [r0, r3] - 1719 0010 202B cmp r3, #32 - 1720 0012 00D0 beq .LCB1712 - 1721 0014 99E0 b .L146 @long jump - 1722 .LCB1712: -1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1723 .loc 1 1181 0 - 1724 0016 2033 adds r3, r3, #32 - 1725 0018 C35C ldrb r3, [r0, r3] - 1726 001a 012B cmp r3, #1 - 1727 001c 00D1 bne .LCB1716 - 1728 001e 97E0 b .L147 @long jump - 1729 .LCB1716: -1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1730 .loc 1 1181 0 is_stmt 0 discriminator 2 - 1731 0020 4023 movs r3, #64 - 1732 0022 0122 movs r2, #1 - 1733 .LVL137: - 1734 0024 C254 strb r2, [r0, r3] -1184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1735 .loc 1 1184 0 is_stmt 1 discriminator 2 - 1736 0026 FFF7FEFF bl HAL_GetTick - 1737 .LVL138: - 1738 002a 0400 movs r4, r0 - 1739 .LVL139: -1186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1740 .loc 1 1186 0 discriminator 2 - 1741 002c 8021 movs r1, #128 - 1742 002e 0090 str r0, [sp] - 1743 0030 1923 movs r3, #25 - 1744 0032 0122 movs r2, #1 - 1745 0034 0902 lsls r1, r1, #8 - 1746 0036 2800 movs r0, r5 - 1747 .LVL140: - 1748 0038 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 1749 .LVL141: - 1750 003c 0028 cmp r0, #0 - 1751 003e 00D0 beq .LCB1737 - 1752 0040 88E0 b .L148 @long jump - 1753 .LCB1737: -1191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 1754 .loc 1 1191 0 - 1755 0042 4123 movs r3, #65 - 1756 0044 2222 movs r2, #34 - 1757 0046 EA54 strb r2, [r5, r3] -1192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 1758 .loc 1 1192 0 - 1759 0048 0133 adds r3, r3, #1 - 1760 004a 123A subs r2, r2, #18 - ARM GAS /tmp/ccFk2Nxo.s page 149 - - - 1761 004c EA54 strb r2, [r5, r3] -1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1762 .loc 1 1193 0 - 1763 004e 0023 movs r3, #0 - 1764 0050 6B64 str r3, [r5, #68] -1196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 1765 .loc 1 1196 0 - 1766 0052 6F62 str r7, [r5, #36] -1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 1767 .loc 1 1197 0 - 1768 0054 6E85 strh r6, [r5, #42] -1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1769 .loc 1 1198 0 - 1770 0056 6B63 str r3, [r5, #52] -1202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1771 .loc 1 1202 0 - 1772 0058 6B8D ldrh r3, [r5, #42] - 1773 005a 9BB2 uxth r3, r3 - 1774 005c FF2B cmp r3, #255 - 1775 005e 0BD9 bls .L140 -1204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S - 1776 .loc 1 1204 0 - 1777 0060 FF23 movs r3, #255 - 1778 0062 2B85 strh r3, [r5, #40] -1205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1779 .loc 1 1205 0 - 1780 0064 7F3B subs r3, r3, #127 - 1781 0066 3F4A ldr r2, .L153 - 1782 0068 0092 str r2, [sp] - 1783 006a 5B04 lsls r3, r3, #17 - 1784 006c FF22 movs r2, #255 - 1785 006e 0399 ldr r1, [sp, #12] - 1786 0070 2800 movs r0, r5 - 1787 0072 FFF7FEFF bl I2C_TransferConfig - 1788 .LVL142: - 1789 0076 18E0 b .L142 - 1790 .L140: -1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ - 1791 .loc 1 1209 0 - 1792 0078 6A8D ldrh r2, [r5, #42] - 1793 007a 92B2 uxth r2, r2 - 1794 007c 2A85 strh r2, [r5, #40] -1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1795 .loc 1 1210 0 - 1796 007e 8023 movs r3, #128 - 1797 0080 D2B2 uxtb r2, r2 - 1798 0082 3849 ldr r1, .L153 - 1799 0084 0091 str r1, [sp] - 1800 0086 9B04 lsls r3, r3, #18 - 1801 0088 0399 ldr r1, [sp, #12] - 1802 008a 2800 movs r0, r5 - 1803 008c FFF7FEFF bl I2C_TransferConfig - 1804 .LVL143: - 1805 0090 0BE0 b .L142 - 1806 .L144: -1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST - 1807 .loc 1 1245 0 - ARM GAS /tmp/ccFk2Nxo.s page 150 - - - 1808 0092 6A8D ldrh r2, [r5, #42] - 1809 0094 92B2 uxth r2, r2 - 1810 0096 2A85 strh r2, [r5, #40] -1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1811 .loc 1 1246 0 - 1812 0098 8023 movs r3, #128 - 1813 009a D2B2 uxtb r2, r2 - 1814 009c 0021 movs r1, #0 - 1815 009e 0091 str r1, [sp] - 1816 00a0 9B04 lsls r3, r3, #18 - 1817 00a2 0399 ldr r1, [sp, #12] - 1818 00a4 2800 movs r0, r5 - 1819 00a6 FFF7FEFF bl I2C_TransferConfig - 1820 .LVL144: - 1821 .L142: -1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1822 .loc 1 1213 0 - 1823 00aa 6B8D ldrh r3, [r5, #42] - 1824 00ac 9BB2 uxth r3, r3 - 1825 00ae 002B cmp r3, #0 - 1826 00b0 34D0 beq .L152 -1216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1827 .loc 1 1216 0 - 1828 00b2 2200 movs r2, r4 - 1829 00b4 0A99 ldr r1, [sp, #40] - 1830 00b6 2800 movs r0, r5 - 1831 00b8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout - 1832 .LVL145: - 1833 00bc 0028 cmp r0, #0 - 1834 00be 4BD1 bne .L149 -1222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1835 .loc 1 1222 0 - 1836 00c0 2B68 ldr r3, [r5] - 1837 00c2 5B6A ldr r3, [r3, #36] - 1838 00c4 6A6A ldr r2, [r5, #36] - 1839 00c6 1370 strb r3, [r2] -1225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1840 .loc 1 1225 0 - 1841 00c8 6B6A ldr r3, [r5, #36] - 1842 00ca 0133 adds r3, r3, #1 - 1843 00cc 6B62 str r3, [r5, #36] -1227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; - 1844 .loc 1 1227 0 - 1845 00ce 2B8D ldrh r3, [r5, #40] - 1846 00d0 013B subs r3, r3, #1 - 1847 00d2 9BB2 uxth r3, r3 - 1848 00d4 2B85 strh r3, [r5, #40] -1228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1849 .loc 1 1228 0 - 1850 00d6 6A8D ldrh r2, [r5, #42] - 1851 00d8 013A subs r2, r2, #1 - 1852 00da 92B2 uxth r2, r2 - 1853 00dc 6A85 strh r2, [r5, #42] -1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1854 .loc 1 1230 0 - 1855 00de 6A8D ldrh r2, [r5, #42] - 1856 00e0 92B2 uxth r2, r2 - ARM GAS /tmp/ccFk2Nxo.s page 151 - - - 1857 00e2 002A cmp r2, #0 - 1858 00e4 E1D0 beq .L142 -1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1859 .loc 1 1230 0 is_stmt 0 discriminator 1 - 1860 00e6 002B cmp r3, #0 - 1861 00e8 DFD1 bne .L142 -1233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1862 .loc 1 1233 0 is_stmt 1 - 1863 00ea 0094 str r4, [sp] - 1864 00ec 0A9B ldr r3, [sp, #40] - 1865 00ee 0022 movs r2, #0 - 1866 00f0 8021 movs r1, #128 - 1867 00f2 2800 movs r0, r5 - 1868 00f4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 1869 .LVL146: - 1870 00f8 0028 cmp r0, #0 - 1871 00fa 2FD1 bne .L150 -1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1872 .loc 1 1238 0 - 1873 00fc 6B8D ldrh r3, [r5, #42] - 1874 00fe 9BB2 uxth r3, r3 - 1875 0100 FF2B cmp r3, #255 - 1876 0102 C6D9 bls .L144 -1240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA - 1877 .loc 1 1240 0 - 1878 0104 FF23 movs r3, #255 - 1879 0106 2B85 strh r3, [r5, #40] -1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1880 .loc 1 1241 0 - 1881 0108 7F3B subs r3, r3, #127 - 1882 010a 0022 movs r2, #0 - 1883 010c 0092 str r2, [sp] - 1884 010e 5B04 lsls r3, r3, #17 - 1885 0110 FF32 adds r2, r2, #255 - 1886 0112 0399 ldr r1, [sp, #12] - 1887 0114 2800 movs r0, r5 - 1888 0116 FFF7FEFF bl I2C_TransferConfig - 1889 .LVL147: - 1890 011a C6E7 b .L142 - 1891 .L152: -1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1892 .loc 1 1253 0 - 1893 011c 2200 movs r2, r4 - 1894 011e 0A99 ldr r1, [sp, #40] - 1895 0120 2800 movs r0, r5 - 1896 0122 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout - 1897 .LVL148: - 1898 0126 0028 cmp r0, #0 - 1899 0128 1AD1 bne .L151 -1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1900 .loc 1 1259 0 - 1901 012a 2B68 ldr r3, [r5] - 1902 012c 2022 movs r2, #32 - 1903 012e DA61 str r2, [r3, #28] -1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1904 .loc 1 1262 0 - 1905 0130 2968 ldr r1, [r5] - ARM GAS /tmp/ccFk2Nxo.s page 152 - - - 1906 0132 4B68 ldr r3, [r1, #4] - 1907 0134 0C4C ldr r4, .L153+4 - 1908 .LVL149: - 1909 0136 2340 ands r3, r4 - 1910 0138 4B60 str r3, [r1, #4] -1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 1911 .loc 1 1264 0 - 1912 013a 4123 movs r3, #65 - 1913 013c EA54 strb r2, [r5, r3] -1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1914 .loc 1 1265 0 - 1915 013e 0023 movs r3, #0 - 1916 0140 2232 adds r2, r2, #34 - 1917 0142 AB54 strb r3, [r5, r2] -1268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1918 .loc 1 1268 0 - 1919 0144 023A subs r2, r2, #2 - 1920 0146 AB54 strb r3, [r5, r2] -1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1921 .loc 1 1270 0 - 1922 0148 00E0 b .L139 - 1923 .LVL150: - 1924 .L146: -1274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1925 .loc 1 1274 0 - 1926 014a 0220 movs r0, #2 - 1927 .LVL151: - 1928 .L139: -1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1929 .loc 1 1276 0 - 1930 014c 05B0 add sp, sp, #20 - 1931 @ sp needed - 1932 .LVL152: - 1933 .LVL153: - 1934 014e F0BD pop {r4, r5, r6, r7, pc} - 1935 .LVL154: - 1936 .L147: -1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 1937 .loc 1 1181 0 - 1938 0150 0220 movs r0, #2 - 1939 .LVL155: - 1940 0152 FBE7 b .L139 - 1941 .LVL156: - 1942 .L148: -1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1943 .loc 1 1188 0 - 1944 0154 0120 movs r0, #1 - 1945 0156 F9E7 b .L139 - 1946 .L149: -1218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1947 .loc 1 1218 0 - 1948 0158 0120 movs r0, #1 - 1949 015a F7E7 b .L139 - 1950 .L150: -1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1951 .loc 1 1235 0 - 1952 015c 0120 movs r0, #1 - ARM GAS /tmp/ccFk2Nxo.s page 153 - - - 1953 015e F5E7 b .L139 - 1954 .L151: -1255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 1955 .loc 1 1255 0 - 1956 0160 0120 movs r0, #1 - 1957 0162 F3E7 b .L139 - 1958 .L154: - 1959 .align 2 - 1960 .L153: - 1961 0164 00240080 .word -2147474432 - 1962 0168 00E800FE .word -33495040 - 1963 .cfi_endproc - 1964 .LFE45: - 1966 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits - 1967 .align 1 - 1968 .global HAL_I2C_Slave_Transmit - 1969 .syntax unified - 1970 .code 16 - 1971 .thumb_func - 1972 .fpu softvfp - 1974 HAL_I2C_Slave_Transmit: - 1975 .LFB46: -1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 1976 .loc 1 1288 0 - 1977 .cfi_startproc - 1978 @ args = 0, pretend = 0, frame = 8 - 1979 @ frame_needed = 0, uses_anonymous_args = 0 - 1980 .LVL157: - 1981 0000 F0B5 push {r4, r5, r6, r7, lr} - 1982 .LCFI17: - 1983 .cfi_def_cfa_offset 20 - 1984 .cfi_offset 4, -20 - 1985 .cfi_offset 5, -16 - 1986 .cfi_offset 6, -12 - 1987 .cfi_offset 7, -8 - 1988 .cfi_offset 14, -4 - 1989 0002 85B0 sub sp, sp, #20 - 1990 .LCFI18: - 1991 .cfi_def_cfa_offset 40 - 1992 0004 0600 movs r6, r0 - 1993 0006 0C00 movs r4, r1 - 1994 0008 1500 movs r5, r2 - 1995 000a 0393 str r3, [sp, #12] -1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 1996 .loc 1 1291 0 - 1997 000c 4123 movs r3, #65 - 1998 .LVL158: - 1999 000e C35C ldrb r3, [r0, r3] - 2000 0010 202B cmp r3, #32 - 2001 0012 00D0 beq .LCB1995 - 2002 0014 B8E0 b .L167 @long jump - 2003 .LCB1995: -1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2004 .loc 1 1293 0 - 2005 0016 0029 cmp r1, #0 - 2006 0018 4CD0 beq .L157 -1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 154 - - - 2007 .loc 1 1293 0 is_stmt 0 discriminator 1 - 2008 001a 002A cmp r2, #0 - 2009 001c 4AD0 beq .L157 -1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2010 .loc 1 1299 0 is_stmt 1 - 2011 001e 4023 movs r3, #64 - 2012 0020 C35C ldrb r3, [r0, r3] - 2013 0022 012B cmp r3, #1 - 2014 0024 00D1 bne .LCB2003 - 2015 0026 B2E0 b .L168 @long jump - 2016 .LCB2003: -1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2017 .loc 1 1299 0 is_stmt 0 discriminator 2 - 2018 0028 4023 movs r3, #64 - 2019 002a 0122 movs r2, #1 - 2020 .LVL159: - 2021 002c C254 strb r2, [r0, r3] -1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2022 .loc 1 1302 0 is_stmt 1 discriminator 2 - 2023 002e FFF7FEFF bl HAL_GetTick - 2024 .LVL160: - 2025 0032 0700 movs r7, r0 - 2026 .LVL161: -1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 2027 .loc 1 1304 0 discriminator 2 - 2028 0034 4123 movs r3, #65 - 2029 0036 2122 movs r2, #33 - 2030 0038 F254 strb r2, [r6, r3] -1305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 2031 .loc 1 1305 0 discriminator 2 - 2032 003a 0133 adds r3, r3, #1 - 2033 003c 013A subs r2, r2, #1 - 2034 003e F254 strb r2, [r6, r3] -1306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2035 .loc 1 1306 0 discriminator 2 - 2036 0040 0023 movs r3, #0 - 2037 0042 7364 str r3, [r6, #68] -1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 2038 .loc 1 1309 0 discriminator 2 - 2039 0044 7462 str r4, [r6, #36] -1310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 2040 .loc 1 1310 0 discriminator 2 - 2041 0046 7585 strh r5, [r6, #42] -1311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2042 .loc 1 1311 0 discriminator 2 - 2043 0048 7363 str r3, [r6, #52] -1314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2044 .loc 1 1314 0 discriminator 2 - 2045 004a 3268 ldr r2, [r6] - 2046 004c 5368 ldr r3, [r2, #4] - 2047 004e 5149 ldr r1, .L178 - 2048 0050 0B40 ands r3, r1 - 2049 0052 5360 str r3, [r2, #4] -1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2050 .loc 1 1317 0 discriminator 2 - 2051 0054 0090 str r0, [sp] - 2052 0056 039B ldr r3, [sp, #12] - ARM GAS /tmp/ccFk2Nxo.s page 155 - - - 2053 0058 0022 movs r2, #0 - 2054 005a 0821 movs r1, #8 - 2055 005c 3000 movs r0, r6 - 2056 .LVL162: - 2057 005e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 2058 .LVL163: - 2059 0062 0028 cmp r0, #0 - 2060 0064 2BD1 bne .L170 -1325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2061 .loc 1 1325 0 - 2062 0066 3368 ldr r3, [r6] - 2063 0068 0822 movs r2, #8 - 2064 006a DA61 str r2, [r3, #28] -1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2065 .loc 1 1328 0 - 2066 006c F368 ldr r3, [r6, #12] - 2067 006e 022B cmp r3, #2 - 2068 0070 2DD0 beq .L171 - 2069 .L160: -1343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2070 .loc 1 1343 0 - 2071 0072 8021 movs r1, #128 - 2072 0074 0097 str r7, [sp] - 2073 0076 039B ldr r3, [sp, #12] - 2074 0078 0022 movs r2, #0 - 2075 007a 4902 lsls r1, r1, #9 - 2076 007c 3000 movs r0, r6 - 2077 007e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 2078 .LVL164: - 2079 0082 0028 cmp r0, #0 - 2080 0084 38D1 bne .L172 - 2081 .L162: -1350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2082 .loc 1 1350 0 - 2083 0086 738D ldrh r3, [r6, #42] - 2084 0088 9BB2 uxth r3, r3 - 2085 008a 002B cmp r3, #0 - 2086 008c 44D0 beq .L173 -1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2087 .loc 1 1353 0 - 2088 008e 3A00 movs r2, r7 - 2089 0090 0399 ldr r1, [sp, #12] - 2090 0092 3000 movs r0, r6 - 2091 0094 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout - 2092 .LVL165: - 2093 0098 0028 cmp r0, #0 - 2094 009a 35D1 bne .L174 -1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2095 .loc 1 1361 0 - 2096 009c 3368 ldr r3, [r6] - 2097 009e 726A ldr r2, [r6, #36] - 2098 00a0 1278 ldrb r2, [r2] - 2099 00a2 9A62 str r2, [r3, #40] -1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2100 .loc 1 1364 0 - 2101 00a4 736A ldr r3, [r6, #36] - 2102 00a6 0133 adds r3, r3, #1 - ARM GAS /tmp/ccFk2Nxo.s page 156 - - - 2103 00a8 7362 str r3, [r6, #36] -1366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2104 .loc 1 1366 0 - 2105 00aa 738D ldrh r3, [r6, #42] - 2106 00ac 013B subs r3, r3, #1 - 2107 00ae 9BB2 uxth r3, r3 - 2108 00b0 7385 strh r3, [r6, #42] - 2109 00b2 E8E7 b .L162 - 2110 .LVL166: - 2111 .L157: -1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2112 .loc 1 1295 0 - 2113 00b4 8023 movs r3, #128 - 2114 00b6 9B00 lsls r3, r3, #2 - 2115 00b8 7364 str r3, [r6, #68] -1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2116 .loc 1 1296 0 - 2117 00ba 0120 movs r0, #1 - 2118 .LVL167: - 2119 00bc 65E0 b .L156 - 2120 .LVL168: - 2121 .L170: -1320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2122 .loc 1 1320 0 - 2123 00be 3268 ldr r2, [r6] - 2124 00c0 5168 ldr r1, [r2, #4] - 2125 00c2 8023 movs r3, #128 - 2126 00c4 1B02 lsls r3, r3, #8 - 2127 00c6 0B43 orrs r3, r1 - 2128 00c8 5360 str r3, [r2, #4] -1321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2129 .loc 1 1321 0 - 2130 00ca 0120 movs r0, #1 - 2131 00cc 5DE0 b .L156 - 2132 .L171: -1331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2133 .loc 1 1331 0 - 2134 00ce 0097 str r7, [sp] - 2135 00d0 039B ldr r3, [sp, #12] - 2136 00d2 0022 movs r2, #0 - 2137 00d4 0821 movs r1, #8 - 2138 00d6 3000 movs r0, r6 - 2139 00d8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 2140 .LVL169: - 2141 00dc 0028 cmp r0, #0 - 2142 00de 03D1 bne .L175 -1339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2143 .loc 1 1339 0 - 2144 00e0 3368 ldr r3, [r6] - 2145 00e2 0822 movs r2, #8 - 2146 00e4 DA61 str r2, [r3, #28] - 2147 00e6 C4E7 b .L160 - 2148 .L175: -1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2149 .loc 1 1334 0 - 2150 00e8 3268 ldr r2, [r6] - 2151 00ea 5168 ldr r1, [r2, #4] - ARM GAS /tmp/ccFk2Nxo.s page 157 - - - 2152 00ec 8023 movs r3, #128 - 2153 00ee 1B02 lsls r3, r3, #8 - 2154 00f0 0B43 orrs r3, r1 - 2155 00f2 5360 str r3, [r2, #4] -1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2156 .loc 1 1335 0 - 2157 00f4 0120 movs r0, #1 - 2158 00f6 48E0 b .L156 - 2159 .L172: -1346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2160 .loc 1 1346 0 - 2161 00f8 3268 ldr r2, [r6] - 2162 00fa 5168 ldr r1, [r2, #4] - 2163 00fc 8023 movs r3, #128 - 2164 00fe 1B02 lsls r3, r3, #8 - 2165 0100 0B43 orrs r3, r1 - 2166 0102 5360 str r3, [r2, #4] -1347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2167 .loc 1 1347 0 - 2168 0104 0120 movs r0, #1 - 2169 0106 40E0 b .L156 - 2170 .L174: -1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2171 .loc 1 1356 0 - 2172 0108 3268 ldr r2, [r6] - 2173 010a 5168 ldr r1, [r2, #4] - 2174 010c 8023 movs r3, #128 - 2175 010e 1B02 lsls r3, r3, #8 - 2176 0110 0B43 orrs r3, r1 - 2177 0112 5360 str r3, [r2, #4] -1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2178 .loc 1 1357 0 - 2179 0114 0120 movs r0, #1 - 2180 0116 38E0 b .L156 - 2181 .L173: -1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2182 .loc 1 1370 0 - 2183 0118 3A00 movs r2, r7 - 2184 011a 0399 ldr r1, [sp, #12] - 2185 011c 3000 movs r0, r6 - 2186 011e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout - 2187 .LVL170: - 2188 0122 0028 cmp r0, #0 - 2189 0124 0CD0 beq .L165 -1373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2190 .loc 1 1373 0 - 2191 0126 3268 ldr r2, [r6] - 2192 0128 5168 ldr r1, [r2, #4] - 2193 012a 8023 movs r3, #128 - 2194 012c 1B02 lsls r3, r3, #8 - 2195 012e 0B43 orrs r3, r1 - 2196 0130 5360 str r3, [r2, #4] -1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2197 .loc 1 1375 0 - 2198 0132 736C ldr r3, [r6, #68] - 2199 0134 042B cmp r3, #4 - 2200 0136 01D0 beq .L176 - ARM GAS /tmp/ccFk2Nxo.s page 158 - - -1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2201 .loc 1 1383 0 - 2202 0138 0120 movs r0, #1 - 2203 013a 26E0 b .L156 - 2204 .L176: -1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2205 .loc 1 1379 0 - 2206 013c 0023 movs r3, #0 - 2207 013e 7364 str r3, [r6, #68] - 2208 .L165: -1388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2209 .loc 1 1388 0 - 2210 0140 3368 ldr r3, [r6] - 2211 0142 2022 movs r2, #32 - 2212 0144 DA61 str r2, [r3, #28] -1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2213 .loc 1 1391 0 - 2214 0146 8021 movs r1, #128 - 2215 0148 0097 str r7, [sp] - 2216 014a 039B ldr r3, [sp, #12] - 2217 014c 1F3A subs r2, r2, #31 - 2218 014e 0902 lsls r1, r1, #8 - 2219 0150 3000 movs r0, r6 - 2220 0152 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 2221 .LVL171: - 2222 0156 0028 cmp r0, #0 - 2223 0158 0ED1 bne .L177 -1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2224 .loc 1 1399 0 - 2225 015a 3268 ldr r2, [r6] - 2226 015c 5168 ldr r1, [r2, #4] - 2227 015e 8023 movs r3, #128 - 2228 0160 1B02 lsls r3, r3, #8 - 2229 0162 0B43 orrs r3, r1 - 2230 0164 5360 str r3, [r2, #4] -1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 2231 .loc 1 1401 0 - 2232 0166 4123 movs r3, #65 - 2233 0168 2022 movs r2, #32 - 2234 016a F254 strb r2, [r6, r3] -1402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2235 .loc 1 1402 0 - 2236 016c 0023 movs r3, #0 - 2237 016e 2232 adds r2, r2, #34 - 2238 0170 B354 strb r3, [r6, r2] -1405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2239 .loc 1 1405 0 - 2240 0172 023A subs r2, r2, #2 - 2241 0174 B354 strb r3, [r6, r2] -1407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2242 .loc 1 1407 0 - 2243 0176 08E0 b .L156 - 2244 .L177: -1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2245 .loc 1 1394 0 - 2246 0178 3268 ldr r2, [r6] - 2247 017a 5168 ldr r1, [r2, #4] - ARM GAS /tmp/ccFk2Nxo.s page 159 - - - 2248 017c 8023 movs r3, #128 - 2249 017e 1B02 lsls r3, r3, #8 - 2250 0180 0B43 orrs r3, r1 - 2251 0182 5360 str r3, [r2, #4] -1395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2252 .loc 1 1395 0 - 2253 0184 0120 movs r0, #1 - 2254 0186 00E0 b .L156 - 2255 .LVL172: - 2256 .L167: -1411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2257 .loc 1 1411 0 - 2258 0188 0220 movs r0, #2 - 2259 .LVL173: - 2260 .L156: -1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2261 .loc 1 1413 0 - 2262 018a 05B0 add sp, sp, #20 - 2263 @ sp needed - 2264 .LVL174: - 2265 .LVL175: - 2266 018c F0BD pop {r4, r5, r6, r7, pc} - 2267 .LVL176: - 2268 .L168: -1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2269 .loc 1 1299 0 - 2270 018e 0220 movs r0, #2 - 2271 .LVL177: - 2272 0190 FBE7 b .L156 - 2273 .L179: - 2274 0192 C046 .align 2 - 2275 .L178: - 2276 0194 FF7FFFFF .word -32769 - 2277 .cfi_endproc - 2278 .LFE46: - 2280 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits - 2281 .align 1 - 2282 .global HAL_I2C_Slave_Receive - 2283 .syntax unified - 2284 .code 16 - 2285 .thumb_func - 2286 .fpu softvfp - 2288 HAL_I2C_Slave_Receive: - 2289 .LFB47: -1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 2290 .loc 1 1425 0 - 2291 .cfi_startproc - 2292 @ args = 0, pretend = 0, frame = 8 - 2293 @ frame_needed = 0, uses_anonymous_args = 0 - 2294 .LVL178: - 2295 0000 F0B5 push {r4, r5, r6, r7, lr} - 2296 .LCFI19: - 2297 .cfi_def_cfa_offset 20 - 2298 .cfi_offset 4, -20 - 2299 .cfi_offset 5, -16 - 2300 .cfi_offset 6, -12 - 2301 .cfi_offset 7, -8 - ARM GAS /tmp/ccFk2Nxo.s page 160 - - - 2302 .cfi_offset 14, -4 - 2303 0002 85B0 sub sp, sp, #20 - 2304 .LCFI20: - 2305 .cfi_def_cfa_offset 40 - 2306 0004 0600 movs r6, r0 - 2307 0006 0C00 movs r4, r1 - 2308 0008 1500 movs r5, r2 - 2309 000a 0393 str r3, [sp, #12] -1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2310 .loc 1 1428 0 - 2311 000c 4123 movs r3, #65 - 2312 .LVL179: - 2313 000e C35C ldrb r3, [r0, r3] - 2314 0010 202B cmp r3, #32 - 2315 0012 00D0 beq .LCB2307 - 2316 0014 A8E0 b .L190 @long jump - 2317 .LCB2307: -1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2318 .loc 1 1430 0 - 2319 0016 0029 cmp r1, #0 - 2320 0018 2DD0 beq .L182 -1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2321 .loc 1 1430 0 is_stmt 0 discriminator 1 - 2322 001a 002A cmp r2, #0 - 2323 001c 2BD0 beq .L182 -1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2324 .loc 1 1436 0 is_stmt 1 - 2325 001e 4023 movs r3, #64 - 2326 0020 C35C ldrb r3, [r0, r3] - 2327 0022 012B cmp r3, #1 - 2328 0024 00D1 bne .LCB2315 - 2329 0026 A2E0 b .L191 @long jump - 2330 .LCB2315: -1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2331 .loc 1 1436 0 is_stmt 0 discriminator 2 - 2332 0028 4023 movs r3, #64 - 2333 002a 0122 movs r2, #1 - 2334 .LVL180: - 2335 002c C254 strb r2, [r0, r3] -1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2336 .loc 1 1439 0 is_stmt 1 discriminator 2 - 2337 002e FFF7FEFF bl HAL_GetTick - 2338 .LVL181: - 2339 0032 0700 movs r7, r0 - 2340 .LVL182: -1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 2341 .loc 1 1441 0 discriminator 2 - 2342 0034 4123 movs r3, #65 - 2343 0036 2222 movs r2, #34 - 2344 0038 F254 strb r2, [r6, r3] -1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 2345 .loc 1 1442 0 discriminator 2 - 2346 003a 0133 adds r3, r3, #1 - 2347 003c 023A subs r2, r2, #2 - 2348 003e F254 strb r2, [r6, r3] -1443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2349 .loc 1 1443 0 discriminator 2 - ARM GAS /tmp/ccFk2Nxo.s page 161 - - - 2350 0040 0023 movs r3, #0 - 2351 0042 7364 str r3, [r6, #68] -1446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 2352 .loc 1 1446 0 discriminator 2 - 2353 0044 7462 str r4, [r6, #36] -1447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 2354 .loc 1 1447 0 discriminator 2 - 2355 0046 7585 strh r5, [r6, #42] -1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2356 .loc 1 1448 0 discriminator 2 - 2357 0048 7363 str r3, [r6, #52] -1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2358 .loc 1 1451 0 discriminator 2 - 2359 004a 3268 ldr r2, [r6] - 2360 004c 5368 ldr r3, [r2, #4] - 2361 004e 4A49 ldr r1, .L195 - 2362 0050 0B40 ands r3, r1 - 2363 0052 5360 str r3, [r2, #4] -1454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2364 .loc 1 1454 0 discriminator 2 - 2365 0054 0090 str r0, [sp] - 2366 0056 039B ldr r3, [sp, #12] - 2367 0058 0022 movs r2, #0 - 2368 005a 0821 movs r1, #8 - 2369 005c 3000 movs r0, r6 - 2370 .LVL183: - 2371 005e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 2372 .LVL184: - 2373 0062 0028 cmp r0, #0 - 2374 0064 0CD0 beq .L184 -1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2375 .loc 1 1457 0 - 2376 0066 3268 ldr r2, [r6] - 2377 0068 5168 ldr r1, [r2, #4] - 2378 006a 8023 movs r3, #128 - 2379 006c 1B02 lsls r3, r3, #8 - 2380 006e 0B43 orrs r3, r1 - 2381 0070 5360 str r3, [r2, #4] -1458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2382 .loc 1 1458 0 - 2383 0072 0120 movs r0, #1 - 2384 0074 79E0 b .L181 - 2385 .LVL185: - 2386 .L182: -1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2387 .loc 1 1432 0 - 2388 0076 8023 movs r3, #128 - 2389 0078 9B00 lsls r3, r3, #2 - 2390 007a 7364 str r3, [r6, #68] -1433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2391 .loc 1 1433 0 - 2392 007c 0120 movs r0, #1 - 2393 .LVL186: - 2394 007e 74E0 b .L181 - 2395 .LVL187: - 2396 .L184: -1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 162 - - - 2397 .loc 1 1462 0 - 2398 0080 3368 ldr r3, [r6] - 2399 0082 0822 movs r2, #8 - 2400 0084 DA61 str r2, [r3, #28] -1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2401 .loc 1 1465 0 - 2402 0086 8021 movs r1, #128 - 2403 0088 0097 str r7, [sp] - 2404 008a 039B ldr r3, [sp, #12] - 2405 008c 073A subs r2, r2, #7 - 2406 008e 4902 lsls r1, r1, #9 - 2407 0090 3000 movs r0, r6 - 2408 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 2409 .LVL188: - 2410 0096 0028 cmp r0, #0 - 2411 0098 12D0 beq .L185 -1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2412 .loc 1 1468 0 - 2413 009a 3268 ldr r2, [r6] - 2414 009c 5168 ldr r1, [r2, #4] - 2415 009e 8023 movs r3, #128 - 2416 00a0 1B02 lsls r3, r3, #8 - 2417 00a2 0B43 orrs r3, r1 - 2418 00a4 5360 str r3, [r2, #4] -1469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2419 .loc 1 1469 0 - 2420 00a6 0120 movs r0, #1 - 2421 00a8 5FE0 b .L181 - 2422 .L186: -1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2423 .loc 1 1496 0 - 2424 00aa 3368 ldr r3, [r6] - 2425 00ac 5B6A ldr r3, [r3, #36] - 2426 00ae 726A ldr r2, [r6, #36] - 2427 00b0 1370 strb r3, [r2] -1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2428 .loc 1 1499 0 - 2429 00b2 736A ldr r3, [r6, #36] - 2430 00b4 0133 adds r3, r3, #1 - 2431 00b6 7362 str r3, [r6, #36] -1501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2432 .loc 1 1501 0 - 2433 00b8 738D ldrh r3, [r6, #42] - 2434 00ba 013B subs r3, r3, #1 - 2435 00bc 9BB2 uxth r3, r3 - 2436 00be 7385 strh r3, [r6, #42] - 2437 .L185: -1472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2438 .loc 1 1472 0 - 2439 00c0 738D ldrh r3, [r6, #42] - 2440 00c2 9BB2 uxth r3, r3 - 2441 00c4 002B cmp r3, #0 - 2442 00c6 1CD0 beq .L193 -1475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2443 .loc 1 1475 0 - 2444 00c8 3A00 movs r2, r7 - 2445 00ca 0399 ldr r1, [sp, #12] - ARM GAS /tmp/ccFk2Nxo.s page 163 - - - 2446 00cc 3000 movs r0, r6 - 2447 00ce FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout - 2448 .LVL189: - 2449 00d2 0028 cmp r0, #0 - 2450 00d4 E9D0 beq .L186 -1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2451 .loc 1 1478 0 - 2452 00d6 3268 ldr r2, [r6] - 2453 00d8 5168 ldr r1, [r2, #4] - 2454 00da 8023 movs r3, #128 - 2455 00dc 1B02 lsls r3, r3, #8 - 2456 00de 0B43 orrs r3, r1 - 2457 00e0 5360 str r3, [r2, #4] -1481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2458 .loc 1 1481 0 - 2459 00e2 3368 ldr r3, [r6] - 2460 00e4 9A69 ldr r2, [r3, #24] - 2461 00e6 5207 lsls r2, r2, #29 - 2462 00e8 43D5 bpl .L192 -1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2463 .loc 1 1484 0 - 2464 00ea 5B6A ldr r3, [r3, #36] - 2465 00ec 726A ldr r2, [r6, #36] - 2466 00ee 1370 strb r3, [r2] -1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2467 .loc 1 1487 0 - 2468 00f0 736A ldr r3, [r6, #36] - 2469 00f2 0133 adds r3, r3, #1 - 2470 00f4 7362 str r3, [r6, #36] -1489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2471 .loc 1 1489 0 - 2472 00f6 738D ldrh r3, [r6, #42] - 2473 00f8 013B subs r3, r3, #1 - 2474 00fa 9BB2 uxth r3, r3 - 2475 00fc 7385 strh r3, [r6, #42] -1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2476 .loc 1 1492 0 - 2477 00fe 0120 movs r0, #1 - 2478 0100 33E0 b .L181 - 2479 .L193: -1505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2480 .loc 1 1505 0 - 2481 0102 3A00 movs r2, r7 - 2482 0104 0399 ldr r1, [sp, #12] - 2483 0106 3000 movs r0, r6 - 2484 0108 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout - 2485 .LVL190: - 2486 010c 0028 cmp r0, #0 - 2487 010e 07D0 beq .L188 -1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2488 .loc 1 1508 0 - 2489 0110 3268 ldr r2, [r6] - 2490 0112 5168 ldr r1, [r2, #4] - 2491 0114 8023 movs r3, #128 - 2492 0116 1B02 lsls r3, r3, #8 - 2493 0118 0B43 orrs r3, r1 - 2494 011a 5360 str r3, [r2, #4] - ARM GAS /tmp/ccFk2Nxo.s page 164 - - -1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2495 .loc 1 1509 0 - 2496 011c 0120 movs r0, #1 - 2497 011e 24E0 b .L181 - 2498 .L188: -1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2499 .loc 1 1513 0 - 2500 0120 3368 ldr r3, [r6] - 2501 0122 2022 movs r2, #32 - 2502 0124 DA61 str r2, [r3, #28] -1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2503 .loc 1 1516 0 - 2504 0126 8021 movs r1, #128 - 2505 0128 0097 str r7, [sp] - 2506 012a 039B ldr r3, [sp, #12] - 2507 012c 1F3A subs r2, r2, #31 - 2508 012e 0902 lsls r1, r1, #8 - 2509 0130 3000 movs r0, r6 - 2510 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 2511 .LVL191: - 2512 0136 0028 cmp r0, #0 - 2513 0138 0ED1 bne .L194 -1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2514 .loc 1 1524 0 - 2515 013a 3268 ldr r2, [r6] - 2516 013c 5168 ldr r1, [r2, #4] - 2517 013e 8023 movs r3, #128 - 2518 0140 1B02 lsls r3, r3, #8 - 2519 0142 0B43 orrs r3, r1 - 2520 0144 5360 str r3, [r2, #4] -1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 2521 .loc 1 1526 0 - 2522 0146 4123 movs r3, #65 - 2523 0148 2022 movs r2, #32 - 2524 014a F254 strb r2, [r6, r3] -1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2525 .loc 1 1527 0 - 2526 014c 0023 movs r3, #0 - 2527 014e 2232 adds r2, r2, #34 - 2528 0150 B354 strb r3, [r6, r2] -1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2529 .loc 1 1530 0 - 2530 0152 023A subs r2, r2, #2 - 2531 0154 B354 strb r3, [r6, r2] -1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2532 .loc 1 1532 0 - 2533 0156 08E0 b .L181 - 2534 .L194: -1519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 2535 .loc 1 1519 0 - 2536 0158 3268 ldr r2, [r6] - 2537 015a 5168 ldr r1, [r2, #4] - 2538 015c 8023 movs r3, #128 - 2539 015e 1B02 lsls r3, r3, #8 - 2540 0160 0B43 orrs r3, r1 - 2541 0162 5360 str r3, [r2, #4] -1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 165 - - - 2542 .loc 1 1520 0 - 2543 0164 0120 movs r0, #1 - 2544 0166 00E0 b .L181 - 2545 .LVL192: - 2546 .L190: -1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2547 .loc 1 1536 0 - 2548 0168 0220 movs r0, #2 - 2549 .LVL193: - 2550 .L181: -1538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2551 .loc 1 1538 0 - 2552 016a 05B0 add sp, sp, #20 - 2553 @ sp needed - 2554 .LVL194: - 2555 .LVL195: - 2556 016c F0BD pop {r4, r5, r6, r7, pc} - 2557 .LVL196: - 2558 .L191: -1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2559 .loc 1 1436 0 - 2560 016e 0220 movs r0, #2 - 2561 .LVL197: - 2562 0170 FBE7 b .L181 - 2563 .LVL198: - 2564 .L192: -1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2565 .loc 1 1492 0 - 2566 0172 0120 movs r0, #1 - 2567 0174 F9E7 b .L181 - 2568 .L196: - 2569 0176 C046 .align 2 - 2570 .L195: - 2571 0178 FF7FFFFF .word -32769 - 2572 .cfi_endproc - 2573 .LFE47: - 2575 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits - 2576 .align 1 - 2577 .global HAL_I2C_Master_Transmit_IT - 2578 .syntax unified - 2579 .code 16 - 2580 .thumb_func - 2581 .fpu softvfp - 2583 HAL_I2C_Master_Transmit_IT: - 2584 .LFB48: -1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; - 2585 .loc 1 1551 0 - 2586 .cfi_startproc - 2587 @ args = 0, pretend = 0, frame = 0 - 2588 @ frame_needed = 0, uses_anonymous_args = 0 - 2589 .LVL199: - 2590 0000 30B5 push {r4, r5, lr} - 2591 .LCFI21: - 2592 .cfi_def_cfa_offset 12 - 2593 .cfi_offset 4, -12 - 2594 .cfi_offset 5, -8 - 2595 .cfi_offset 14, -4 - ARM GAS /tmp/ccFk2Nxo.s page 166 - - - 2596 0002 83B0 sub sp, sp, #12 - 2597 .LCFI22: - 2598 .cfi_def_cfa_offset 24 - 2599 0004 0400 movs r4, r0 -1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2600 .loc 1 1554 0 - 2601 0006 4120 movs r0, #65 - 2602 .LVL200: - 2603 0008 205C ldrb r0, [r4, r0] - 2604 000a 2028 cmp r0, #32 - 2605 000c 35D1 bne .L201 -1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2606 .loc 1 1556 0 - 2607 000e 2068 ldr r0, [r4] - 2608 0010 8069 ldr r0, [r0, #24] - 2609 0012 0004 lsls r0, r0, #16 - 2610 0014 34D4 bmi .L202 -1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2611 .loc 1 1562 0 - 2612 0016 4020 movs r0, #64 - 2613 0018 205C ldrb r0, [r4, r0] - 2614 001a 0128 cmp r0, #1 - 2615 001c 32D0 beq .L203 -1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2616 .loc 1 1562 0 is_stmt 0 discriminator 2 - 2617 001e 4020 movs r0, #64 - 2618 0020 0125 movs r5, #1 - 2619 0022 2554 strb r5, [r4, r0] -1564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 2620 .loc 1 1564 0 is_stmt 1 discriminator 2 - 2621 0024 0130 adds r0, r0, #1 - 2622 0026 2035 adds r5, r5, #32 - 2623 0028 2554 strb r5, [r4, r0] -1565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 2624 .loc 1 1565 0 discriminator 2 - 2625 002a 0130 adds r0, r0, #1 - 2626 002c 113D subs r5, r5, #17 - 2627 002e 2554 strb r5, [r4, r0] -1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2628 .loc 1 1566 0 discriminator 2 - 2629 0030 0020 movs r0, #0 - 2630 0032 6064 str r0, [r4, #68] -1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 2631 .loc 1 1569 0 discriminator 2 - 2632 0034 6262 str r2, [r4, #36] -1570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 2633 .loc 1 1570 0 discriminator 2 - 2634 0036 6385 strh r3, [r4, #42] -1571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; - 2635 .loc 1 1571 0 discriminator 2 - 2636 0038 134B ldr r3, .L204 - 2637 .LVL201: - 2638 003a E362 str r3, [r4, #44] - 2639 .LVL202: -1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2640 .loc 1 1572 0 discriminator 2 - 2641 003c 134B ldr r3, .L204+4 - ARM GAS /tmp/ccFk2Nxo.s page 167 - - - 2642 003e 6363 str r3, [r4, #52] -1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2643 .loc 1 1574 0 discriminator 2 - 2644 0040 638D ldrh r3, [r4, #42] - 2645 0042 9BB2 uxth r3, r3 - 2646 0044 FF2B cmp r3, #255 - 2647 0046 13D9 bls .L199 -1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 2648 .loc 1 1576 0 - 2649 0048 FF23 movs r3, #255 - 2650 004a 2385 strh r3, [r4, #40] - 2651 .LVL203: -1577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2652 .loc 1 1577 0 - 2653 004c 8023 movs r3, #128 - 2654 004e 5B04 lsls r3, r3, #17 - 2655 .LVL204: - 2656 .L200: -1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2657 .loc 1 1587 0 - 2658 0050 228D ldrh r2, [r4, #40] - 2659 .LVL205: - 2660 0052 D2B2 uxtb r2, r2 - 2661 0054 0E48 ldr r0, .L204+8 - 2662 0056 0090 str r0, [sp] - 2663 .LVL206: - 2664 0058 2000 movs r0, r4 - 2665 005a FFF7FEFF bl I2C_TransferConfig - 2666 .LVL207: -1590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2667 .loc 1 1590 0 - 2668 005e 4023 movs r3, #64 - 2669 0060 0022 movs r2, #0 - 2670 0062 E254 strb r2, [r4, r3] -1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2671 .loc 1 1599 0 - 2672 0064 0121 movs r1, #1 - 2673 0066 2000 movs r0, r4 - 2674 0068 FFF7FEFF bl I2C_Enable_IRQ - 2675 .LVL208: -1601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2676 .loc 1 1601 0 - 2677 006c 0020 movs r0, #0 - 2678 006e 05E0 b .L198 - 2679 .LVL209: - 2680 .L199: -1581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; - 2681 .loc 1 1581 0 - 2682 0070 638D ldrh r3, [r4, #42] - 2683 0072 2385 strh r3, [r4, #40] - 2684 .LVL210: -1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2685 .loc 1 1582 0 - 2686 0074 8023 movs r3, #128 - 2687 0076 9B04 lsls r3, r3, #18 - 2688 0078 EAE7 b .L200 - 2689 .LVL211: - ARM GAS /tmp/ccFk2Nxo.s page 168 - - - 2690 .L201: -1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2691 .loc 1 1605 0 - 2692 007a 0220 movs r0, #2 - 2693 .LVL212: - 2694 .L198: -1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2695 .loc 1 1607 0 - 2696 007c 03B0 add sp, sp, #12 - 2697 @ sp needed - 2698 .LVL213: - 2699 007e 30BD pop {r4, r5, pc} - 2700 .LVL214: - 2701 .L202: -1558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2702 .loc 1 1558 0 - 2703 0080 0220 movs r0, #2 - 2704 0082 FBE7 b .L198 - 2705 .L203: -1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2706 .loc 1 1562 0 - 2707 0084 0220 movs r0, #2 - 2708 0086 F9E7 b .L198 - 2709 .L205: - 2710 .align 2 - 2711 .L204: - 2712 0088 0000FFFF .word -65536 - 2713 008c 00000000 .word I2C_Master_ISR_IT - 2714 0090 00200080 .word -2147475456 - 2715 .cfi_endproc - 2716 .LFE48: - 2718 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits - 2719 .align 1 - 2720 .global HAL_I2C_Master_Receive_IT - 2721 .syntax unified - 2722 .code 16 - 2723 .thumb_func - 2724 .fpu softvfp - 2726 HAL_I2C_Master_Receive_IT: - 2727 .LFB49: -1620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; - 2728 .loc 1 1620 0 - 2729 .cfi_startproc - 2730 @ args = 0, pretend = 0, frame = 0 - 2731 @ frame_needed = 0, uses_anonymous_args = 0 - 2732 .LVL215: - 2733 0000 30B5 push {r4, r5, lr} - 2734 .LCFI23: - 2735 .cfi_def_cfa_offset 12 - 2736 .cfi_offset 4, -12 - 2737 .cfi_offset 5, -8 - 2738 .cfi_offset 14, -4 - 2739 0002 83B0 sub sp, sp, #12 - 2740 .LCFI24: - 2741 .cfi_def_cfa_offset 24 - 2742 0004 0400 movs r4, r0 -1623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 169 - - - 2743 .loc 1 1623 0 - 2744 0006 4120 movs r0, #65 - 2745 .LVL216: - 2746 0008 205C ldrb r0, [r4, r0] - 2747 000a 2028 cmp r0, #32 - 2748 000c 35D1 bne .L210 -1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2749 .loc 1 1625 0 - 2750 000e 2068 ldr r0, [r4] - 2751 0010 8069 ldr r0, [r0, #24] - 2752 0012 0004 lsls r0, r0, #16 - 2753 0014 34D4 bmi .L211 -1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2754 .loc 1 1631 0 - 2755 0016 4020 movs r0, #64 - 2756 0018 205C ldrb r0, [r4, r0] - 2757 001a 0128 cmp r0, #1 - 2758 001c 32D0 beq .L212 -1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2759 .loc 1 1631 0 is_stmt 0 discriminator 2 - 2760 001e 4020 movs r0, #64 - 2761 0020 0125 movs r5, #1 - 2762 0022 2554 strb r5, [r4, r0] -1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 2763 .loc 1 1633 0 is_stmt 1 discriminator 2 - 2764 0024 0130 adds r0, r0, #1 - 2765 0026 2135 adds r5, r5, #33 - 2766 0028 2554 strb r5, [r4, r0] -1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 2767 .loc 1 1634 0 discriminator 2 - 2768 002a 0130 adds r0, r0, #1 - 2769 002c 123D subs r5, r5, #18 - 2770 002e 2554 strb r5, [r4, r0] -1635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2771 .loc 1 1635 0 discriminator 2 - 2772 0030 0020 movs r0, #0 - 2773 0032 6064 str r0, [r4, #68] -1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 2774 .loc 1 1638 0 discriminator 2 - 2775 0034 6262 str r2, [r4, #36] -1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 2776 .loc 1 1639 0 discriminator 2 - 2777 0036 6385 strh r3, [r4, #42] -1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; - 2778 .loc 1 1640 0 discriminator 2 - 2779 0038 134B ldr r3, .L213 - 2780 .LVL217: - 2781 003a E362 str r3, [r4, #44] - 2782 .LVL218: -1641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2783 .loc 1 1641 0 discriminator 2 - 2784 003c 134B ldr r3, .L213+4 - 2785 003e 6363 str r3, [r4, #52] -1643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2786 .loc 1 1643 0 discriminator 2 - 2787 0040 638D ldrh r3, [r4, #42] - 2788 0042 9BB2 uxth r3, r3 - ARM GAS /tmp/ccFk2Nxo.s page 170 - - - 2789 0044 FF2B cmp r3, #255 - 2790 0046 13D9 bls .L208 -1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 2791 .loc 1 1645 0 - 2792 0048 FF23 movs r3, #255 - 2793 004a 2385 strh r3, [r4, #40] - 2794 .LVL219: -1646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2795 .loc 1 1646 0 - 2796 004c 8023 movs r3, #128 - 2797 004e 5B04 lsls r3, r3, #17 - 2798 .LVL220: - 2799 .L209: -1656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2800 .loc 1 1656 0 - 2801 0050 228D ldrh r2, [r4, #40] - 2802 .LVL221: - 2803 0052 D2B2 uxtb r2, r2 - 2804 0054 0E48 ldr r0, .L213+8 - 2805 0056 0090 str r0, [sp] - 2806 .LVL222: - 2807 0058 2000 movs r0, r4 - 2808 005a FFF7FEFF bl I2C_TransferConfig - 2809 .LVL223: -1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2810 .loc 1 1659 0 - 2811 005e 4023 movs r3, #64 - 2812 0060 0022 movs r2, #0 - 2813 0062 E254 strb r2, [r4, r3] -1668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2814 .loc 1 1668 0 - 2815 0064 0221 movs r1, #2 - 2816 0066 2000 movs r0, r4 - 2817 0068 FFF7FEFF bl I2C_Enable_IRQ - 2818 .LVL224: -1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2819 .loc 1 1670 0 - 2820 006c 0020 movs r0, #0 - 2821 006e 05E0 b .L207 - 2822 .LVL225: - 2823 .L208: -1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; - 2824 .loc 1 1650 0 - 2825 0070 638D ldrh r3, [r4, #42] - 2826 0072 2385 strh r3, [r4, #40] - 2827 .LVL226: -1651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2828 .loc 1 1651 0 - 2829 0074 8023 movs r3, #128 - 2830 0076 9B04 lsls r3, r3, #18 - 2831 0078 EAE7 b .L209 - 2832 .LVL227: - 2833 .L210: -1674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2834 .loc 1 1674 0 - 2835 007a 0220 movs r0, #2 - 2836 .LVL228: - ARM GAS /tmp/ccFk2Nxo.s page 171 - - - 2837 .L207: -1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2838 .loc 1 1676 0 - 2839 007c 03B0 add sp, sp, #12 - 2840 @ sp needed - 2841 .LVL229: - 2842 007e 30BD pop {r4, r5, pc} - 2843 .LVL230: - 2844 .L211: -1627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2845 .loc 1 1627 0 - 2846 0080 0220 movs r0, #2 - 2847 0082 FBE7 b .L207 - 2848 .L212: -1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2849 .loc 1 1631 0 - 2850 0084 0220 movs r0, #2 - 2851 0086 F9E7 b .L207 - 2852 .L214: - 2853 .align 2 - 2854 .L213: - 2855 0088 0000FFFF .word -65536 - 2856 008c 00000000 .word I2C_Master_ISR_IT - 2857 0090 00240080 .word -2147474432 - 2858 .cfi_endproc - 2859 .LFE49: - 2861 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits - 2862 .align 1 - 2863 .global HAL_I2C_Slave_Transmit_IT - 2864 .syntax unified - 2865 .code 16 - 2866 .thumb_func - 2867 .fpu softvfp - 2869 HAL_I2C_Slave_Transmit_IT: - 2870 .LFB50: -1687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) - 2871 .loc 1 1687 0 - 2872 .cfi_startproc - 2873 @ args = 0, pretend = 0, frame = 0 - 2874 @ frame_needed = 0, uses_anonymous_args = 0 - 2875 .LVL231: - 2876 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 2877 .LCFI25: - 2878 .cfi_def_cfa_offset 24 - 2879 .cfi_offset 3, -24 - 2880 .cfi_offset 4, -20 - 2881 .cfi_offset 5, -16 - 2882 .cfi_offset 6, -12 - 2883 .cfi_offset 7, -8 - 2884 .cfi_offset 14, -4 -1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2885 .loc 1 1688 0 - 2886 0002 4123 movs r3, #65 - 2887 0004 C35C ldrb r3, [r0, r3] - 2888 0006 202B cmp r3, #32 - 2889 0008 21D1 bne .L217 -1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 172 - - - 2890 .loc 1 1691 0 - 2891 000a 2033 adds r3, r3, #32 - 2892 000c C35C ldrb r3, [r0, r3] - 2893 000e 012B cmp r3, #1 - 2894 0010 1FD0 beq .L218 -1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2895 .loc 1 1691 0 is_stmt 0 discriminator 2 - 2896 0012 4024 movs r4, #64 - 2897 0014 0123 movs r3, #1 - 2898 0016 0355 strb r3, [r0, r4] -1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 2899 .loc 1 1693 0 is_stmt 1 discriminator 2 - 2900 0018 4033 adds r3, r3, #64 - 2901 001a 2125 movs r5, #33 - 2902 001c C554 strb r5, [r0, r3] -1694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 2903 .loc 1 1694 0 discriminator 2 - 2904 001e 0133 adds r3, r3, #1 - 2905 0020 013D subs r5, r5, #1 - 2906 0022 C554 strb r5, [r0, r3] -1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2907 .loc 1 1695 0 discriminator 2 - 2908 0024 0025 movs r5, #0 - 2909 0026 4564 str r5, [r0, #68] -1698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2910 .loc 1 1698 0 discriminator 2 - 2911 0028 0668 ldr r6, [r0] - 2912 002a 7368 ldr r3, [r6, #4] - 2913 002c 0A4F ldr r7, .L219 - 2914 002e 3B40 ands r3, r7 - 2915 0030 7360 str r3, [r6, #4] -1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 2916 .loc 1 1701 0 discriminator 2 - 2917 0032 4162 str r1, [r0, #36] -1702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; - 2918 .loc 1 1702 0 discriminator 2 - 2919 0034 4285 strh r2, [r0, #42] -1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 2920 .loc 1 1703 0 discriminator 2 - 2921 0036 438D ldrh r3, [r0, #42] - 2922 0038 0385 strh r3, [r0, #40] -1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; - 2923 .loc 1 1704 0 discriminator 2 - 2924 003a 084B ldr r3, .L219+4 - 2925 003c C362 str r3, [r0, #44] -1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2926 .loc 1 1705 0 discriminator 2 - 2927 003e 084B ldr r3, .L219+8 - 2928 0040 4363 str r3, [r0, #52] -1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2929 .loc 1 1708 0 discriminator 2 - 2930 0042 0555 strb r5, [r0, r4] -1717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2931 .loc 1 1717 0 discriminator 2 - 2932 0044 0521 movs r1, #5 - 2933 .LVL232: - 2934 0046 FFF7FEFF bl I2C_Enable_IRQ - ARM GAS /tmp/ccFk2Nxo.s page 173 - - - 2935 .LVL233: -1719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2936 .loc 1 1719 0 discriminator 2 - 2937 004a 0020 movs r0, #0 - 2938 004c 00E0 b .L216 - 2939 .LVL234: - 2940 .L217: -1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 2941 .loc 1 1723 0 - 2942 004e 0220 movs r0, #2 - 2943 .LVL235: - 2944 .L216: -1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2945 .loc 1 1725 0 - 2946 @ sp needed - 2947 0050 F8BD pop {r3, r4, r5, r6, r7, pc} - 2948 .LVL236: - 2949 .L218: -1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2950 .loc 1 1691 0 - 2951 0052 0220 movs r0, #2 - 2952 .LVL237: - 2953 0054 FCE7 b .L216 - 2954 .L220: - 2955 0056 C046 .align 2 - 2956 .L219: - 2957 0058 FF7FFFFF .word -32769 - 2958 005c 0000FFFF .word -65536 - 2959 0060 00000000 .word I2C_Slave_ISR_IT - 2960 .cfi_endproc - 2961 .LFE50: - 2963 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits - 2964 .align 1 - 2965 .global HAL_I2C_Slave_Receive_IT - 2966 .syntax unified - 2967 .code 16 - 2968 .thumb_func - 2969 .fpu softvfp - 2971 HAL_I2C_Slave_Receive_IT: - 2972 .LFB51: -1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) - 2973 .loc 1 1736 0 - 2974 .cfi_startproc - 2975 @ args = 0, pretend = 0, frame = 0 - 2976 @ frame_needed = 0, uses_anonymous_args = 0 - 2977 .LVL238: - 2978 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 2979 .LCFI26: - 2980 .cfi_def_cfa_offset 24 - 2981 .cfi_offset 3, -24 - 2982 .cfi_offset 4, -20 - 2983 .cfi_offset 5, -16 - 2984 .cfi_offset 6, -12 - 2985 .cfi_offset 7, -8 - 2986 .cfi_offset 14, -4 -1737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 2987 .loc 1 1737 0 - ARM GAS /tmp/ccFk2Nxo.s page 174 - - - 2988 0002 4123 movs r3, #65 - 2989 0004 C35C ldrb r3, [r0, r3] - 2990 0006 202B cmp r3, #32 - 2991 0008 21D1 bne .L223 -1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2992 .loc 1 1740 0 - 2993 000a 2033 adds r3, r3, #32 - 2994 000c C35C ldrb r3, [r0, r3] - 2995 000e 012B cmp r3, #1 - 2996 0010 1FD0 beq .L224 -1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 2997 .loc 1 1740 0 is_stmt 0 discriminator 2 - 2998 0012 4024 movs r4, #64 - 2999 0014 0123 movs r3, #1 - 3000 0016 0355 strb r3, [r0, r4] -1742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 3001 .loc 1 1742 0 is_stmt 1 discriminator 2 - 3002 0018 4033 adds r3, r3, #64 - 3003 001a 2225 movs r5, #34 - 3004 001c C554 strb r5, [r0, r3] -1743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 3005 .loc 1 1743 0 discriminator 2 - 3006 001e 0133 adds r3, r3, #1 - 3007 0020 023D subs r5, r5, #2 - 3008 0022 C554 strb r5, [r0, r3] -1744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3009 .loc 1 1744 0 discriminator 2 - 3010 0024 0025 movs r5, #0 - 3011 0026 4564 str r5, [r0, #68] -1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3012 .loc 1 1747 0 discriminator 2 - 3013 0028 0668 ldr r6, [r0] - 3014 002a 7368 ldr r3, [r6, #4] - 3015 002c 0A4F ldr r7, .L225 - 3016 002e 3B40 ands r3, r7 - 3017 0030 7360 str r3, [r6, #4] -1750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 3018 .loc 1 1750 0 discriminator 2 - 3019 0032 4162 str r1, [r0, #36] -1751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; - 3020 .loc 1 1751 0 discriminator 2 - 3021 0034 4285 strh r2, [r0, #42] -1752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 3022 .loc 1 1752 0 discriminator 2 - 3023 0036 438D ldrh r3, [r0, #42] - 3024 0038 0385 strh r3, [r0, #40] -1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; - 3025 .loc 1 1753 0 discriminator 2 - 3026 003a 084B ldr r3, .L225+4 - 3027 003c C362 str r3, [r0, #44] -1754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3028 .loc 1 1754 0 discriminator 2 - 3029 003e 084B ldr r3, .L225+8 - 3030 0040 4363 str r3, [r0, #52] -1757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3031 .loc 1 1757 0 discriminator 2 - 3032 0042 0555 strb r5, [r0, r4] - ARM GAS /tmp/ccFk2Nxo.s page 175 - - -1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3033 .loc 1 1766 0 discriminator 2 - 3034 0044 0621 movs r1, #6 - 3035 .LVL239: - 3036 0046 FFF7FEFF bl I2C_Enable_IRQ - 3037 .LVL240: -1768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3038 .loc 1 1768 0 discriminator 2 - 3039 004a 0020 movs r0, #0 - 3040 004c 00E0 b .L222 - 3041 .LVL241: - 3042 .L223: -1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3043 .loc 1 1772 0 - 3044 004e 0220 movs r0, #2 - 3045 .LVL242: - 3046 .L222: -1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3047 .loc 1 1774 0 - 3048 @ sp needed - 3049 0050 F8BD pop {r3, r4, r5, r6, r7, pc} - 3050 .LVL243: - 3051 .L224: -1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3052 .loc 1 1740 0 - 3053 0052 0220 movs r0, #2 - 3054 .LVL244: - 3055 0054 FCE7 b .L222 - 3056 .L226: - 3057 0056 C046 .align 2 - 3058 .L225: - 3059 0058 FF7FFFFF .word -32769 - 3060 005c 0000FFFF .word -65536 - 3061 0060 00000000 .word I2C_Slave_ISR_IT - 3062 .cfi_endproc - 3063 .LFE51: - 3065 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits - 3066 .align 1 - 3067 .global HAL_I2C_Master_Transmit_DMA - 3068 .syntax unified - 3069 .code 16 - 3070 .thumb_func - 3071 .fpu softvfp - 3073 HAL_I2C_Master_Transmit_DMA: - 3074 .LFB52: -1787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; - 3075 .loc 1 1787 0 - 3076 .cfi_startproc - 3077 @ args = 0, pretend = 0, frame = 0 - 3078 @ frame_needed = 0, uses_anonymous_args = 0 - 3079 .LVL245: - 3080 0000 F0B5 push {r4, r5, r6, r7, lr} - 3081 .LCFI27: - 3082 .cfi_def_cfa_offset 20 - 3083 .cfi_offset 4, -20 - 3084 .cfi_offset 5, -16 - 3085 .cfi_offset 6, -12 - ARM GAS /tmp/ccFk2Nxo.s page 176 - - - 3086 .cfi_offset 7, -8 - 3087 .cfi_offset 14, -4 - 3088 0002 83B0 sub sp, sp, #12 - 3089 .LCFI28: - 3090 .cfi_def_cfa_offset 32 - 3091 0004 0400 movs r4, r0 - 3092 0006 0E00 movs r6, r1 - 3093 0008 1100 movs r1, r2 - 3094 .LVL246: -1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3095 .loc 1 1791 0 - 3096 000a 4122 movs r2, #65 - 3097 .LVL247: - 3098 000c 825C ldrb r2, [r0, r2] - 3099 000e 202A cmp r2, #32 - 3100 0010 00D0 beq .LCB3093 - 3101 0012 8BE0 b .L235 @long jump - 3102 .LCB3093: -1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3103 .loc 1 1793 0 - 3104 0014 0268 ldr r2, [r0] - 3105 0016 9269 ldr r2, [r2, #24] - 3106 0018 1204 lsls r2, r2, #16 - 3107 001a 00D5 bpl .LCB3099 - 3108 001c 8AE0 b .L236 @long jump - 3109 .LCB3099: -1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3110 .loc 1 1799 0 - 3111 001e 4022 movs r2, #64 - 3112 0020 825C ldrb r2, [r0, r2] - 3113 0022 012A cmp r2, #1 - 3114 0024 00D1 bne .LCB3103 - 3115 0026 87E0 b .L237 @long jump - 3116 .LCB3103: -1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3117 .loc 1 1799 0 is_stmt 0 discriminator 2 - 3118 0028 4022 movs r2, #64 - 3119 002a 0120 movs r0, #1 - 3120 .LVL248: - 3121 002c A054 strb r0, [r4, r2] -1801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 3122 .loc 1 1801 0 is_stmt 1 discriminator 2 - 3123 002e 0132 adds r2, r2, #1 - 3124 0030 2030 adds r0, r0, #32 - 3125 0032 A054 strb r0, [r4, r2] -1802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 3126 .loc 1 1802 0 discriminator 2 - 3127 0034 0132 adds r2, r2, #1 - 3128 0036 1138 subs r0, r0, #17 - 3129 0038 A054 strb r0, [r4, r2] -1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3130 .loc 1 1803 0 discriminator 2 - 3131 003a 0022 movs r2, #0 - 3132 003c 6264 str r2, [r4, #68] -1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 3133 .loc 1 1806 0 discriminator 2 - 3134 003e 6162 str r1, [r4, #36] - ARM GAS /tmp/ccFk2Nxo.s page 177 - - -1807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 3135 .loc 1 1807 0 discriminator 2 - 3136 0040 6385 strh r3, [r4, #42] -1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; - 3137 .loc 1 1808 0 discriminator 2 - 3138 0042 3E4B ldr r3, .L240 - 3139 .LVL249: - 3140 0044 E362 str r3, [r4, #44] - 3141 .LVL250: -1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3142 .loc 1 1809 0 discriminator 2 - 3143 0046 3E4B ldr r3, .L240+4 - 3144 0048 6363 str r3, [r4, #52] -1811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3145 .loc 1 1811 0 discriminator 2 - 3146 004a 638D ldrh r3, [r4, #42] - 3147 004c 9BB2 uxth r3, r3 - 3148 004e FF2B cmp r3, #255 - 3149 0050 29D9 bls .L229 -1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 3150 .loc 1 1813 0 - 3151 0052 FF23 movs r3, #255 - 3152 0054 2385 strh r3, [r4, #40] - 3153 .LVL251: -1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3154 .loc 1 1814 0 - 3155 0056 8027 movs r7, #128 - 3156 0058 7F04 lsls r7, r7, #17 - 3157 .LVL252: - 3158 .L230: -1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3159 .loc 1 1822 0 - 3160 005a 228D ldrh r2, [r4, #40] - 3161 005c 002A cmp r2, #0 - 3162 005e 51D0 beq .L231 -1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3163 .loc 1 1824 0 - 3164 0060 A36B ldr r3, [r4, #56] - 3165 0062 002B cmp r3, #0 - 3166 0064 24D0 beq .L232 -1827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3167 .loc 1 1827 0 - 3168 0066 374A ldr r2, .L240+8 - 3169 0068 9A62 str r2, [r3, #40] -1830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3170 .loc 1 1830 0 - 3171 006a A36B ldr r3, [r4, #56] - 3172 006c 364A ldr r2, .L240+12 - 3173 006e 1A63 str r2, [r3, #48] -1833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; - 3174 .loc 1 1833 0 - 3175 0070 A26B ldr r2, [r4, #56] - 3176 0072 0023 movs r3, #0 - 3177 0074 D362 str r3, [r2, #44] -1834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3178 .loc 1 1834 0 - 3179 0076 A26B ldr r2, [r4, #56] - ARM GAS /tmp/ccFk2Nxo.s page 178 - - - 3180 0078 5363 str r3, [r2, #52] -1837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3181 .loc 1 1837 0 - 3182 007a 2268 ldr r2, [r4] - 3183 007c 2832 adds r2, r2, #40 - 3184 007e 238D ldrh r3, [r4, #40] - 3185 0080 A06B ldr r0, [r4, #56] - 3186 0082 FFF7FEFF bl HAL_DMA_Start_IT - 3187 .LVL253: - 3188 0086 051E subs r5, r0, #0 - 3189 .LVL254: -1854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3190 .loc 1 1854 0 - 3191 0088 20D0 beq .L239 -1878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 3192 .loc 1 1878 0 - 3193 008a 4123 movs r3, #65 - 3194 008c 2022 movs r2, #32 - 3195 008e E254 strb r2, [r4, r3] -1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3196 .loc 1 1879 0 - 3197 0090 0022 movs r2, #0 - 3198 0092 0133 adds r3, r3, #1 - 3199 0094 E254 strb r2, [r4, r3] -1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3200 .loc 1 1882 0 - 3201 0096 636C ldr r3, [r4, #68] - 3202 0098 1021 movs r1, #16 - 3203 009a 0B43 orrs r3, r1 - 3204 009c 6364 str r3, [r4, #68] -1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3205 .loc 1 1885 0 - 3206 009e 4023 movs r3, #64 - 3207 00a0 E254 strb r2, [r4, r3] -1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3208 .loc 1 1887 0 - 3209 00a2 0125 movs r5, #1 - 3210 00a4 43E0 b .L228 - 3211 .LVL255: - 3212 .L229: -1818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; - 3213 .loc 1 1818 0 - 3214 00a6 638D ldrh r3, [r4, #42] - 3215 00a8 2385 strh r3, [r4, #40] - 3216 .LVL256: -1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3217 .loc 1 1819 0 - 3218 00aa 8027 movs r7, #128 - 3219 00ac BF04 lsls r7, r7, #18 - 3220 00ae D4E7 b .L230 - 3221 .LVL257: - 3222 .L232: -1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 3223 .loc 1 1842 0 - 3224 00b0 4123 movs r3, #65 - 3225 00b2 2022 movs r2, #32 - 3226 00b4 E254 strb r2, [r4, r3] - ARM GAS /tmp/ccFk2Nxo.s page 179 - - -1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3227 .loc 1 1843 0 - 3228 00b6 0022 movs r2, #0 - 3229 00b8 0133 adds r3, r3, #1 - 3230 00ba E254 strb r2, [r4, r3] -1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3231 .loc 1 1846 0 - 3232 00bc 636C ldr r3, [r4, #68] - 3233 00be 8021 movs r1, #128 - 3234 .LVL258: - 3235 00c0 0B43 orrs r3, r1 - 3236 00c2 6364 str r3, [r4, #68] -1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3237 .loc 1 1849 0 - 3238 00c4 4023 movs r3, #64 - 3239 00c6 E254 strb r2, [r4, r3] -1851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3240 .loc 1 1851 0 - 3241 00c8 0125 movs r5, #1 - 3242 00ca 30E0 b .L228 - 3243 .LVL259: - 3244 .L239: -1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3245 .loc 1 1858 0 - 3246 00cc 228D ldrh r2, [r4, #40] - 3247 00ce D2B2 uxtb r2, r2 - 3248 00d0 1E4B ldr r3, .L240+16 - 3249 00d2 0093 str r3, [sp] - 3250 00d4 3B00 movs r3, r7 - 3251 00d6 3100 movs r1, r6 - 3252 00d8 2000 movs r0, r4 - 3253 .LVL260: - 3254 00da FFF7FEFF bl I2C_TransferConfig - 3255 .LVL261: -1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3256 .loc 1 1861 0 - 3257 00de 638D ldrh r3, [r4, #42] - 3258 00e0 228D ldrh r2, [r4, #40] - 3259 00e2 9B1A subs r3, r3, r2 - 3260 00e4 9BB2 uxth r3, r3 - 3261 00e6 6385 strh r3, [r4, #42] -1864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3262 .loc 1 1864 0 - 3263 00e8 4023 movs r3, #64 - 3264 00ea 0022 movs r2, #0 - 3265 00ec E254 strb r2, [r4, r3] -1870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3266 .loc 1 1870 0 - 3267 00ee 1121 movs r1, #17 - 3268 00f0 2000 movs r0, r4 - 3269 00f2 FFF7FEFF bl I2C_Enable_IRQ - 3270 .LVL262: -1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3271 .loc 1 1873 0 - 3272 00f6 2268 ldr r2, [r4] - 3273 00f8 1168 ldr r1, [r2] - 3274 00fa 8023 movs r3, #128 - ARM GAS /tmp/ccFk2Nxo.s page 180 - - - 3275 00fc DB01 lsls r3, r3, #7 - 3276 00fe 0B43 orrs r3, r1 - 3277 0100 1360 str r3, [r2] - 3278 0102 14E0 b .L228 - 3279 .LVL263: - 3280 .L231: -1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3281 .loc 1 1893 0 - 3282 0104 124B ldr r3, .L240+20 - 3283 0106 6363 str r3, [r4, #52] -1897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3284 .loc 1 1897 0 - 3285 0108 8023 movs r3, #128 - 3286 010a D2B2 uxtb r2, r2 - 3287 010c 0F49 ldr r1, .L240+16 - 3288 .LVL264: - 3289 010e 0091 str r1, [sp] - 3290 .LVL265: - 3291 0110 9B04 lsls r3, r3, #18 - 3292 0112 3100 movs r1, r6 - 3293 0114 2000 movs r0, r4 - 3294 0116 FFF7FEFF bl I2C_TransferConfig - 3295 .LVL266: -1900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3296 .loc 1 1900 0 - 3297 011a 4023 movs r3, #64 - 3298 011c 0022 movs r2, #0 - 3299 011e E254 strb r2, [r4, r3] -1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3300 .loc 1 1908 0 - 3301 0120 0121 movs r1, #1 - 3302 0122 2000 movs r0, r4 - 3303 0124 FFF7FEFF bl I2C_Enable_IRQ - 3304 .LVL267: -1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3305 .loc 1 1911 0 - 3306 0128 0025 movs r5, #0 - 3307 012a 00E0 b .L228 - 3308 .LVL268: - 3309 .L235: -1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3310 .loc 1 1915 0 - 3311 012c 0225 movs r5, #2 - 3312 .LVL269: - 3313 .L228: -1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3314 .loc 1 1917 0 - 3315 012e 2800 movs r0, r5 - 3316 0130 03B0 add sp, sp, #12 - 3317 @ sp needed - 3318 .LVL270: - 3319 0132 F0BD pop {r4, r5, r6, r7, pc} - 3320 .LVL271: - 3321 .L236: -1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3322 .loc 1 1795 0 - 3323 0134 0225 movs r5, #2 - ARM GAS /tmp/ccFk2Nxo.s page 181 - - - 3324 0136 FAE7 b .L228 - 3325 .L237: -1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3326 .loc 1 1799 0 - 3327 0138 0225 movs r5, #2 - 3328 013a F8E7 b .L228 - 3329 .L241: - 3330 .align 2 - 3331 .L240: - 3332 013c 0000FFFF .word -65536 - 3333 0140 00000000 .word I2C_Master_ISR_DMA - 3334 0144 00000000 .word I2C_DMAMasterTransmitCplt - 3335 0148 00000000 .word I2C_DMAError - 3336 014c 00200080 .word -2147475456 - 3337 0150 00000000 .word I2C_Master_ISR_IT - 3338 .cfi_endproc - 3339 .LFE52: - 3341 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits - 3342 .align 1 - 3343 .global HAL_I2C_Master_Receive_DMA - 3344 .syntax unified - 3345 .code 16 - 3346 .thumb_func - 3347 .fpu softvfp - 3349 HAL_I2C_Master_Receive_DMA: - 3350 .LFB53: -1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; - 3351 .loc 1 1930 0 - 3352 .cfi_startproc - 3353 @ args = 0, pretend = 0, frame = 0 - 3354 @ frame_needed = 0, uses_anonymous_args = 0 - 3355 .LVL272: - 3356 0000 F0B5 push {r4, r5, r6, r7, lr} - 3357 .LCFI29: - 3358 .cfi_def_cfa_offset 20 - 3359 .cfi_offset 4, -20 - 3360 .cfi_offset 5, -16 - 3361 .cfi_offset 6, -12 - 3362 .cfi_offset 7, -8 - 3363 .cfi_offset 14, -4 - 3364 0002 83B0 sub sp, sp, #12 - 3365 .LCFI30: - 3366 .cfi_def_cfa_offset 32 - 3367 0004 0400 movs r4, r0 - 3368 0006 0E00 movs r6, r1 -1934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3369 .loc 1 1934 0 - 3370 0008 4121 movs r1, #65 - 3371 .LVL273: - 3372 000a 415C ldrb r1, [r0, r1] - 3373 000c 2029 cmp r1, #32 - 3374 000e 00D0 beq .LCB3355 - 3375 0010 8BE0 b .L250 @long jump - 3376 .LCB3355: -1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3377 .loc 1 1936 0 - 3378 0012 0168 ldr r1, [r0] - ARM GAS /tmp/ccFk2Nxo.s page 182 - - - 3379 0014 8969 ldr r1, [r1, #24] - 3380 0016 0904 lsls r1, r1, #16 - 3381 0018 00D5 bpl .LCB3361 - 3382 001a 8AE0 b .L251 @long jump - 3383 .LCB3361: -1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3384 .loc 1 1942 0 - 3385 001c 4021 movs r1, #64 - 3386 001e 415C ldrb r1, [r0, r1] - 3387 0020 0129 cmp r1, #1 - 3388 0022 00D1 bne .LCB3365 - 3389 0024 87E0 b .L252 @long jump - 3390 .LCB3365: -1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3391 .loc 1 1942 0 is_stmt 0 discriminator 2 - 3392 0026 4021 movs r1, #64 - 3393 0028 0120 movs r0, #1 - 3394 .LVL274: - 3395 002a 6054 strb r0, [r4, r1] -1944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 3396 .loc 1 1944 0 is_stmt 1 discriminator 2 - 3397 002c 0131 adds r1, r1, #1 - 3398 002e 2130 adds r0, r0, #33 - 3399 0030 6054 strb r0, [r4, r1] -1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 3400 .loc 1 1945 0 discriminator 2 - 3401 0032 0131 adds r1, r1, #1 - 3402 0034 1238 subs r0, r0, #18 - 3403 0036 6054 strb r0, [r4, r1] -1946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3404 .loc 1 1946 0 discriminator 2 - 3405 0038 0021 movs r1, #0 - 3406 003a 6164 str r1, [r4, #68] -1949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 3407 .loc 1 1949 0 discriminator 2 - 3408 003c 6262 str r2, [r4, #36] -1950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 3409 .loc 1 1950 0 discriminator 2 - 3410 003e 6385 strh r3, [r4, #42] -1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; - 3411 .loc 1 1951 0 discriminator 2 - 3412 0040 3E4B ldr r3, .L255 - 3413 .LVL275: - 3414 0042 E362 str r3, [r4, #44] - 3415 .LVL276: -1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3416 .loc 1 1952 0 discriminator 2 - 3417 0044 3E4B ldr r3, .L255+4 - 3418 0046 6363 str r3, [r4, #52] -1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3419 .loc 1 1954 0 discriminator 2 - 3420 0048 638D ldrh r3, [r4, #42] - 3421 004a 9BB2 uxth r3, r3 - 3422 004c FF2B cmp r3, #255 - 3423 004e 29D9 bls .L244 -1956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 3424 .loc 1 1956 0 - ARM GAS /tmp/ccFk2Nxo.s page 183 - - - 3425 0050 FF23 movs r3, #255 - 3426 0052 2385 strh r3, [r4, #40] - 3427 .LVL277: -1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3428 .loc 1 1957 0 - 3429 0054 8027 movs r7, #128 - 3430 0056 7F04 lsls r7, r7, #17 - 3431 .LVL278: - 3432 .L245: -1965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3433 .loc 1 1965 0 - 3434 0058 218D ldrh r1, [r4, #40] - 3435 005a 0029 cmp r1, #0 - 3436 005c 51D0 beq .L246 -1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3437 .loc 1 1967 0 - 3438 005e E36B ldr r3, [r4, #60] - 3439 0060 002B cmp r3, #0 - 3440 0062 24D0 beq .L247 -1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3441 .loc 1 1970 0 - 3442 0064 3749 ldr r1, .L255+8 - 3443 0066 9962 str r1, [r3, #40] -1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3444 .loc 1 1973 0 - 3445 0068 E36B ldr r3, [r4, #60] - 3446 006a 3749 ldr r1, .L255+12 - 3447 006c 1963 str r1, [r3, #48] -1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; - 3448 .loc 1 1976 0 - 3449 006e E16B ldr r1, [r4, #60] - 3450 0070 0023 movs r3, #0 - 3451 0072 CB62 str r3, [r1, #44] -1977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3452 .loc 1 1977 0 - 3453 0074 E16B ldr r1, [r4, #60] - 3454 0076 4B63 str r3, [r1, #52] -1980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3455 .loc 1 1980 0 - 3456 0078 2168 ldr r1, [r4] - 3457 007a 2431 adds r1, r1, #36 - 3458 007c 238D ldrh r3, [r4, #40] - 3459 007e E06B ldr r0, [r4, #60] - 3460 0080 FFF7FEFF bl HAL_DMA_Start_IT - 3461 .LVL279: - 3462 0084 051E subs r5, r0, #0 - 3463 .LVL280: -1997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3464 .loc 1 1997 0 - 3465 0086 20D0 beq .L254 -2021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 3466 .loc 1 2021 0 - 3467 0088 4123 movs r3, #65 - 3468 008a 2022 movs r2, #32 - 3469 008c E254 strb r2, [r4, r3] -2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3470 .loc 1 2022 0 - ARM GAS /tmp/ccFk2Nxo.s page 184 - - - 3471 008e 0022 movs r2, #0 - 3472 0090 0133 adds r3, r3, #1 - 3473 0092 E254 strb r2, [r4, r3] -2025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3474 .loc 1 2025 0 - 3475 0094 636C ldr r3, [r4, #68] - 3476 0096 1021 movs r1, #16 - 3477 0098 0B43 orrs r3, r1 - 3478 009a 6364 str r3, [r4, #68] -2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3479 .loc 1 2028 0 - 3480 009c 4023 movs r3, #64 - 3481 009e E254 strb r2, [r4, r3] -2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3482 .loc 1 2030 0 - 3483 00a0 0125 movs r5, #1 - 3484 00a2 43E0 b .L243 - 3485 .LVL281: - 3486 .L244: -1961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; - 3487 .loc 1 1961 0 - 3488 00a4 638D ldrh r3, [r4, #42] - 3489 00a6 2385 strh r3, [r4, #40] - 3490 .LVL282: -1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3491 .loc 1 1962 0 - 3492 00a8 8027 movs r7, #128 - 3493 00aa BF04 lsls r7, r7, #18 - 3494 00ac D4E7 b .L245 - 3495 .LVL283: - 3496 .L247: -1985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 3497 .loc 1 1985 0 - 3498 00ae 4123 movs r3, #65 - 3499 00b0 2022 movs r2, #32 - 3500 .LVL284: - 3501 00b2 E254 strb r2, [r4, r3] - 3502 .LVL285: -1986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3503 .loc 1 1986 0 - 3504 00b4 0022 movs r2, #0 - 3505 00b6 0133 adds r3, r3, #1 - 3506 00b8 E254 strb r2, [r4, r3] -1989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3507 .loc 1 1989 0 - 3508 00ba 636C ldr r3, [r4, #68] - 3509 00bc 8021 movs r1, #128 - 3510 00be 0B43 orrs r3, r1 - 3511 00c0 6364 str r3, [r4, #68] -1992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3512 .loc 1 1992 0 - 3513 00c2 4023 movs r3, #64 - 3514 00c4 E254 strb r2, [r4, r3] -1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3515 .loc 1 1994 0 - 3516 00c6 0125 movs r5, #1 - 3517 00c8 30E0 b .L243 - ARM GAS /tmp/ccFk2Nxo.s page 185 - - - 3518 .LVL286: - 3519 .L254: -2001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3520 .loc 1 2001 0 - 3521 00ca 228D ldrh r2, [r4, #40] - 3522 00cc D2B2 uxtb r2, r2 - 3523 00ce 1F4B ldr r3, .L255+16 - 3524 00d0 0093 str r3, [sp] - 3525 00d2 3B00 movs r3, r7 - 3526 00d4 3100 movs r1, r6 - 3527 00d6 2000 movs r0, r4 - 3528 .LVL287: - 3529 00d8 FFF7FEFF bl I2C_TransferConfig - 3530 .LVL288: -2004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3531 .loc 1 2004 0 - 3532 00dc 638D ldrh r3, [r4, #42] - 3533 00de 228D ldrh r2, [r4, #40] - 3534 00e0 9B1A subs r3, r3, r2 - 3535 00e2 9BB2 uxth r3, r3 - 3536 00e4 6385 strh r3, [r4, #42] -2007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3537 .loc 1 2007 0 - 3538 00e6 4023 movs r3, #64 - 3539 00e8 0022 movs r2, #0 - 3540 00ea E254 strb r2, [r4, r3] -2013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3541 .loc 1 2013 0 - 3542 00ec 1121 movs r1, #17 - 3543 00ee 2000 movs r0, r4 - 3544 00f0 FFF7FEFF bl I2C_Enable_IRQ - 3545 .LVL289: -2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3546 .loc 1 2016 0 - 3547 00f4 2268 ldr r2, [r4] - 3548 00f6 1168 ldr r1, [r2] - 3549 00f8 8023 movs r3, #128 - 3550 00fa 1B02 lsls r3, r3, #8 - 3551 00fc 0B43 orrs r3, r1 - 3552 00fe 1360 str r3, [r2] - 3553 0100 14E0 b .L243 - 3554 .LVL290: - 3555 .L246: -2036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3556 .loc 1 2036 0 - 3557 0102 134B ldr r3, .L255+20 - 3558 0104 6363 str r3, [r4, #52] -2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3559 .loc 1 2040 0 - 3560 0106 8023 movs r3, #128 - 3561 0108 CAB2 uxtb r2, r1 - 3562 .LVL291: - 3563 010a 1049 ldr r1, .L255+16 - 3564 010c 0091 str r1, [sp] - 3565 .LVL292: - 3566 010e 9B04 lsls r3, r3, #18 - 3567 0110 3100 movs r1, r6 - ARM GAS /tmp/ccFk2Nxo.s page 186 - - - 3568 0112 2000 movs r0, r4 - 3569 0114 FFF7FEFF bl I2C_TransferConfig - 3570 .LVL293: -2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3571 .loc 1 2043 0 - 3572 0118 4023 movs r3, #64 - 3573 011a 0022 movs r2, #0 - 3574 011c E254 strb r2, [r4, r3] -2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3575 .loc 1 2051 0 - 3576 011e 0121 movs r1, #1 - 3577 0120 2000 movs r0, r4 - 3578 0122 FFF7FEFF bl I2C_Enable_IRQ - 3579 .LVL294: -2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3580 .loc 1 2054 0 - 3581 0126 0025 movs r5, #0 - 3582 0128 00E0 b .L243 - 3583 .LVL295: - 3584 .L250: -2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3585 .loc 1 2058 0 - 3586 012a 0225 movs r5, #2 - 3587 .LVL296: - 3588 .L243: -2060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3589 .loc 1 2060 0 - 3590 012c 2800 movs r0, r5 - 3591 012e 03B0 add sp, sp, #12 - 3592 @ sp needed - 3593 .LVL297: - 3594 0130 F0BD pop {r4, r5, r6, r7, pc} - 3595 .LVL298: - 3596 .L251: -1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3597 .loc 1 1938 0 - 3598 0132 0225 movs r5, #2 - 3599 0134 FAE7 b .L243 - 3600 .L252: -1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3601 .loc 1 1942 0 - 3602 0136 0225 movs r5, #2 - 3603 0138 F8E7 b .L243 - 3604 .L256: - 3605 013a C046 .align 2 - 3606 .L255: - 3607 013c 0000FFFF .word -65536 - 3608 0140 00000000 .word I2C_Master_ISR_DMA - 3609 0144 00000000 .word I2C_DMAMasterReceiveCplt - 3610 0148 00000000 .word I2C_DMAError - 3611 014c 00240080 .word -2147474432 - 3612 0150 00000000 .word I2C_Master_ISR_IT - 3613 .cfi_endproc - 3614 .LFE53: - 3616 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits - 3617 .align 1 - 3618 .global HAL_I2C_Slave_Transmit_DMA - ARM GAS /tmp/ccFk2Nxo.s page 187 - - - 3619 .syntax unified - 3620 .code 16 - 3621 .thumb_func - 3622 .fpu softvfp - 3624 HAL_I2C_Slave_Transmit_DMA: - 3625 .LFB54: -2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; - 3626 .loc 1 2071 0 - 3627 .cfi_startproc - 3628 @ args = 0, pretend = 0, frame = 0 - 3629 @ frame_needed = 0, uses_anonymous_args = 0 - 3630 .LVL299: - 3631 0000 70B5 push {r4, r5, r6, lr} - 3632 .LCFI31: - 3633 .cfi_def_cfa_offset 16 - 3634 .cfi_offset 4, -16 - 3635 .cfi_offset 5, -12 - 3636 .cfi_offset 6, -8 - 3637 .cfi_offset 14, -4 - 3638 0002 0400 movs r4, r0 -2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3639 .loc 1 2074 0 - 3640 0004 4123 movs r3, #65 - 3641 0006 C35C ldrb r3, [r0, r3] - 3642 0008 202B cmp r3, #32 - 3643 000a 63D1 bne .L264 -2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3644 .loc 1 2076 0 - 3645 000c 0029 cmp r1, #0 - 3646 000e 3BD0 beq .L259 -2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3647 .loc 1 2076 0 is_stmt 0 discriminator 1 - 3648 0010 002A cmp r2, #0 - 3649 0012 39D0 beq .L259 -2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3650 .loc 1 2082 0 is_stmt 1 - 3651 0014 4023 movs r3, #64 - 3652 0016 C35C ldrb r3, [r0, r3] - 3653 0018 012B cmp r3, #1 - 3654 001a 5ED0 beq .L265 -2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3655 .loc 1 2082 0 is_stmt 0 discriminator 2 - 3656 001c 4023 movs r3, #64 - 3657 001e 0120 movs r0, #1 - 3658 .LVL300: - 3659 0020 E054 strb r0, [r4, r3] -2084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 3660 .loc 1 2084 0 is_stmt 1 discriminator 2 - 3661 0022 0133 adds r3, r3, #1 - 3662 0024 2030 adds r0, r0, #32 - 3663 0026 E054 strb r0, [r4, r3] -2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 3664 .loc 1 2085 0 discriminator 2 - 3665 0028 0133 adds r3, r3, #1 - 3666 002a 0138 subs r0, r0, #1 - 3667 002c E054 strb r0, [r4, r3] -2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 188 - - - 3668 .loc 1 2086 0 discriminator 2 - 3669 002e 0023 movs r3, #0 - 3670 0030 6364 str r3, [r4, #68] -2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 3671 .loc 1 2089 0 discriminator 2 - 3672 0032 6162 str r1, [r4, #36] -2090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; - 3673 .loc 1 2090 0 discriminator 2 - 3674 0034 6285 strh r2, [r4, #42] -2091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 3675 .loc 1 2091 0 discriminator 2 - 3676 0036 638D ldrh r3, [r4, #42] - 3677 0038 2385 strh r3, [r4, #40] -2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; - 3678 .loc 1 2092 0 discriminator 2 - 3679 003a 294B ldr r3, .L268 - 3680 003c E362 str r3, [r4, #44] -2093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3681 .loc 1 2093 0 discriminator 2 - 3682 003e 294B ldr r3, .L268+4 - 3683 0040 6363 str r3, [r4, #52] -2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3684 .loc 1 2095 0 discriminator 2 - 3685 0042 A36B ldr r3, [r4, #56] - 3686 0044 002B cmp r3, #0 - 3687 0046 24D0 beq .L261 -2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3688 .loc 1 2098 0 - 3689 0048 274A ldr r2, .L268+8 - 3690 .LVL301: - 3691 004a 9A62 str r2, [r3, #40] -2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3692 .loc 1 2101 0 - 3693 004c A36B ldr r3, [r4, #56] - 3694 004e 274A ldr r2, .L268+12 - 3695 0050 1A63 str r2, [r3, #48] -2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; - 3696 .loc 1 2104 0 - 3697 0052 A26B ldr r2, [r4, #56] - 3698 0054 0023 movs r3, #0 - 3699 0056 D362 str r3, [r2, #44] -2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3700 .loc 1 2105 0 - 3701 0058 A26B ldr r2, [r4, #56] - 3702 005a 5363 str r3, [r2, #52] -2108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3703 .loc 1 2108 0 - 3704 005c 2268 ldr r2, [r4] - 3705 005e 2832 adds r2, r2, #40 - 3706 0060 238D ldrh r3, [r4, #40] - 3707 0062 A06B ldr r0, [r4, #56] - 3708 0064 FFF7FEFF bl HAL_DMA_Start_IT - 3709 .LVL302: - 3710 0068 051E subs r5, r0, #0 - 3711 .LVL303: -2125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3712 .loc 1 2125 0 - ARM GAS /tmp/ccFk2Nxo.s page 189 - - - 3713 006a 20D0 beq .L267 -2145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 3714 .loc 1 2145 0 - 3715 006c 4123 movs r3, #65 - 3716 006e 2822 movs r2, #40 - 3717 0070 E254 strb r2, [r4, r3] -2146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3718 .loc 1 2146 0 - 3719 0072 0022 movs r2, #0 - 3720 0074 0133 adds r3, r3, #1 - 3721 0076 E254 strb r2, [r4, r3] -2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3722 .loc 1 2149 0 - 3723 0078 636C ldr r3, [r4, #68] - 3724 007a 1021 movs r1, #16 - 3725 007c 0B43 orrs r3, r1 - 3726 007e 6364 str r3, [r4, #68] -2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3727 .loc 1 2152 0 - 3728 0080 4023 movs r3, #64 - 3729 0082 E254 strb r2, [r4, r3] -2154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3730 .loc 1 2154 0 - 3731 0084 0125 movs r5, #1 - 3732 0086 26E0 b .L258 - 3733 .LVL304: - 3734 .L259: -2078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 3735 .loc 1 2078 0 - 3736 0088 8023 movs r3, #128 - 3737 008a 9B00 lsls r3, r3, #2 - 3738 008c 6364 str r3, [r4, #68] -2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3739 .loc 1 2079 0 - 3740 008e 0125 movs r5, #1 - 3741 0090 21E0 b .L258 - 3742 .LVL305: - 3743 .L261: -2113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 3744 .loc 1 2113 0 - 3745 0092 4123 movs r3, #65 - 3746 0094 2822 movs r2, #40 - 3747 .LVL306: - 3748 0096 E254 strb r2, [r4, r3] -2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3749 .loc 1 2114 0 - 3750 0098 0022 movs r2, #0 - 3751 009a 0133 adds r3, r3, #1 - 3752 009c E254 strb r2, [r4, r3] -2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3753 .loc 1 2117 0 - 3754 009e 636C ldr r3, [r4, #68] - 3755 00a0 8021 movs r1, #128 - 3756 .LVL307: - 3757 00a2 0B43 orrs r3, r1 - 3758 00a4 6364 str r3, [r4, #68] -2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 190 - - - 3759 .loc 1 2120 0 - 3760 00a6 4023 movs r3, #64 - 3761 00a8 E254 strb r2, [r4, r3] -2122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3762 .loc 1 2122 0 - 3763 00aa 0125 movs r5, #1 - 3764 00ac 13E0 b .L258 - 3765 .LVL308: - 3766 .L267: -2128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3767 .loc 1 2128 0 - 3768 00ae 2268 ldr r2, [r4] - 3769 00b0 5368 ldr r3, [r2, #4] - 3770 00b2 0F49 ldr r1, .L268+16 - 3771 00b4 0B40 ands r3, r1 - 3772 00b6 5360 str r3, [r2, #4] -2131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3773 .loc 1 2131 0 - 3774 00b8 4023 movs r3, #64 - 3775 00ba 0022 movs r2, #0 - 3776 00bc E254 strb r2, [r4, r3] -2137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3777 .loc 1 2137 0 - 3778 00be 0421 movs r1, #4 - 3779 00c0 2000 movs r0, r4 - 3780 .LVL309: - 3781 00c2 FFF7FEFF bl I2C_Enable_IRQ - 3782 .LVL310: -2140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3783 .loc 1 2140 0 - 3784 00c6 2268 ldr r2, [r4] - 3785 00c8 1168 ldr r1, [r2] - 3786 00ca 8023 movs r3, #128 - 3787 00cc DB01 lsls r3, r3, #7 - 3788 00ce 0B43 orrs r3, r1 - 3789 00d0 1360 str r3, [r2] -2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3790 .loc 1 2157 0 - 3791 00d2 00E0 b .L258 - 3792 .LVL311: - 3793 .L264: -2161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3794 .loc 1 2161 0 - 3795 00d4 0225 movs r5, #2 - 3796 .LVL312: - 3797 .L258: -2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3798 .loc 1 2163 0 - 3799 00d6 2800 movs r0, r5 - 3800 @ sp needed - 3801 .LVL313: - 3802 00d8 70BD pop {r4, r5, r6, pc} - 3803 .LVL314: - 3804 .L265: -2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3805 .loc 1 2082 0 - 3806 00da 0225 movs r5, #2 - ARM GAS /tmp/ccFk2Nxo.s page 191 - - - 3807 00dc FBE7 b .L258 - 3808 .L269: - 3809 00de C046 .align 2 - 3810 .L268: - 3811 00e0 0000FFFF .word -65536 - 3812 00e4 00000000 .word I2C_Slave_ISR_DMA - 3813 00e8 00000000 .word I2C_DMASlaveTransmitCplt - 3814 00ec 00000000 .word I2C_DMAError - 3815 00f0 FF7FFFFF .word -32769 - 3816 .cfi_endproc - 3817 .LFE54: - 3819 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits - 3820 .align 1 - 3821 .global HAL_I2C_Slave_Receive_DMA - 3822 .syntax unified - 3823 .code 16 - 3824 .thumb_func - 3825 .fpu softvfp - 3827 HAL_I2C_Slave_Receive_DMA: - 3828 .LFB55: -2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; - 3829 .loc 1 2174 0 - 3830 .cfi_startproc - 3831 @ args = 0, pretend = 0, frame = 0 - 3832 @ frame_needed = 0, uses_anonymous_args = 0 - 3833 .LVL315: - 3834 0000 70B5 push {r4, r5, r6, lr} - 3835 .LCFI32: - 3836 .cfi_def_cfa_offset 16 - 3837 .cfi_offset 4, -16 - 3838 .cfi_offset 5, -12 - 3839 .cfi_offset 6, -8 - 3840 .cfi_offset 14, -4 - 3841 0002 0400 movs r4, r0 -2177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3842 .loc 1 2177 0 - 3843 0004 4123 movs r3, #65 - 3844 0006 C35C ldrb r3, [r0, r3] - 3845 0008 202B cmp r3, #32 - 3846 000a 65D1 bne .L277 -2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3847 .loc 1 2179 0 - 3848 000c 0029 cmp r1, #0 - 3849 000e 3DD0 beq .L272 -2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3850 .loc 1 2179 0 is_stmt 0 discriminator 1 - 3851 0010 002A cmp r2, #0 - 3852 0012 3BD0 beq .L272 -2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3853 .loc 1 2185 0 is_stmt 1 - 3854 0014 4023 movs r3, #64 - 3855 0016 C35C ldrb r3, [r0, r3] - 3856 0018 012B cmp r3, #1 - 3857 001a 60D0 beq .L278 -2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3858 .loc 1 2185 0 is_stmt 0 discriminator 2 - 3859 001c 4023 movs r3, #64 - ARM GAS /tmp/ccFk2Nxo.s page 192 - - - 3860 001e 0120 movs r0, #1 - 3861 .LVL316: - 3862 0020 E054 strb r0, [r4, r3] -2187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 3863 .loc 1 2187 0 is_stmt 1 discriminator 2 - 3864 0022 0133 adds r3, r3, #1 - 3865 0024 2130 adds r0, r0, #33 - 3866 0026 E054 strb r0, [r4, r3] -2188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 3867 .loc 1 2188 0 discriminator 2 - 3868 0028 0133 adds r3, r3, #1 - 3869 002a 0238 subs r0, r0, #2 - 3870 002c E054 strb r0, [r4, r3] -2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3871 .loc 1 2189 0 discriminator 2 - 3872 002e 0023 movs r3, #0 - 3873 0030 6364 str r3, [r4, #68] -2192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 3874 .loc 1 2192 0 discriminator 2 - 3875 0032 6162 str r1, [r4, #36] -2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; - 3876 .loc 1 2193 0 discriminator 2 - 3877 0034 6285 strh r2, [r4, #42] -2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 3878 .loc 1 2194 0 discriminator 2 - 3879 0036 638D ldrh r3, [r4, #42] - 3880 0038 2385 strh r3, [r4, #40] -2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; - 3881 .loc 1 2195 0 discriminator 2 - 3882 003a 2A4B ldr r3, .L281 - 3883 003c E362 str r3, [r4, #44] -2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3884 .loc 1 2196 0 discriminator 2 - 3885 003e 2A4B ldr r3, .L281+4 - 3886 0040 6363 str r3, [r4, #52] -2198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3887 .loc 1 2198 0 discriminator 2 - 3888 0042 E36B ldr r3, [r4, #60] - 3889 0044 002B cmp r3, #0 - 3890 0046 26D0 beq .L274 -2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3891 .loc 1 2201 0 - 3892 0048 284A ldr r2, .L281+8 - 3893 .LVL317: - 3894 004a 9A62 str r2, [r3, #40] -2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3895 .loc 1 2204 0 - 3896 004c E36B ldr r3, [r4, #60] - 3897 004e 284A ldr r2, .L281+12 - 3898 0050 1A63 str r2, [r3, #48] -2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; - 3899 .loc 1 2207 0 - 3900 0052 E26B ldr r2, [r4, #60] - 3901 0054 0023 movs r3, #0 - 3902 0056 D362 str r3, [r2, #44] -2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3903 .loc 1 2208 0 - ARM GAS /tmp/ccFk2Nxo.s page 193 - - - 3904 0058 E26B ldr r2, [r4, #60] - 3905 005a 5363 str r3, [r2, #52] -2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3906 .loc 1 2211 0 - 3907 005c 2068 ldr r0, [r4] - 3908 005e 2430 adds r0, r0, #36 - 3909 0060 238D ldrh r3, [r4, #40] - 3910 0062 0A00 movs r2, r1 - 3911 0064 0100 movs r1, r0 - 3912 .LVL318: - 3913 0066 E06B ldr r0, [r4, #60] - 3914 0068 FFF7FEFF bl HAL_DMA_Start_IT - 3915 .LVL319: - 3916 006c 051E subs r5, r0, #0 - 3917 .LVL320: -2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 3918 .loc 1 2228 0 - 3919 006e 20D0 beq .L280 -2248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 3920 .loc 1 2248 0 - 3921 0070 4123 movs r3, #65 - 3922 0072 2822 movs r2, #40 - 3923 0074 E254 strb r2, [r4, r3] -2249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3924 .loc 1 2249 0 - 3925 0076 0022 movs r2, #0 - 3926 0078 0133 adds r3, r3, #1 - 3927 007a E254 strb r2, [r4, r3] -2252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3928 .loc 1 2252 0 - 3929 007c 636C ldr r3, [r4, #68] - 3930 007e 1021 movs r1, #16 - 3931 0080 0B43 orrs r3, r1 - 3932 0082 6364 str r3, [r4, #68] -2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3933 .loc 1 2255 0 - 3934 0084 4023 movs r3, #64 - 3935 0086 E254 strb r2, [r4, r3] -2257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3936 .loc 1 2257 0 - 3937 0088 0125 movs r5, #1 - 3938 008a 26E0 b .L271 - 3939 .LVL321: - 3940 .L272: -2181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 3941 .loc 1 2181 0 - 3942 008c 8023 movs r3, #128 - 3943 008e 9B00 lsls r3, r3, #2 - 3944 0090 6364 str r3, [r4, #68] -2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3945 .loc 1 2182 0 - 3946 0092 0125 movs r5, #1 - 3947 0094 21E0 b .L271 - 3948 .LVL322: - 3949 .L274: -2216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 3950 .loc 1 2216 0 - ARM GAS /tmp/ccFk2Nxo.s page 194 - - - 3951 0096 4123 movs r3, #65 - 3952 0098 2822 movs r2, #40 - 3953 .LVL323: - 3954 009a E254 strb r2, [r4, r3] -2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3955 .loc 1 2217 0 - 3956 009c 0022 movs r2, #0 - 3957 009e 0133 adds r3, r3, #1 - 3958 00a0 E254 strb r2, [r4, r3] -2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3959 .loc 1 2220 0 - 3960 00a2 636C ldr r3, [r4, #68] - 3961 00a4 8021 movs r1, #128 - 3962 .LVL324: - 3963 00a6 0B43 orrs r3, r1 - 3964 00a8 6364 str r3, [r4, #68] -2223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3965 .loc 1 2223 0 - 3966 00aa 4023 movs r3, #64 - 3967 00ac E254 strb r2, [r4, r3] -2225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3968 .loc 1 2225 0 - 3969 00ae 0125 movs r5, #1 - 3970 00b0 13E0 b .L271 - 3971 .LVL325: - 3972 .L280: -2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3973 .loc 1 2231 0 - 3974 00b2 2268 ldr r2, [r4] - 3975 00b4 5368 ldr r3, [r2, #4] - 3976 00b6 0F49 ldr r1, .L281+16 - 3977 00b8 0B40 ands r3, r1 - 3978 00ba 5360 str r3, [r2, #4] -2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3979 .loc 1 2234 0 - 3980 00bc 4023 movs r3, #64 - 3981 00be 0022 movs r2, #0 - 3982 00c0 E254 strb r2, [r4, r3] -2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 3983 .loc 1 2240 0 - 3984 00c2 0421 movs r1, #4 - 3985 00c4 2000 movs r0, r4 - 3986 .LVL326: - 3987 00c6 FFF7FEFF bl I2C_Enable_IRQ - 3988 .LVL327: -2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3989 .loc 1 2243 0 - 3990 00ca 2268 ldr r2, [r4] - 3991 00cc 1168 ldr r1, [r2] - 3992 00ce 8023 movs r3, #128 - 3993 00d0 1B02 lsls r3, r3, #8 - 3994 00d2 0B43 orrs r3, r1 - 3995 00d4 1360 str r3, [r2] -2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 3996 .loc 1 2260 0 - 3997 00d6 00E0 b .L271 - 3998 .LVL328: - ARM GAS /tmp/ccFk2Nxo.s page 195 - - - 3999 .L277: -2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4000 .loc 1 2264 0 - 4001 00d8 0225 movs r5, #2 - 4002 .LVL329: - 4003 .L271: -2266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 4004 .loc 1 2266 0 - 4005 00da 2800 movs r0, r5 - 4006 @ sp needed - 4007 .LVL330: - 4008 00dc 70BD pop {r4, r5, r6, pc} - 4009 .LVL331: - 4010 .L278: -2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4011 .loc 1 2185 0 - 4012 00de 0225 movs r5, #2 - 4013 00e0 FBE7 b .L271 - 4014 .L282: - 4015 00e2 C046 .align 2 - 4016 .L281: - 4017 00e4 0000FFFF .word -65536 - 4018 00e8 00000000 .word I2C_Slave_ISR_DMA - 4019 00ec 00000000 .word I2C_DMASlaveReceiveCplt - 4020 00f0 00000000 .word I2C_DMAError - 4021 00f4 FF7FFFFF .word -32769 - 4022 .cfi_endproc - 4023 .LFE55: - 4025 .section .text.HAL_I2C_Mem_Write,"ax",%progbits - 4026 .align 1 - 4027 .global HAL_I2C_Mem_Write - 4028 .syntax unified - 4029 .code 16 - 4030 .thumb_func - 4031 .fpu softvfp - 4033 HAL_I2C_Mem_Write: - 4034 .LFB56: -2281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 4035 .loc 1 2281 0 - 4036 .cfi_startproc - 4037 @ args = 12, pretend = 0, frame = 16 - 4038 @ frame_needed = 0, uses_anonymous_args = 0 - 4039 .LVL332: - 4040 0000 F0B5 push {r4, r5, r6, r7, lr} - 4041 .LCFI33: - 4042 .cfi_def_cfa_offset 20 - 4043 .cfi_offset 4, -20 - 4044 .cfi_offset 5, -16 - 4045 .cfi_offset 6, -12 - 4046 .cfi_offset 7, -8 - 4047 .cfi_offset 14, -4 - 4048 0002 87B0 sub sp, sp, #28 - 4049 .LCFI34: - 4050 .cfi_def_cfa_offset 48 - 4051 0004 0500 movs r5, r0 - 4052 0006 0391 str r1, [sp, #12] - 4053 0008 0492 str r2, [sp, #16] - ARM GAS /tmp/ccFk2Nxo.s page 196 - - - 4054 000a 0593 str r3, [sp, #20] - 4055 000c 0CAB add r3, sp, #48 - 4056 .LVL333: - 4057 000e 10CB ldmia r3!, {r4} - 4058 .LVL334: - 4059 0010 1E88 ldrh r6, [r3] -2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4060 .loc 1 2287 0 - 4061 0012 4123 movs r3, #65 - 4062 .LVL335: - 4063 0014 C35C ldrb r3, [r0, r3] - 4064 0016 202B cmp r3, #32 - 4065 0018 00D0 beq .LCB4017 - 4066 001a B3E0 b .L293 @long jump - 4067 .LCB4017: -2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4068 .loc 1 2289 0 - 4069 001c 002C cmp r4, #0 - 4070 001e 18D0 beq .L285 -2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4071 .loc 1 2289 0 is_stmt 0 discriminator 1 - 4072 0020 002E cmp r6, #0 - 4073 0022 16D0 beq .L285 -2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4074 .loc 1 2296 0 is_stmt 1 - 4075 0024 4023 movs r3, #64 - 4076 0026 C35C ldrb r3, [r0, r3] - 4077 0028 012B cmp r3, #1 - 4078 002a 00D1 bne .LCB4025 - 4079 002c ADE0 b .L294 @long jump - 4080 .LCB4025: -2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4081 .loc 1 2296 0 is_stmt 0 discriminator 2 - 4082 002e 4023 movs r3, #64 - 4083 0030 0122 movs r2, #1 - 4084 .LVL336: - 4085 0032 C254 strb r2, [r0, r3] -2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4086 .loc 1 2299 0 is_stmt 1 discriminator 2 - 4087 0034 FFF7FEFF bl HAL_GetTick - 4088 .LVL337: - 4089 0038 0700 movs r7, r0 - 4090 .LVL338: -2301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4091 .loc 1 2301 0 discriminator 2 - 4092 003a 8021 movs r1, #128 - 4093 003c 0090 str r0, [sp] - 4094 003e 1923 movs r3, #25 - 4095 0040 0122 movs r2, #1 - 4096 0042 0902 lsls r1, r1, #8 - 4097 0044 2800 movs r0, r5 - 4098 .LVL339: - 4099 0046 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 4100 .LVL340: - 4101 004a 0028 cmp r0, #0 - 4102 004c 06D0 beq .L299 -2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 197 - - - 4103 .loc 1 2303 0 - 4104 004e 0120 movs r0, #1 - 4105 0050 99E0 b .L284 - 4106 .LVL341: - 4107 .L285: -2291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 4108 .loc 1 2291 0 - 4109 0052 8023 movs r3, #128 - 4110 0054 9B00 lsls r3, r3, #2 - 4111 0056 6B64 str r3, [r5, #68] -2292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4112 .loc 1 2292 0 - 4113 0058 0120 movs r0, #1 - 4114 .LVL342: - 4115 005a 94E0 b .L284 - 4116 .LVL343: - 4117 .L299: -2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; - 4118 .loc 1 2306 0 - 4119 005c 4123 movs r3, #65 - 4120 005e 2122 movs r2, #33 - 4121 0060 EA54 strb r2, [r5, r3] -2307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 4122 .loc 1 2307 0 - 4123 0062 0133 adds r3, r3, #1 - 4124 0064 1F32 adds r2, r2, #31 - 4125 0066 EA54 strb r2, [r5, r3] -2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4126 .loc 1 2308 0 - 4127 0068 0023 movs r3, #0 - 4128 006a 6B64 str r3, [r5, #68] -2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 4129 .loc 1 2311 0 - 4130 006c 6C62 str r4, [r5, #36] -2312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 4131 .loc 1 2312 0 - 4132 006e 6E85 strh r6, [r5, #42] -2313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4133 .loc 1 2313 0 - 4134 0070 6B63 str r3, [r5, #52] -2316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4135 .loc 1 2316 0 - 4136 0072 0197 str r7, [sp, #4] - 4137 0074 0E9B ldr r3, [sp, #56] - 4138 0076 0093 str r3, [sp] - 4139 0078 059B ldr r3, [sp, #20] - 4140 007a 049A ldr r2, [sp, #16] - 4141 007c 0399 ldr r1, [sp, #12] - 4142 007e 2800 movs r0, r5 - 4143 0080 FFF7FEFF bl I2C_RequestMemoryWrite - 4144 .LVL344: - 4145 0084 0028 cmp r0, #0 - 4146 0086 0FD1 bne .L300 -2324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4147 .loc 1 2324 0 - 4148 0088 6B8D ldrh r3, [r5, #42] - 4149 008a 9BB2 uxth r3, r3 - ARM GAS /tmp/ccFk2Nxo.s page 198 - - - 4150 008c FF2B cmp r3, #255 - 4151 008e 10D9 bls .L288 -2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST - 4152 .loc 1 2326 0 - 4153 0090 FF23 movs r3, #255 - 4154 0092 2B85 strh r3, [r5, #40] -2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4155 .loc 1 2327 0 - 4156 0094 7F3B subs r3, r3, #127 - 4157 0096 0022 movs r2, #0 - 4158 0098 0092 str r2, [sp] - 4159 009a 5B04 lsls r3, r3, #17 - 4160 009c FF32 adds r2, r2, #255 - 4161 009e 0399 ldr r1, [sp, #12] - 4162 00a0 2800 movs r0, r5 - 4163 00a2 FFF7FEFF bl I2C_TransferConfig - 4164 .LVL345: - 4165 00a6 21E0 b .L292 - 4166 .L300: -2319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 4167 .loc 1 2319 0 - 4168 00a8 4023 movs r3, #64 - 4169 00aa 0022 movs r2, #0 - 4170 00ac EA54 strb r2, [r5, r3] -2320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4171 .loc 1 2320 0 - 4172 00ae 0120 movs r0, #1 - 4173 00b0 69E0 b .L284 - 4174 .L288: -2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS - 4175 .loc 1 2331 0 - 4176 00b2 6A8D ldrh r2, [r5, #42] - 4177 00b4 92B2 uxth r2, r2 - 4178 00b6 2A85 strh r2, [r5, #40] -2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4179 .loc 1 2332 0 - 4180 00b8 8023 movs r3, #128 - 4181 00ba D2B2 uxtb r2, r2 - 4182 00bc 0021 movs r1, #0 - 4183 00be 0091 str r1, [sp] - 4184 00c0 9B04 lsls r3, r3, #18 - 4185 00c2 0399 ldr r1, [sp, #12] - 4186 00c4 2800 movs r0, r5 - 4187 00c6 FFF7FEFF bl I2C_TransferConfig - 4188 .LVL346: - 4189 00ca 0FE0 b .L292 - 4190 .L291: -2367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST - 4191 .loc 1 2367 0 - 4192 00cc 6A8D ldrh r2, [r5, #42] - 4193 00ce 92B2 uxth r2, r2 - 4194 00d0 2A85 strh r2, [r5, #40] -2368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4195 .loc 1 2368 0 - 4196 00d2 8023 movs r3, #128 - 4197 00d4 D2B2 uxtb r2, r2 - 4198 00d6 0021 movs r1, #0 - ARM GAS /tmp/ccFk2Nxo.s page 199 - - - 4199 00d8 0091 str r1, [sp] - 4200 00da 9B04 lsls r3, r3, #18 - 4201 00dc 0399 ldr r1, [sp, #12] - 4202 00de 2800 movs r0, r5 - 4203 00e0 FFF7FEFF bl I2C_TransferConfig - 4204 .LVL347: - 4205 .L290: -2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4206 .loc 1 2373 0 - 4207 00e4 6B8D ldrh r3, [r5, #42] - 4208 00e6 9BB2 uxth r3, r3 - 4209 00e8 002B cmp r3, #0 - 4210 00ea 34D0 beq .L301 - 4211 .L292: -2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4212 .loc 1 2338 0 - 4213 00ec 3A00 movs r2, r7 - 4214 00ee 0E99 ldr r1, [sp, #56] - 4215 00f0 2800 movs r0, r5 - 4216 00f2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout - 4217 .LVL348: - 4218 00f6 0028 cmp r0, #0 - 4219 00f8 49D1 bne .L296 -2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4220 .loc 1 2344 0 - 4221 00fa 2B68 ldr r3, [r5] - 4222 00fc 6A6A ldr r2, [r5, #36] - 4223 00fe 1278 ldrb r2, [r2] - 4224 0100 9A62 str r2, [r3, #40] -2347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4225 .loc 1 2347 0 - 4226 0102 6B6A ldr r3, [r5, #36] - 4227 0104 0133 adds r3, r3, #1 - 4228 0106 6B62 str r3, [r5, #36] -2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; - 4229 .loc 1 2349 0 - 4230 0108 6B8D ldrh r3, [r5, #42] - 4231 010a 013B subs r3, r3, #1 - 4232 010c 9BB2 uxth r3, r3 - 4233 010e 6B85 strh r3, [r5, #42] -2350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4234 .loc 1 2350 0 - 4235 0110 2B8D ldrh r3, [r5, #40] - 4236 0112 013B subs r3, r3, #1 - 4237 0114 9BB2 uxth r3, r3 - 4238 0116 2B85 strh r3, [r5, #40] -2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4239 .loc 1 2352 0 - 4240 0118 6A8D ldrh r2, [r5, #42] - 4241 011a 92B2 uxth r2, r2 - 4242 011c 002A cmp r2, #0 - 4243 011e E1D0 beq .L290 -2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4244 .loc 1 2352 0 is_stmt 0 discriminator 1 - 4245 0120 002B cmp r3, #0 - 4246 0122 DFD1 bne .L290 -2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 200 - - - 4247 .loc 1 2355 0 is_stmt 1 - 4248 0124 0097 str r7, [sp] - 4249 0126 0E9B ldr r3, [sp, #56] - 4250 0128 0022 movs r2, #0 - 4251 012a 8021 movs r1, #128 - 4252 012c 2800 movs r0, r5 - 4253 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 4254 .LVL349: - 4255 0132 0028 cmp r0, #0 - 4256 0134 2DD1 bne .L297 -2360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4257 .loc 1 2360 0 - 4258 0136 6B8D ldrh r3, [r5, #42] - 4259 0138 9BB2 uxth r3, r3 - 4260 013a FF2B cmp r3, #255 - 4261 013c C6D9 bls .L291 -2362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA - 4262 .loc 1 2362 0 - 4263 013e FF23 movs r3, #255 - 4264 0140 2B85 strh r3, [r5, #40] -2363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4265 .loc 1 2363 0 - 4266 0142 7F3B subs r3, r3, #127 - 4267 0144 0022 movs r2, #0 - 4268 0146 0092 str r2, [sp] - 4269 0148 5B04 lsls r3, r3, #17 - 4270 014a FF32 adds r2, r2, #255 - 4271 014c 0399 ldr r1, [sp, #12] - 4272 014e 2800 movs r0, r5 - 4273 0150 FFF7FEFF bl I2C_TransferConfig - 4274 .LVL350: - 4275 0154 C6E7 b .L290 - 4276 .L301: -2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4277 .loc 1 2377 0 - 4278 0156 3A00 movs r2, r7 - 4279 0158 0E99 ldr r1, [sp, #56] - 4280 015a 2800 movs r0, r5 - 4281 015c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout - 4282 .LVL351: - 4283 0160 0028 cmp r0, #0 - 4284 0162 18D1 bne .L298 -2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4285 .loc 1 2383 0 - 4286 0164 2B68 ldr r3, [r5] - 4287 0166 2022 movs r2, #32 - 4288 0168 DA61 str r2, [r3, #28] -2386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4289 .loc 1 2386 0 - 4290 016a 2968 ldr r1, [r5] - 4291 016c 4B68 ldr r3, [r1, #4] - 4292 016e 0B4C ldr r4, .L302 - 4293 0170 2340 ands r3, r4 - 4294 0172 4B60 str r3, [r1, #4] -2388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 4295 .loc 1 2388 0 - 4296 0174 4123 movs r3, #65 - ARM GAS /tmp/ccFk2Nxo.s page 201 - - - 4297 0176 EA54 strb r2, [r5, r3] -2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4298 .loc 1 2389 0 - 4299 0178 0023 movs r3, #0 - 4300 017a 2232 adds r2, r2, #34 - 4301 017c AB54 strb r3, [r5, r2] -2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4302 .loc 1 2392 0 - 4303 017e 023A subs r2, r2, #2 - 4304 0180 AB54 strb r3, [r5, r2] -2394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4305 .loc 1 2394 0 - 4306 0182 00E0 b .L284 - 4307 .LVL352: - 4308 .L293: -2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4309 .loc 1 2398 0 - 4310 0184 0220 movs r0, #2 - 4311 .LVL353: - 4312 .L284: -2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4313 .loc 1 2400 0 - 4314 0186 07B0 add sp, sp, #28 - 4315 @ sp needed - 4316 .LVL354: - 4317 0188 F0BD pop {r4, r5, r6, r7, pc} - 4318 .LVL355: - 4319 .L294: -2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4320 .loc 1 2296 0 - 4321 018a 0220 movs r0, #2 - 4322 .LVL356: - 4323 018c FBE7 b .L284 - 4324 .LVL357: - 4325 .L296: -2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4326 .loc 1 2340 0 - 4327 018e 0120 movs r0, #1 - 4328 0190 F9E7 b .L284 - 4329 .L297: -2357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4330 .loc 1 2357 0 - 4331 0192 0120 movs r0, #1 - 4332 0194 F7E7 b .L284 - 4333 .L298: -2379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4334 .loc 1 2379 0 - 4335 0196 0120 movs r0, #1 - 4336 0198 F5E7 b .L284 - 4337 .L303: - 4338 019a C046 .align 2 - 4339 .L302: - 4340 019c 00E800FE .word -33495040 - 4341 .cfi_endproc - 4342 .LFE56: - 4344 .section .text.HAL_I2C_Mem_Read,"ax",%progbits - 4345 .align 1 - ARM GAS /tmp/ccFk2Nxo.s page 202 - - - 4346 .global HAL_I2C_Mem_Read - 4347 .syntax unified - 4348 .code 16 - 4349 .thumb_func - 4350 .fpu softvfp - 4352 HAL_I2C_Mem_Read: - 4353 .LFB57: -2416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 4354 .loc 1 2416 0 - 4355 .cfi_startproc - 4356 @ args = 12, pretend = 0, frame = 16 - 4357 @ frame_needed = 0, uses_anonymous_args = 0 - 4358 .LVL358: - 4359 0000 F0B5 push {r4, r5, r6, r7, lr} - 4360 .LCFI35: - 4361 .cfi_def_cfa_offset 20 - 4362 .cfi_offset 4, -20 - 4363 .cfi_offset 5, -16 - 4364 .cfi_offset 6, -12 - 4365 .cfi_offset 7, -8 - 4366 .cfi_offset 14, -4 - 4367 0002 87B0 sub sp, sp, #28 - 4368 .LCFI36: - 4369 .cfi_def_cfa_offset 48 - 4370 0004 0400 movs r4, r0 - 4371 0006 0391 str r1, [sp, #12] - 4372 0008 0492 str r2, [sp, #16] - 4373 000a 0593 str r3, [sp, #20] - 4374 000c 0CAB add r3, sp, #48 - 4375 .LVL359: - 4376 000e 20CB ldmia r3!, {r5} - 4377 .LVL360: - 4378 0010 1F88 ldrh r7, [r3] -2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4379 .loc 1 2422 0 - 4380 0012 4123 movs r3, #65 - 4381 .LVL361: - 4382 0014 C35C ldrb r3, [r0, r3] - 4383 0016 202B cmp r3, #32 - 4384 0018 00D0 beq .LCB4365 - 4385 001a B5E0 b .L314 @long jump - 4386 .LCB4365: -2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4387 .loc 1 2424 0 - 4388 001c 002D cmp r5, #0 - 4389 001e 18D0 beq .L306 -2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4390 .loc 1 2424 0 is_stmt 0 discriminator 1 - 4391 0020 002F cmp r7, #0 - 4392 0022 16D0 beq .L306 -2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4393 .loc 1 2431 0 is_stmt 1 - 4394 0024 4023 movs r3, #64 - 4395 0026 C35C ldrb r3, [r0, r3] - 4396 0028 012B cmp r3, #1 - 4397 002a 00D1 bne .LCB4373 - 4398 002c AFE0 b .L315 @long jump - ARM GAS /tmp/ccFk2Nxo.s page 203 - - - 4399 .LCB4373: -2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4400 .loc 1 2431 0 is_stmt 0 discriminator 2 - 4401 002e 4023 movs r3, #64 - 4402 0030 0122 movs r2, #1 - 4403 .LVL362: - 4404 0032 C254 strb r2, [r0, r3] -2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4405 .loc 1 2434 0 is_stmt 1 discriminator 2 - 4406 0034 FFF7FEFF bl HAL_GetTick - 4407 .LVL363: - 4408 0038 0600 movs r6, r0 - 4409 .LVL364: -2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4410 .loc 1 2436 0 discriminator 2 - 4411 003a 8021 movs r1, #128 - 4412 003c 0090 str r0, [sp] - 4413 003e 1923 movs r3, #25 - 4414 0040 0122 movs r2, #1 - 4415 0042 0902 lsls r1, r1, #8 - 4416 0044 2000 movs r0, r4 - 4417 .LVL365: - 4418 0046 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 4419 .LVL366: - 4420 004a 0028 cmp r0, #0 - 4421 004c 06D0 beq .L320 -2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4422 .loc 1 2438 0 - 4423 004e 0120 movs r0, #1 - 4424 0050 9BE0 b .L305 - 4425 .LVL367: - 4426 .L306: -2426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 4427 .loc 1 2426 0 - 4428 0052 8023 movs r3, #128 - 4429 0054 9B00 lsls r3, r3, #2 - 4430 0056 6364 str r3, [r4, #68] -2427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4431 .loc 1 2427 0 - 4432 0058 0120 movs r0, #1 - 4433 .LVL368: - 4434 005a 96E0 b .L305 - 4435 .LVL369: - 4436 .L320: -2441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; - 4437 .loc 1 2441 0 - 4438 005c 4123 movs r3, #65 - 4439 005e 2222 movs r2, #34 - 4440 0060 E254 strb r2, [r4, r3] -2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 4441 .loc 1 2442 0 - 4442 0062 0133 adds r3, r3, #1 - 4443 0064 1E32 adds r2, r2, #30 - 4444 0066 E254 strb r2, [r4, r3] -2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4445 .loc 1 2443 0 - 4446 0068 0023 movs r3, #0 - ARM GAS /tmp/ccFk2Nxo.s page 204 - - - 4447 006a 6364 str r3, [r4, #68] -2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 4448 .loc 1 2446 0 - 4449 006c 6562 str r5, [r4, #36] -2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 4450 .loc 1 2447 0 - 4451 006e 6785 strh r7, [r4, #42] -2448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4452 .loc 1 2448 0 - 4453 0070 6363 str r3, [r4, #52] -2451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4454 .loc 1 2451 0 - 4455 0072 0196 str r6, [sp, #4] - 4456 0074 0E9B ldr r3, [sp, #56] - 4457 0076 0093 str r3, [sp] - 4458 0078 059B ldr r3, [sp, #20] - 4459 007a 049A ldr r2, [sp, #16] - 4460 007c 0399 ldr r1, [sp, #12] - 4461 007e 2000 movs r0, r4 - 4462 0080 FFF7FEFF bl I2C_RequestMemoryRead - 4463 .LVL370: - 4464 0084 0028 cmp r0, #0 - 4465 0086 0FD1 bne .L321 -2460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4466 .loc 1 2460 0 - 4467 0088 638D ldrh r3, [r4, #42] - 4468 008a 9BB2 uxth r3, r3 - 4469 008c FF2B cmp r3, #255 - 4470 008e 10D9 bls .L309 -2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S - 4471 .loc 1 2462 0 - 4472 0090 FF23 movs r3, #255 - 4473 0092 2385 strh r3, [r4, #40] -2463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4474 .loc 1 2463 0 - 4475 0094 7F3B subs r3, r3, #127 - 4476 0096 424A ldr r2, .L323 - 4477 0098 0092 str r2, [sp] - 4478 009a 5B04 lsls r3, r3, #17 - 4479 009c FF22 movs r2, #255 - 4480 009e 0399 ldr r1, [sp, #12] - 4481 00a0 2000 movs r0, r4 - 4482 00a2 FFF7FEFF bl I2C_TransferConfig - 4483 .LVL371: - 4484 00a6 21E0 b .L313 - 4485 .L321: -2454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 4486 .loc 1 2454 0 - 4487 00a8 4023 movs r3, #64 - 4488 00aa 0022 movs r2, #0 - 4489 00ac E254 strb r2, [r4, r3] -2455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4490 .loc 1 2455 0 - 4491 00ae 0120 movs r0, #1 - 4492 00b0 6BE0 b .L305 - 4493 .L309: -2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ - ARM GAS /tmp/ccFk2Nxo.s page 205 - - - 4494 .loc 1 2467 0 - 4495 00b2 628D ldrh r2, [r4, #42] - 4496 00b4 92B2 uxth r2, r2 - 4497 00b6 2285 strh r2, [r4, #40] -2468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4498 .loc 1 2468 0 - 4499 00b8 8023 movs r3, #128 - 4500 00ba D2B2 uxtb r2, r2 - 4501 00bc 3849 ldr r1, .L323 - 4502 00be 0091 str r1, [sp] - 4503 00c0 9B04 lsls r3, r3, #18 - 4504 00c2 0399 ldr r1, [sp, #12] - 4505 00c4 2000 movs r0, r4 - 4506 00c6 FFF7FEFF bl I2C_TransferConfig - 4507 .LVL372: - 4508 00ca 0FE0 b .L313 - 4509 .L312: -2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST - 4510 .loc 1 2503 0 - 4511 00cc 628D ldrh r2, [r4, #42] - 4512 00ce 92B2 uxth r2, r2 - 4513 00d0 2285 strh r2, [r4, #40] -2504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4514 .loc 1 2504 0 - 4515 00d2 8023 movs r3, #128 - 4516 00d4 D2B2 uxtb r2, r2 - 4517 00d6 0021 movs r1, #0 - 4518 00d8 0091 str r1, [sp] - 4519 00da 9B04 lsls r3, r3, #18 - 4520 00dc 0399 ldr r1, [sp, #12] - 4521 00de 2000 movs r0, r4 - 4522 00e0 FFF7FEFF bl I2C_TransferConfig - 4523 .LVL373: - 4524 .L311: -2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4525 .loc 1 2508 0 - 4526 00e4 638D ldrh r3, [r4, #42] - 4527 00e6 9BB2 uxth r3, r3 - 4528 00e8 002B cmp r3, #0 - 4529 00ea 36D0 beq .L322 - 4530 .L313: -2474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4531 .loc 1 2474 0 - 4532 00ec 0096 str r6, [sp] - 4533 00ee 0E9B ldr r3, [sp, #56] - 4534 00f0 0022 movs r2, #0 - 4535 00f2 0421 movs r1, #4 - 4536 00f4 2000 movs r0, r4 - 4537 00f6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 4538 .LVL374: - 4539 00fa 0028 cmp r0, #0 - 4540 00fc 49D1 bne .L317 -2480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4541 .loc 1 2480 0 - 4542 00fe 2368 ldr r3, [r4] - 4543 0100 5B6A ldr r3, [r3, #36] - 4544 0102 626A ldr r2, [r4, #36] - ARM GAS /tmp/ccFk2Nxo.s page 206 - - - 4545 0104 1370 strb r3, [r2] -2483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4546 .loc 1 2483 0 - 4547 0106 636A ldr r3, [r4, #36] - 4548 0108 0133 adds r3, r3, #1 - 4549 010a 6362 str r3, [r4, #36] -2485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; - 4550 .loc 1 2485 0 - 4551 010c 238D ldrh r3, [r4, #40] - 4552 010e 013B subs r3, r3, #1 - 4553 0110 9BB2 uxth r3, r3 - 4554 0112 2385 strh r3, [r4, #40] -2486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4555 .loc 1 2486 0 - 4556 0114 628D ldrh r2, [r4, #42] - 4557 0116 013A subs r2, r2, #1 - 4558 0118 92B2 uxth r2, r2 - 4559 011a 6285 strh r2, [r4, #42] -2488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4560 .loc 1 2488 0 - 4561 011c 628D ldrh r2, [r4, #42] - 4562 011e 92B2 uxth r2, r2 - 4563 0120 002A cmp r2, #0 - 4564 0122 DFD0 beq .L311 -2488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4565 .loc 1 2488 0 is_stmt 0 discriminator 1 - 4566 0124 002B cmp r3, #0 - 4567 0126 DDD1 bne .L311 -2491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4568 .loc 1 2491 0 is_stmt 1 - 4569 0128 0096 str r6, [sp] - 4570 012a 0E9B ldr r3, [sp, #56] - 4571 012c 0022 movs r2, #0 - 4572 012e 8021 movs r1, #128 - 4573 0130 2000 movs r0, r4 - 4574 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 4575 .LVL375: - 4576 0136 0028 cmp r0, #0 - 4577 0138 2DD1 bne .L318 -2496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4578 .loc 1 2496 0 - 4579 013a 638D ldrh r3, [r4, #42] - 4580 013c 9BB2 uxth r3, r3 - 4581 013e FF2B cmp r3, #255 - 4582 0140 C4D9 bls .L312 -2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST - 4583 .loc 1 2498 0 - 4584 0142 FF23 movs r3, #255 - 4585 0144 2385 strh r3, [r4, #40] -2499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4586 .loc 1 2499 0 - 4587 0146 7F3B subs r3, r3, #127 - 4588 0148 0022 movs r2, #0 - 4589 014a 0092 str r2, [sp] - 4590 014c 5B04 lsls r3, r3, #17 - 4591 014e FF32 adds r2, r2, #255 - 4592 0150 0399 ldr r1, [sp, #12] - ARM GAS /tmp/ccFk2Nxo.s page 207 - - - 4593 0152 2000 movs r0, r4 - 4594 0154 FFF7FEFF bl I2C_TransferConfig - 4595 .LVL376: - 4596 0158 C4E7 b .L311 - 4597 .L322: -2512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4598 .loc 1 2512 0 - 4599 015a 3200 movs r2, r6 - 4600 015c 0E99 ldr r1, [sp, #56] - 4601 015e 2000 movs r0, r4 - 4602 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout - 4603 .LVL377: - 4604 0164 0028 cmp r0, #0 - 4605 0166 18D1 bne .L319 -2518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4606 .loc 1 2518 0 - 4607 0168 2368 ldr r3, [r4] - 4608 016a 2022 movs r2, #32 - 4609 016c DA61 str r2, [r3, #28] -2521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4610 .loc 1 2521 0 - 4611 016e 2168 ldr r1, [r4] - 4612 0170 4B68 ldr r3, [r1, #4] - 4613 0172 0C4D ldr r5, .L323+4 - 4614 0174 2B40 ands r3, r5 - 4615 0176 4B60 str r3, [r1, #4] -2523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 4616 .loc 1 2523 0 - 4617 0178 4123 movs r3, #65 - 4618 017a E254 strb r2, [r4, r3] -2524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4619 .loc 1 2524 0 - 4620 017c 0023 movs r3, #0 - 4621 017e 2232 adds r2, r2, #34 - 4622 0180 A354 strb r3, [r4, r2] -2527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4623 .loc 1 2527 0 - 4624 0182 023A subs r2, r2, #2 - 4625 0184 A354 strb r3, [r4, r2] -2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4626 .loc 1 2529 0 - 4627 0186 00E0 b .L305 - 4628 .LVL378: - 4629 .L314: -2533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4630 .loc 1 2533 0 - 4631 0188 0220 movs r0, #2 - 4632 .LVL379: - 4633 .L305: -2535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 4634 .loc 1 2535 0 - 4635 018a 07B0 add sp, sp, #28 - 4636 @ sp needed - 4637 .LVL380: - 4638 018c F0BD pop {r4, r5, r6, r7, pc} - 4639 .LVL381: - 4640 .L315: - ARM GAS /tmp/ccFk2Nxo.s page 208 - - -2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4641 .loc 1 2431 0 - 4642 018e 0220 movs r0, #2 - 4643 .LVL382: - 4644 0190 FBE7 b .L305 - 4645 .LVL383: - 4646 .L317: -2476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4647 .loc 1 2476 0 - 4648 0192 0120 movs r0, #1 - 4649 0194 F9E7 b .L305 - 4650 .L318: -2493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4651 .loc 1 2493 0 - 4652 0196 0120 movs r0, #1 - 4653 0198 F7E7 b .L305 - 4654 .L319: -2514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4655 .loc 1 2514 0 - 4656 019a 0120 movs r0, #1 - 4657 019c F5E7 b .L305 - 4658 .L324: - 4659 019e C046 .align 2 - 4660 .L323: - 4661 01a0 00240080 .word -2147474432 - 4662 01a4 00E800FE .word -33495040 - 4663 .cfi_endproc - 4664 .LFE57: - 4666 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits - 4667 .align 1 - 4668 .global HAL_I2C_Mem_Write_IT - 4669 .syntax unified - 4670 .code 16 - 4671 .thumb_func - 4672 .fpu softvfp - 4674 HAL_I2C_Mem_Write_IT: - 4675 .LFB58: -2549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 4676 .loc 1 2549 0 - 4677 .cfi_startproc - 4678 @ args = 8, pretend = 0, frame = 16 - 4679 @ frame_needed = 0, uses_anonymous_args = 0 - 4680 .LVL384: - 4681 0000 F0B5 push {r4, r5, r6, r7, lr} - 4682 .LCFI37: - 4683 .cfi_def_cfa_offset 20 - 4684 .cfi_offset 4, -20 - 4685 .cfi_offset 5, -16 - 4686 .cfi_offset 6, -12 - 4687 .cfi_offset 7, -8 - 4688 .cfi_offset 14, -4 - 4689 0002 87B0 sub sp, sp, #28 - 4690 .LCFI38: - 4691 .cfi_def_cfa_offset 48 - 4692 0004 0400 movs r4, r0 - 4693 0006 0391 str r1, [sp, #12] - 4694 0008 0492 str r2, [sp, #16] - ARM GAS /tmp/ccFk2Nxo.s page 209 - - - 4695 000a 0593 str r3, [sp, #20] - 4696 000c 0CAB add r3, sp, #48 - 4697 .LVL385: - 4698 000e 80CB ldmia r3!, {r7} - 4699 .LVL386: - 4700 0010 1D88 ldrh r5, [r3] -2556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4701 .loc 1 2556 0 - 4702 0012 4123 movs r3, #65 - 4703 .LVL387: - 4704 0014 C35C ldrb r3, [r0, r3] - 4705 0016 202B cmp r3, #32 - 4706 0018 4FD1 bne .L332 -2558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4707 .loc 1 2558 0 - 4708 001a 002F cmp r7, #0 - 4709 001c 33D0 beq .L327 -2558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4710 .loc 1 2558 0 is_stmt 0 discriminator 1 - 4711 001e 002D cmp r5, #0 - 4712 0020 31D0 beq .L327 -2564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4713 .loc 1 2564 0 is_stmt 1 - 4714 0022 0368 ldr r3, [r0] - 4715 0024 9B69 ldr r3, [r3, #24] - 4716 0026 1B04 lsls r3, r3, #16 - 4717 0028 4BD4 bmi .L333 -2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4718 .loc 1 2570 0 - 4719 002a 4023 movs r3, #64 - 4720 002c C35C ldrb r3, [r0, r3] - 4721 002e 012B cmp r3, #1 - 4722 0030 49D0 beq .L334 -2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4723 .loc 1 2570 0 is_stmt 0 discriminator 2 - 4724 0032 4026 movs r6, #64 - 4725 0034 0123 movs r3, #1 - 4726 0036 8355 strb r3, [r0, r6] -2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4727 .loc 1 2573 0 is_stmt 1 discriminator 2 - 4728 0038 FFF7FEFF bl HAL_GetTick - 4729 .LVL388: -2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; - 4730 .loc 1 2575 0 discriminator 2 - 4731 003c 4123 movs r3, #65 - 4732 003e 2122 movs r2, #33 - 4733 0040 E254 strb r2, [r4, r3] -2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 4734 .loc 1 2576 0 discriminator 2 - 4735 0042 0133 adds r3, r3, #1 - 4736 0044 E654 strb r6, [r4, r3] -2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4737 .loc 1 2577 0 discriminator 2 - 4738 0046 0023 movs r3, #0 - 4739 0048 6364 str r3, [r4, #68] -2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 4740 .loc 1 2580 0 discriminator 2 - ARM GAS /tmp/ccFk2Nxo.s page 210 - - - 4741 004a 6762 str r7, [r4, #36] -2581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 4742 .loc 1 2581 0 discriminator 2 - 4743 004c 6585 strh r5, [r4, #42] -2582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; - 4744 .loc 1 2582 0 discriminator 2 - 4745 004e 1F4B ldr r3, .L335 - 4746 0050 E362 str r3, [r4, #44] -2583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4747 .loc 1 2583 0 discriminator 2 - 4748 0052 1F4B ldr r3, .L335+4 - 4749 0054 6363 str r3, [r4, #52] -2585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4750 .loc 1 2585 0 discriminator 2 - 4751 0056 638D ldrh r3, [r4, #42] - 4752 0058 9BB2 uxth r3, r3 - 4753 005a FF2B cmp r3, #255 - 4754 005c 18D9 bls .L329 -2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 4755 .loc 1 2587 0 - 4756 005e FF23 movs r3, #255 - 4757 0060 2385 strh r3, [r4, #40] - 4758 .LVL389: -2588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4759 .loc 1 2588 0 - 4760 0062 8027 movs r7, #128 - 4761 0064 7F04 lsls r7, r7, #17 - 4762 .LVL390: - 4763 .L330: -2597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4764 .loc 1 2597 0 - 4765 0066 0190 str r0, [sp, #4] - 4766 0068 1923 movs r3, #25 - 4767 006a 0093 str r3, [sp] - 4768 006c 059B ldr r3, [sp, #20] - 4769 006e 049A ldr r2, [sp, #16] - 4770 0070 0399 ldr r1, [sp, #12] - 4771 0072 2000 movs r0, r4 - 4772 .LVL391: - 4773 0074 FFF7FEFF bl I2C_RequestMemoryWrite - 4774 .LVL392: - 4775 0078 051E subs r5, r0, #0 - 4776 007a 0ED0 beq .L331 -2600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 4777 .loc 1 2600 0 - 4778 007c 4023 movs r3, #64 - 4779 007e 0022 movs r2, #0 - 4780 0080 E254 strb r2, [r4, r3] -2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4781 .loc 1 2601 0 - 4782 0082 0125 movs r5, #1 - 4783 0084 1AE0 b .L326 - 4784 .LVL393: - 4785 .L327: -2560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 4786 .loc 1 2560 0 - 4787 0086 8023 movs r3, #128 - ARM GAS /tmp/ccFk2Nxo.s page 211 - - - 4788 0088 9B00 lsls r3, r3, #2 - 4789 008a 6364 str r3, [r4, #68] -2561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4790 .loc 1 2561 0 - 4791 008c 0125 movs r5, #1 - 4792 008e 15E0 b .L326 - 4793 .LVL394: - 4794 .L329: -2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; - 4795 .loc 1 2592 0 - 4796 0090 638D ldrh r3, [r4, #42] - 4797 0092 2385 strh r3, [r4, #40] - 4798 .LVL395: -2593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4799 .loc 1 2593 0 - 4800 0094 8027 movs r7, #128 - 4801 0096 BF04 lsls r7, r7, #18 - 4802 0098 E5E7 b .L330 - 4803 .LVL396: - 4804 .L331: -2605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4805 .loc 1 2605 0 - 4806 009a 228D ldrh r2, [r4, #40] - 4807 009c D2B2 uxtb r2, r2 - 4808 009e 0026 movs r6, #0 - 4809 00a0 0096 str r6, [sp] - 4810 00a2 3B00 movs r3, r7 - 4811 00a4 0399 ldr r1, [sp, #12] - 4812 00a6 2000 movs r0, r4 - 4813 00a8 FFF7FEFF bl I2C_TransferConfig - 4814 .LVL397: -2608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4815 .loc 1 2608 0 - 4816 00ac 4023 movs r3, #64 - 4817 00ae E654 strb r6, [r4, r3] -2617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4818 .loc 1 2617 0 - 4819 00b0 0121 movs r1, #1 - 4820 00b2 2000 movs r0, r4 - 4821 00b4 FFF7FEFF bl I2C_Enable_IRQ - 4822 .LVL398: -2619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4823 .loc 1 2619 0 - 4824 00b8 00E0 b .L326 - 4825 .LVL399: - 4826 .L332: -2623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4827 .loc 1 2623 0 - 4828 00ba 0225 movs r5, #2 - 4829 .LVL400: - 4830 .L326: -2625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4831 .loc 1 2625 0 - 4832 00bc 2800 movs r0, r5 - 4833 00be 07B0 add sp, sp, #28 - 4834 @ sp needed - 4835 .LVL401: - ARM GAS /tmp/ccFk2Nxo.s page 212 - - - 4836 00c0 F0BD pop {r4, r5, r6, r7, pc} - 4837 .LVL402: - 4838 .L333: -2566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4839 .loc 1 2566 0 - 4840 00c2 0225 movs r5, #2 - 4841 00c4 FAE7 b .L326 - 4842 .L334: -2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4843 .loc 1 2570 0 - 4844 00c6 0225 movs r5, #2 - 4845 00c8 F8E7 b .L326 - 4846 .L336: - 4847 00ca C046 .align 2 - 4848 .L335: - 4849 00cc 0000FFFF .word -65536 - 4850 00d0 00000000 .word I2C_Master_ISR_IT - 4851 .cfi_endproc - 4852 .LFE58: - 4854 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits - 4855 .align 1 - 4856 .global HAL_I2C_Mem_Read_IT - 4857 .syntax unified - 4858 .code 16 - 4859 .thumb_func - 4860 .fpu softvfp - 4862 HAL_I2C_Mem_Read_IT: - 4863 .LFB59: -2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 4864 .loc 1 2640 0 - 4865 .cfi_startproc - 4866 @ args = 8, pretend = 0, frame = 16 - 4867 @ frame_needed = 0, uses_anonymous_args = 0 - 4868 .LVL403: - 4869 0000 F0B5 push {r4, r5, r6, r7, lr} - 4870 .LCFI39: - 4871 .cfi_def_cfa_offset 20 - 4872 .cfi_offset 4, -20 - 4873 .cfi_offset 5, -16 - 4874 .cfi_offset 6, -12 - 4875 .cfi_offset 7, -8 - 4876 .cfi_offset 14, -4 - 4877 0002 87B0 sub sp, sp, #28 - 4878 .LCFI40: - 4879 .cfi_def_cfa_offset 48 - 4880 0004 0600 movs r6, r0 - 4881 0006 0391 str r1, [sp, #12] - 4882 0008 0492 str r2, [sp, #16] - 4883 000a 0593 str r3, [sp, #20] - 4884 000c 0CAB add r3, sp, #48 - 4885 .LVL404: - 4886 000e 80CB ldmia r3!, {r7} - 4887 .LVL405: - 4888 0010 1D88 ldrh r5, [r3] -2647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4889 .loc 1 2647 0 - 4890 0012 4123 movs r3, #65 - ARM GAS /tmp/ccFk2Nxo.s page 213 - - - 4891 .LVL406: - 4892 0014 C35C ldrb r3, [r0, r3] - 4893 0016 202B cmp r3, #32 - 4894 0018 50D1 bne .L344 -2649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4895 .loc 1 2649 0 - 4896 001a 002F cmp r7, #0 - 4897 001c 33D0 beq .L339 -2649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4898 .loc 1 2649 0 is_stmt 0 discriminator 1 - 4899 001e 002D cmp r5, #0 - 4900 0020 31D0 beq .L339 -2655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4901 .loc 1 2655 0 is_stmt 1 - 4902 0022 0368 ldr r3, [r0] - 4903 0024 9B69 ldr r3, [r3, #24] - 4904 0026 1B04 lsls r3, r3, #16 - 4905 0028 4CD4 bmi .L345 -2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4906 .loc 1 2661 0 - 4907 002a 4023 movs r3, #64 - 4908 002c C35C ldrb r3, [r0, r3] - 4909 002e 012B cmp r3, #1 - 4910 0030 4AD0 beq .L346 -2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4911 .loc 1 2661 0 is_stmt 0 discriminator 2 - 4912 0032 4024 movs r4, #64 - 4913 0034 0123 movs r3, #1 - 4914 0036 0355 strb r3, [r0, r4] -2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4915 .loc 1 2664 0 is_stmt 1 discriminator 2 - 4916 0038 FFF7FEFF bl HAL_GetTick - 4917 .LVL407: -2666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; - 4918 .loc 1 2666 0 discriminator 2 - 4919 003c 4123 movs r3, #65 - 4920 003e 2222 movs r2, #34 - 4921 0040 F254 strb r2, [r6, r3] -2667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 4922 .loc 1 2667 0 discriminator 2 - 4923 0042 0133 adds r3, r3, #1 - 4924 0044 F454 strb r4, [r6, r3] -2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4925 .loc 1 2668 0 discriminator 2 - 4926 0046 0023 movs r3, #0 - 4927 0048 7364 str r3, [r6, #68] -2671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 4928 .loc 1 2671 0 discriminator 2 - 4929 004a 7762 str r7, [r6, #36] -2672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 4930 .loc 1 2672 0 discriminator 2 - 4931 004c 7585 strh r5, [r6, #42] -2673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; - 4932 .loc 1 2673 0 discriminator 2 - 4933 004e 1F4B ldr r3, .L347 - 4934 0050 F362 str r3, [r6, #44] -2674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 214 - - - 4935 .loc 1 2674 0 discriminator 2 - 4936 0052 1F4B ldr r3, .L347+4 - 4937 0054 7363 str r3, [r6, #52] -2676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4938 .loc 1 2676 0 discriminator 2 - 4939 0056 738D ldrh r3, [r6, #42] - 4940 0058 9BB2 uxth r3, r3 - 4941 005a FF2B cmp r3, #255 - 4942 005c 18D9 bls .L341 -2678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 4943 .loc 1 2678 0 - 4944 005e FF23 movs r3, #255 - 4945 0060 3385 strh r3, [r6, #40] - 4946 .LVL408: -2679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4947 .loc 1 2679 0 - 4948 0062 8027 movs r7, #128 - 4949 0064 7F04 lsls r7, r7, #17 - 4950 .LVL409: - 4951 .L342: -2688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 4952 .loc 1 2688 0 - 4953 0066 0190 str r0, [sp, #4] - 4954 0068 1923 movs r3, #25 - 4955 006a 0093 str r3, [sp] - 4956 006c 059B ldr r3, [sp, #20] - 4957 006e 049A ldr r2, [sp, #16] - 4958 0070 0399 ldr r1, [sp, #12] - 4959 0072 3000 movs r0, r6 - 4960 .LVL410: - 4961 0074 FFF7FEFF bl I2C_RequestMemoryRead - 4962 .LVL411: - 4963 0078 051E subs r5, r0, #0 - 4964 007a 0ED0 beq .L343 -2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 4965 .loc 1 2691 0 - 4966 007c 4023 movs r3, #64 - 4967 007e 0022 movs r2, #0 - 4968 0080 F254 strb r2, [r6, r3] -2692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4969 .loc 1 2692 0 - 4970 0082 0125 movs r5, #1 - 4971 0084 1BE0 b .L338 - 4972 .LVL412: - 4973 .L339: -2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 4974 .loc 1 2651 0 - 4975 0086 8023 movs r3, #128 - 4976 0088 9B00 lsls r3, r3, #2 - 4977 008a 7364 str r3, [r6, #68] -2652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4978 .loc 1 2652 0 - 4979 008c 0125 movs r5, #1 - 4980 008e 16E0 b .L338 - 4981 .LVL413: - 4982 .L341: -2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; - ARM GAS /tmp/ccFk2Nxo.s page 215 - - - 4983 .loc 1 2683 0 - 4984 0090 738D ldrh r3, [r6, #42] - 4985 0092 3385 strh r3, [r6, #40] - 4986 .LVL414: -2684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 4987 .loc 1 2684 0 - 4988 0094 8027 movs r7, #128 - 4989 0096 BF04 lsls r7, r7, #18 - 4990 0098 E5E7 b .L342 - 4991 .LVL415: - 4992 .L343: -2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 4993 .loc 1 2696 0 - 4994 009a 328D ldrh r2, [r6, #40] - 4995 009c D2B2 uxtb r2, r2 - 4996 009e 0D4B ldr r3, .L347+8 - 4997 00a0 0093 str r3, [sp] - 4998 00a2 3B00 movs r3, r7 - 4999 00a4 0399 ldr r1, [sp, #12] - 5000 00a6 3000 movs r0, r6 - 5001 00a8 FFF7FEFF bl I2C_TransferConfig - 5002 .LVL416: -2699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5003 .loc 1 2699 0 - 5004 00ac 4023 movs r3, #64 - 5005 00ae 0022 movs r2, #0 - 5006 00b0 F254 strb r2, [r6, r3] -2708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5007 .loc 1 2708 0 - 5008 00b2 0221 movs r1, #2 - 5009 00b4 3000 movs r0, r6 - 5010 00b6 FFF7FEFF bl I2C_Enable_IRQ - 5011 .LVL417: -2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5012 .loc 1 2710 0 - 5013 00ba 00E0 b .L338 - 5014 .LVL418: - 5015 .L344: -2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5016 .loc 1 2714 0 - 5017 00bc 0225 movs r5, #2 - 5018 .LVL419: - 5019 .L338: -2716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** - 5020 .loc 1 2716 0 - 5021 00be 2800 movs r0, r5 - 5022 00c0 07B0 add sp, sp, #28 - 5023 @ sp needed - 5024 .LVL420: - 5025 00c2 F0BD pop {r4, r5, r6, r7, pc} - 5026 .LVL421: - 5027 .L345: -2657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5028 .loc 1 2657 0 - 5029 00c4 0225 movs r5, #2 - 5030 00c6 FAE7 b .L338 - 5031 .L346: - ARM GAS /tmp/ccFk2Nxo.s page 216 - - -2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5032 .loc 1 2661 0 - 5033 00c8 0225 movs r5, #2 - 5034 00ca F8E7 b .L338 - 5035 .L348: - 5036 .align 2 - 5037 .L347: - 5038 00cc 0000FFFF .word -65536 - 5039 00d0 00000000 .word I2C_Master_ISR_IT - 5040 00d4 00240080 .word -2147474432 - 5041 .cfi_endproc - 5042 .LFE59: - 5044 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits - 5045 .align 1 - 5046 .global HAL_I2C_Mem_Write_DMA - 5047 .syntax unified - 5048 .code 16 - 5049 .thumb_func - 5050 .fpu softvfp - 5052 HAL_I2C_Mem_Write_DMA: - 5053 .LFB60: -2730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 5054 .loc 1 2730 0 - 5055 .cfi_startproc - 5056 @ args = 8, pretend = 0, frame = 16 - 5057 @ frame_needed = 0, uses_anonymous_args = 0 - 5058 .LVL422: - 5059 0000 F0B5 push {r4, r5, r6, r7, lr} - 5060 .LCFI41: - 5061 .cfi_def_cfa_offset 20 - 5062 .cfi_offset 4, -20 - 5063 .cfi_offset 5, -16 - 5064 .cfi_offset 6, -12 - 5065 .cfi_offset 7, -8 - 5066 .cfi_offset 14, -4 - 5067 0002 CE46 mov lr, r9 - 5068 0004 00B5 push {lr} - 5069 .LCFI42: - 5070 .cfi_def_cfa_offset 24 - 5071 .cfi_offset 9, -24 - 5072 0006 86B0 sub sp, sp, #24 - 5073 .LCFI43: - 5074 .cfi_def_cfa_offset 48 - 5075 0008 0400 movs r4, r0 - 5076 000a 0391 str r1, [sp, #12] - 5077 000c 0492 str r2, [sp, #16] - 5078 000e 0593 str r3, [sp, #20] - 5079 0010 0CAB add r3, sp, #48 - 5080 .LVL423: - 5081 0012 40CB ldmia r3!, {r6} - 5082 .LVL424: - 5083 0014 1F88 ldrh r7, [r3] -2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5084 .loc 1 2738 0 - 5085 0016 4123 movs r3, #65 - 5086 .LVL425: - 5087 0018 C35C ldrb r3, [r0, r3] - ARM GAS /tmp/ccFk2Nxo.s page 217 - - - 5088 001a 202B cmp r3, #32 - 5089 001c 00D0 beq .LCB5149 - 5090 001e 90E0 b .L359 @long jump - 5091 .LCB5149: -2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5092 .loc 1 2740 0 - 5093 0020 002E cmp r6, #0 - 5094 0022 55D0 beq .L351 -2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5095 .loc 1 2740 0 is_stmt 0 discriminator 1 - 5096 0024 002F cmp r7, #0 - 5097 0026 53D0 beq .L351 -2746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5098 .loc 1 2746 0 is_stmt 1 - 5099 0028 0368 ldr r3, [r0] - 5100 002a 9B69 ldr r3, [r3, #24] - 5101 002c 1B04 lsls r3, r3, #16 - 5102 002e 00D5 bpl .LCB5159 - 5103 0030 8DE0 b .L360 @long jump - 5104 .LCB5159: -2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5105 .loc 1 2752 0 - 5106 0032 4023 movs r3, #64 - 5107 0034 C35C ldrb r3, [r0, r3] - 5108 0036 012B cmp r3, #1 - 5109 0038 00D1 bne .LCB5163 - 5110 003a 8AE0 b .L361 @long jump - 5111 .LCB5163: -2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5112 .loc 1 2752 0 is_stmt 0 discriminator 2 - 5113 003c 4025 movs r5, #64 - 5114 003e 0123 movs r3, #1 - 5115 0040 4355 strb r3, [r0, r5] -2755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5116 .loc 1 2755 0 is_stmt 1 discriminator 2 - 5117 0042 FFF7FEFF bl HAL_GetTick - 5118 .LVL426: -2757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; - 5119 .loc 1 2757 0 discriminator 2 - 5120 0046 4123 movs r3, #65 - 5121 0048 2122 movs r2, #33 - 5122 004a E254 strb r2, [r4, r3] -2758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 5123 .loc 1 2758 0 discriminator 2 - 5124 004c 0133 adds r3, r3, #1 - 5125 004e E554 strb r5, [r4, r3] -2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5126 .loc 1 2759 0 discriminator 2 - 5127 0050 0023 movs r3, #0 - 5128 0052 6364 str r3, [r4, #68] -2762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 5129 .loc 1 2762 0 discriminator 2 - 5130 0054 6662 str r6, [r4, #36] -2763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 5131 .loc 1 2763 0 discriminator 2 - 5132 0056 6785 strh r7, [r4, #42] -2764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; - ARM GAS /tmp/ccFk2Nxo.s page 218 - - - 5133 .loc 1 2764 0 discriminator 2 - 5134 0058 3F4B ldr r3, .L365 - 5135 005a E362 str r3, [r4, #44] -2765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5136 .loc 1 2765 0 discriminator 2 - 5137 005c 3F4B ldr r3, .L365+4 - 5138 005e 6363 str r3, [r4, #52] -2767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5139 .loc 1 2767 0 discriminator 2 - 5140 0060 638D ldrh r3, [r4, #42] - 5141 0062 9BB2 uxth r3, r3 - 5142 0064 FF2B cmp r3, #255 - 5143 0066 38D9 bls .L353 -2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 5144 .loc 1 2769 0 - 5145 0068 FF23 movs r3, #255 - 5146 006a 2385 strh r3, [r4, #40] - 5147 .LVL427: -2770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5148 .loc 1 2770 0 - 5149 006c 8023 movs r3, #128 - 5150 006e 5B04 lsls r3, r3, #17 - 5151 0070 9946 mov r9, r3 - 5152 .LVL428: - 5153 .L354: -2779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5154 .loc 1 2779 0 - 5155 0072 0190 str r0, [sp, #4] - 5156 0074 1923 movs r3, #25 - 5157 0076 0093 str r3, [sp] - 5158 0078 059B ldr r3, [sp, #20] - 5159 007a 049A ldr r2, [sp, #16] - 5160 007c 0399 ldr r1, [sp, #12] - 5161 007e 2000 movs r0, r4 - 5162 .LVL429: - 5163 0080 FFF7FEFF bl I2C_RequestMemoryWrite - 5164 .LVL430: - 5165 0084 0028 cmp r0, #0 - 5166 0086 2ED1 bne .L363 -2787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5167 .loc 1 2787 0 - 5168 0088 A36B ldr r3, [r4, #56] - 5169 008a 002B cmp r3, #0 - 5170 008c 30D0 beq .L356 -2790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5171 .loc 1 2790 0 - 5172 008e 344A ldr r2, .L365+8 - 5173 0090 9A62 str r2, [r3, #40] -2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5174 .loc 1 2793 0 - 5175 0092 A36B ldr r3, [r4, #56] - 5176 0094 334A ldr r2, .L365+12 - 5177 0096 1A63 str r2, [r3, #48] -2796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; - 5178 .loc 1 2796 0 - 5179 0098 A26B ldr r2, [r4, #56] - 5180 009a 0023 movs r3, #0 - ARM GAS /tmp/ccFk2Nxo.s page 219 - - - 5181 009c D362 str r3, [r2, #44] -2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5182 .loc 1 2797 0 - 5183 009e A26B ldr r2, [r4, #56] - 5184 00a0 5363 str r3, [r2, #52] -2800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5185 .loc 1 2800 0 - 5186 00a2 2268 ldr r2, [r4] - 5187 00a4 2832 adds r2, r2, #40 - 5188 00a6 238D ldrh r3, [r4, #40] - 5189 00a8 3100 movs r1, r6 - 5190 00aa A06B ldr r0, [r4, #56] - 5191 00ac FFF7FEFF bl HAL_DMA_Start_IT - 5192 .LVL431: - 5193 00b0 061E subs r6, r0, #0 - 5194 .LVL432: -2817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5195 .loc 1 2817 0 - 5196 00b2 2BD0 beq .L364 -2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 5197 .loc 1 2841 0 - 5198 00b4 4123 movs r3, #65 - 5199 00b6 2022 movs r2, #32 - 5200 00b8 E254 strb r2, [r4, r3] -2842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5201 .loc 1 2842 0 - 5202 00ba 0022 movs r2, #0 - 5203 00bc 0133 adds r3, r3, #1 - 5204 00be E254 strb r2, [r4, r3] -2845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5205 .loc 1 2845 0 - 5206 00c0 636C ldr r3, [r4, #68] - 5207 00c2 1021 movs r1, #16 - 5208 00c4 0B43 orrs r3, r1 - 5209 00c6 6364 str r3, [r4, #68] -2848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5210 .loc 1 2848 0 - 5211 00c8 4023 movs r3, #64 - 5212 00ca E254 strb r2, [r4, r3] -2850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5213 .loc 1 2850 0 - 5214 00cc 0126 movs r6, #1 - 5215 00ce 39E0 b .L350 - 5216 .LVL433: - 5217 .L351: -2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 5218 .loc 1 2742 0 - 5219 00d0 8023 movs r3, #128 - 5220 00d2 9B00 lsls r3, r3, #2 - 5221 00d4 6364 str r3, [r4, #68] -2743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5222 .loc 1 2743 0 - 5223 00d6 0126 movs r6, #1 - 5224 00d8 34E0 b .L350 - 5225 .LVL434: - 5226 .L353: -2774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; - ARM GAS /tmp/ccFk2Nxo.s page 220 - - - 5227 .loc 1 2774 0 - 5228 00da 638D ldrh r3, [r4, #42] - 5229 00dc 2385 strh r3, [r4, #40] - 5230 .LVL435: -2775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5231 .loc 1 2775 0 - 5232 00de 8023 movs r3, #128 - 5233 00e0 9B04 lsls r3, r3, #18 - 5234 00e2 9946 mov r9, r3 - 5235 00e4 C5E7 b .L354 - 5236 .LVL436: - 5237 .L363: -2782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 5238 .loc 1 2782 0 - 5239 00e6 4023 movs r3, #64 - 5240 00e8 0022 movs r2, #0 - 5241 00ea E254 strb r2, [r4, r3] -2783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5242 .loc 1 2783 0 - 5243 00ec 0126 movs r6, #1 - 5244 00ee 29E0 b .L350 - 5245 .L356: -2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 5246 .loc 1 2805 0 - 5247 00f0 4123 movs r3, #65 - 5248 00f2 2022 movs r2, #32 - 5249 00f4 E254 strb r2, [r4, r3] -2806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5250 .loc 1 2806 0 - 5251 00f6 0022 movs r2, #0 - 5252 00f8 0133 adds r3, r3, #1 - 5253 00fa E254 strb r2, [r4, r3] -2809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5254 .loc 1 2809 0 - 5255 00fc 636C ldr r3, [r4, #68] - 5256 00fe 8021 movs r1, #128 - 5257 0100 0B43 orrs r3, r1 - 5258 0102 6364 str r3, [r4, #68] -2812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5259 .loc 1 2812 0 - 5260 0104 4023 movs r3, #64 - 5261 0106 E254 strb r2, [r4, r3] -2814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5262 .loc 1 2814 0 - 5263 0108 0126 movs r6, #1 - 5264 010a 1BE0 b .L350 - 5265 .LVL437: - 5266 .L364: -2821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5267 .loc 1 2821 0 - 5268 010c 228D ldrh r2, [r4, #40] - 5269 010e D2B2 uxtb r2, r2 - 5270 0110 0027 movs r7, #0 - 5271 0112 0097 str r7, [sp] - 5272 0114 4B46 mov r3, r9 - 5273 0116 0399 ldr r1, [sp, #12] - 5274 0118 2000 movs r0, r4 - ARM GAS /tmp/ccFk2Nxo.s page 221 - - - 5275 .LVL438: - 5276 011a FFF7FEFF bl I2C_TransferConfig - 5277 .LVL439: -2824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5278 .loc 1 2824 0 - 5279 011e 638D ldrh r3, [r4, #42] - 5280 0120 228D ldrh r2, [r4, #40] - 5281 0122 9B1A subs r3, r3, r2 - 5282 0124 9BB2 uxth r3, r3 - 5283 0126 6385 strh r3, [r4, #42] -2827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5284 .loc 1 2827 0 - 5285 0128 4023 movs r3, #64 - 5286 012a E754 strb r7, [r4, r3] -2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5287 .loc 1 2833 0 - 5288 012c 1121 movs r1, #17 - 5289 012e 2000 movs r0, r4 - 5290 0130 FFF7FEFF bl I2C_Enable_IRQ - 5291 .LVL440: -2836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5292 .loc 1 2836 0 - 5293 0134 2268 ldr r2, [r4] - 5294 0136 1168 ldr r1, [r2] - 5295 0138 8023 movs r3, #128 - 5296 013a DB01 lsls r3, r3, #7 - 5297 013c 0B43 orrs r3, r1 - 5298 013e 1360 str r3, [r2] -2853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5299 .loc 1 2853 0 - 5300 0140 00E0 b .L350 - 5301 .LVL441: - 5302 .L359: -2857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5303 .loc 1 2857 0 - 5304 0142 0226 movs r6, #2 - 5305 .LVL442: - 5306 .L350: -2859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5307 .loc 1 2859 0 - 5308 0144 3000 movs r0, r6 - 5309 0146 06B0 add sp, sp, #24 - 5310 @ sp needed - 5311 .LVL443: - 5312 0148 04BC pop {r2} - 5313 014a 9146 mov r9, r2 - 5314 014c F0BD pop {r4, r5, r6, r7, pc} - 5315 .LVL444: - 5316 .L360: -2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5317 .loc 1 2748 0 - 5318 014e 0226 movs r6, #2 - 5319 0150 F8E7 b .L350 - 5320 .L361: -2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5321 .loc 1 2752 0 - 5322 0152 0226 movs r6, #2 - ARM GAS /tmp/ccFk2Nxo.s page 222 - - - 5323 0154 F6E7 b .L350 - 5324 .L366: - 5325 0156 C046 .align 2 - 5326 .L365: - 5327 0158 0000FFFF .word -65536 - 5328 015c 00000000 .word I2C_Master_ISR_DMA - 5329 0160 00000000 .word I2C_DMAMasterTransmitCplt - 5330 0164 00000000 .word I2C_DMAError - 5331 .cfi_endproc - 5332 .LFE60: - 5334 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits - 5335 .align 1 - 5336 .global HAL_I2C_Mem_Read_DMA - 5337 .syntax unified - 5338 .code 16 - 5339 .thumb_func - 5340 .fpu softvfp - 5342 HAL_I2C_Mem_Read_DMA: - 5343 .LFB61: -2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 5344 .loc 1 2874 0 - 5345 .cfi_startproc - 5346 @ args = 8, pretend = 0, frame = 16 - 5347 @ frame_needed = 0, uses_anonymous_args = 0 - 5348 .LVL445: - 5349 0000 F0B5 push {r4, r5, r6, r7, lr} - 5350 .LCFI44: - 5351 .cfi_def_cfa_offset 20 - 5352 .cfi_offset 4, -20 - 5353 .cfi_offset 5, -16 - 5354 .cfi_offset 6, -12 - 5355 .cfi_offset 7, -8 - 5356 .cfi_offset 14, -4 - 5357 0002 CE46 mov lr, r9 - 5358 0004 00B5 push {lr} - 5359 .LCFI45: - 5360 .cfi_def_cfa_offset 24 - 5361 .cfi_offset 9, -24 - 5362 0006 86B0 sub sp, sp, #24 - 5363 .LCFI46: - 5364 .cfi_def_cfa_offset 48 - 5365 0008 0400 movs r4, r0 - 5366 000a 0391 str r1, [sp, #12] - 5367 000c 0492 str r2, [sp, #16] - 5368 000e 0593 str r3, [sp, #20] - 5369 0010 0CAB add r3, sp, #48 - 5370 .LVL446: - 5371 0012 40CB ldmia r3!, {r6} - 5372 .LVL447: - 5373 0014 1F88 ldrh r7, [r3] -2882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5374 .loc 1 2882 0 - 5375 0016 4123 movs r3, #65 - 5376 .LVL448: - 5377 0018 C35C ldrb r3, [r0, r3] - 5378 001a 202B cmp r3, #32 - 5379 001c 00D0 beq .LCB5451 - ARM GAS /tmp/ccFk2Nxo.s page 223 - - - 5380 001e 91E0 b .L377 @long jump - 5381 .LCB5451: -2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5382 .loc 1 2884 0 - 5383 0020 002E cmp r6, #0 - 5384 0022 55D0 beq .L369 -2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5385 .loc 1 2884 0 is_stmt 0 discriminator 1 - 5386 0024 002F cmp r7, #0 - 5387 0026 53D0 beq .L369 -2890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5388 .loc 1 2890 0 is_stmt 1 - 5389 0028 0368 ldr r3, [r0] - 5390 002a 9B69 ldr r3, [r3, #24] - 5391 002c 1B04 lsls r3, r3, #16 - 5392 002e 00D5 bpl .LCB5461 - 5393 0030 8EE0 b .L378 @long jump - 5394 .LCB5461: -2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5395 .loc 1 2896 0 - 5396 0032 4023 movs r3, #64 - 5397 0034 C35C ldrb r3, [r0, r3] - 5398 0036 012B cmp r3, #1 - 5399 0038 00D1 bne .LCB5465 - 5400 003a 8BE0 b .L379 @long jump - 5401 .LCB5465: -2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5402 .loc 1 2896 0 is_stmt 0 discriminator 2 - 5403 003c 4025 movs r5, #64 - 5404 003e 0123 movs r3, #1 - 5405 0040 4355 strb r3, [r0, r5] -2899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5406 .loc 1 2899 0 is_stmt 1 discriminator 2 - 5407 0042 FFF7FEFF bl HAL_GetTick - 5408 .LVL449: -2901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; - 5409 .loc 1 2901 0 discriminator 2 - 5410 0046 4123 movs r3, #65 - 5411 0048 2222 movs r2, #34 - 5412 004a E254 strb r2, [r4, r3] -2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 5413 .loc 1 2902 0 discriminator 2 - 5414 004c 0133 adds r3, r3, #1 - 5415 004e E554 strb r5, [r4, r3] -2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5416 .loc 1 2903 0 discriminator 2 - 5417 0050 0023 movs r3, #0 - 5418 0052 6364 str r3, [r4, #68] -2906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 5419 .loc 1 2906 0 discriminator 2 - 5420 0054 6662 str r6, [r4, #36] -2907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 5421 .loc 1 2907 0 discriminator 2 - 5422 0056 6785 strh r7, [r4, #42] -2908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; - 5423 .loc 1 2908 0 discriminator 2 - 5424 0058 3F4B ldr r3, .L383 - ARM GAS /tmp/ccFk2Nxo.s page 224 - - - 5425 005a E362 str r3, [r4, #44] -2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5426 .loc 1 2909 0 discriminator 2 - 5427 005c 3F4B ldr r3, .L383+4 - 5428 005e 6363 str r3, [r4, #52] -2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5429 .loc 1 2911 0 discriminator 2 - 5430 0060 638D ldrh r3, [r4, #42] - 5431 0062 9BB2 uxth r3, r3 - 5432 0064 FF2B cmp r3, #255 - 5433 0066 38D9 bls .L371 -2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 5434 .loc 1 2913 0 - 5435 0068 FF23 movs r3, #255 - 5436 006a 2385 strh r3, [r4, #40] - 5437 .LVL450: -2914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5438 .loc 1 2914 0 - 5439 006c 8023 movs r3, #128 - 5440 006e 5B04 lsls r3, r3, #17 - 5441 0070 9946 mov r9, r3 - 5442 .LVL451: - 5443 .L372: -2923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5444 .loc 1 2923 0 - 5445 0072 0190 str r0, [sp, #4] - 5446 0074 1923 movs r3, #25 - 5447 0076 0093 str r3, [sp] - 5448 0078 059B ldr r3, [sp, #20] - 5449 007a 049A ldr r2, [sp, #16] - 5450 007c 0399 ldr r1, [sp, #12] - 5451 007e 2000 movs r0, r4 - 5452 .LVL452: - 5453 0080 FFF7FEFF bl I2C_RequestMemoryRead - 5454 .LVL453: - 5455 0084 0028 cmp r0, #0 - 5456 0086 2ED1 bne .L381 -2930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5457 .loc 1 2930 0 - 5458 0088 E36B ldr r3, [r4, #60] - 5459 008a 002B cmp r3, #0 - 5460 008c 30D0 beq .L374 -2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5461 .loc 1 2933 0 - 5462 008e 344A ldr r2, .L383+8 - 5463 0090 9A62 str r2, [r3, #40] -2936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5464 .loc 1 2936 0 - 5465 0092 E36B ldr r3, [r4, #60] - 5466 0094 334A ldr r2, .L383+12 - 5467 0096 1A63 str r2, [r3, #48] -2939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; - 5468 .loc 1 2939 0 - 5469 0098 E26B ldr r2, [r4, #60] - 5470 009a 0023 movs r3, #0 - 5471 009c D362 str r3, [r2, #44] -2940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 225 - - - 5472 .loc 1 2940 0 - 5473 009e E26B ldr r2, [r4, #60] - 5474 00a0 5363 str r3, [r2, #52] -2943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5475 .loc 1 2943 0 - 5476 00a2 2168 ldr r1, [r4] - 5477 00a4 2431 adds r1, r1, #36 - 5478 00a6 238D ldrh r3, [r4, #40] - 5479 00a8 3200 movs r2, r6 - 5480 00aa E06B ldr r0, [r4, #60] - 5481 00ac FFF7FEFF bl HAL_DMA_Start_IT - 5482 .LVL454: - 5483 00b0 061E subs r6, r0, #0 - 5484 .LVL455: -2960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5485 .loc 1 2960 0 - 5486 00b2 2BD0 beq .L382 -2983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 5487 .loc 1 2983 0 - 5488 00b4 4123 movs r3, #65 - 5489 00b6 2022 movs r2, #32 - 5490 00b8 E254 strb r2, [r4, r3] -2984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5491 .loc 1 2984 0 - 5492 00ba 0022 movs r2, #0 - 5493 00bc 0133 adds r3, r3, #1 - 5494 00be E254 strb r2, [r4, r3] -2987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5495 .loc 1 2987 0 - 5496 00c0 636C ldr r3, [r4, #68] - 5497 00c2 1021 movs r1, #16 - 5498 00c4 0B43 orrs r3, r1 - 5499 00c6 6364 str r3, [r4, #68] -2990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5500 .loc 1 2990 0 - 5501 00c8 4023 movs r3, #64 - 5502 00ca E254 strb r2, [r4, r3] -2992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5503 .loc 1 2992 0 - 5504 00cc 0126 movs r6, #1 - 5505 00ce 3AE0 b .L368 - 5506 .LVL456: - 5507 .L369: -2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 5508 .loc 1 2886 0 - 5509 00d0 8023 movs r3, #128 - 5510 00d2 9B00 lsls r3, r3, #2 - 5511 00d4 6364 str r3, [r4, #68] -2887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5512 .loc 1 2887 0 - 5513 00d6 0126 movs r6, #1 - 5514 00d8 35E0 b .L368 - 5515 .LVL457: - 5516 .L371: -2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; - 5517 .loc 1 2918 0 - 5518 00da 638D ldrh r3, [r4, #42] - ARM GAS /tmp/ccFk2Nxo.s page 226 - - - 5519 00dc 2385 strh r3, [r4, #40] - 5520 .LVL458: -2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5521 .loc 1 2919 0 - 5522 00de 8023 movs r3, #128 - 5523 00e0 9B04 lsls r3, r3, #18 - 5524 00e2 9946 mov r9, r3 - 5525 00e4 C5E7 b .L372 - 5526 .LVL459: - 5527 .L381: -2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 5528 .loc 1 2926 0 - 5529 00e6 4023 movs r3, #64 - 5530 00e8 0022 movs r2, #0 - 5531 00ea E254 strb r2, [r4, r3] -2927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5532 .loc 1 2927 0 - 5533 00ec 0126 movs r6, #1 - 5534 00ee 2AE0 b .L368 - 5535 .L374: -2948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 5536 .loc 1 2948 0 - 5537 00f0 4123 movs r3, #65 - 5538 00f2 2022 movs r2, #32 - 5539 00f4 E254 strb r2, [r4, r3] -2949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5540 .loc 1 2949 0 - 5541 00f6 0022 movs r2, #0 - 5542 00f8 0133 adds r3, r3, #1 - 5543 00fa E254 strb r2, [r4, r3] -2952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5544 .loc 1 2952 0 - 5545 00fc 636C ldr r3, [r4, #68] - 5546 00fe 8021 movs r1, #128 - 5547 0100 0B43 orrs r3, r1 - 5548 0102 6364 str r3, [r4, #68] -2955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5549 .loc 1 2955 0 - 5550 0104 4023 movs r3, #64 - 5551 0106 E254 strb r2, [r4, r3] -2957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5552 .loc 1 2957 0 - 5553 0108 0126 movs r6, #1 - 5554 010a 1CE0 b .L368 - 5555 .LVL460: - 5556 .L382: -2963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5557 .loc 1 2963 0 - 5558 010c 228D ldrh r2, [r4, #40] - 5559 010e D2B2 uxtb r2, r2 - 5560 0110 154B ldr r3, .L383+16 - 5561 0112 0093 str r3, [sp] - 5562 0114 4B46 mov r3, r9 - 5563 0116 0399 ldr r1, [sp, #12] - 5564 0118 2000 movs r0, r4 - 5565 .LVL461: - 5566 011a FFF7FEFF bl I2C_TransferConfig - ARM GAS /tmp/ccFk2Nxo.s page 227 - - - 5567 .LVL462: -2966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5568 .loc 1 2966 0 - 5569 011e 638D ldrh r3, [r4, #42] - 5570 0120 228D ldrh r2, [r4, #40] - 5571 0122 9B1A subs r3, r3, r2 - 5572 0124 9BB2 uxth r3, r3 - 5573 0126 6385 strh r3, [r4, #42] -2969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5574 .loc 1 2969 0 - 5575 0128 4023 movs r3, #64 - 5576 012a 0022 movs r2, #0 - 5577 012c E254 strb r2, [r4, r3] -2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5578 .loc 1 2975 0 - 5579 012e 1121 movs r1, #17 - 5580 0130 2000 movs r0, r4 - 5581 0132 FFF7FEFF bl I2C_Enable_IRQ - 5582 .LVL463: -2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5583 .loc 1 2978 0 - 5584 0136 2268 ldr r2, [r4] - 5585 0138 1168 ldr r1, [r2] - 5586 013a 8023 movs r3, #128 - 5587 013c 1B02 lsls r3, r3, #8 - 5588 013e 0B43 orrs r3, r1 - 5589 0140 1360 str r3, [r2] -2995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5590 .loc 1 2995 0 - 5591 0142 00E0 b .L368 - 5592 .LVL464: - 5593 .L377: -2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5594 .loc 1 2999 0 - 5595 0144 0226 movs r6, #2 - 5596 .LVL465: - 5597 .L368: -3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5598 .loc 1 3001 0 - 5599 0146 3000 movs r0, r6 - 5600 0148 06B0 add sp, sp, #24 - 5601 @ sp needed - 5602 .LVL466: - 5603 014a 04BC pop {r2} - 5604 014c 9146 mov r9, r2 - 5605 014e F0BD pop {r4, r5, r6, r7, pc} - 5606 .LVL467: - 5607 .L378: -2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5608 .loc 1 2892 0 - 5609 0150 0226 movs r6, #2 - 5610 0152 F8E7 b .L368 - 5611 .L379: -2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5612 .loc 1 2896 0 - 5613 0154 0226 movs r6, #2 - 5614 0156 F6E7 b .L368 - ARM GAS /tmp/ccFk2Nxo.s page 228 - - - 5615 .L384: - 5616 .align 2 - 5617 .L383: - 5618 0158 0000FFFF .word -65536 - 5619 015c 00000000 .word I2C_Master_ISR_DMA - 5620 0160 00000000 .word I2C_DMAMasterReceiveCplt - 5621 0164 00000000 .word I2C_DMAError - 5622 0168 00240080 .word -2147474432 - 5623 .cfi_endproc - 5624 .LFE61: - 5626 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits - 5627 .align 1 - 5628 .global HAL_I2C_IsDeviceReady - 5629 .syntax unified - 5630 .code 16 - 5631 .thumb_func - 5632 .fpu softvfp - 5634 HAL_I2C_IsDeviceReady: - 5635 .LFB62: -3015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; - 5636 .loc 1 3015 0 - 5637 .cfi_startproc - 5638 @ args = 0, pretend = 0, frame = 16 - 5639 @ frame_needed = 0, uses_anonymous_args = 0 - 5640 .LVL468: - 5641 0000 F0B5 push {r4, r5, r6, r7, lr} - 5642 .LCFI47: - 5643 .cfi_def_cfa_offset 20 - 5644 .cfi_offset 4, -20 - 5645 .cfi_offset 5, -16 - 5646 .cfi_offset 6, -12 - 5647 .cfi_offset 7, -8 - 5648 .cfi_offset 14, -4 - 5649 0002 87B0 sub sp, sp, #28 - 5650 .LCFI48: - 5651 .cfi_def_cfa_offset 48 - 5652 0004 0600 movs r6, r0 - 5653 0006 0391 str r1, [sp, #12] - 5654 0008 1500 movs r5, r2 - 5655 000a 1F00 movs r7, r3 -3018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5656 .loc 1 3018 0 - 5657 000c 0023 movs r3, #0 - 5658 .LVL469: - 5659 000e 0593 str r3, [sp, #20] -3023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5660 .loc 1 3023 0 - 5661 0010 4133 adds r3, r3, #65 - 5662 0012 C35C ldrb r3, [r0, r3] - 5663 0014 202B cmp r3, #32 - 5664 0016 00D0 beq .LCB5741 - 5665 0018 A2E0 b .L396 @long jump - 5666 .LCB5741: -3025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5667 .loc 1 3025 0 - 5668 001a 0368 ldr r3, [r0] - 5669 001c 9B69 ldr r3, [r3, #24] - ARM GAS /tmp/ccFk2Nxo.s page 229 - - - 5670 001e 1B04 lsls r3, r3, #16 - 5671 0020 00D5 bpl .LCB5747 - 5672 0022 A0E0 b .L397 @long jump - 5673 .LCB5747: -3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5674 .loc 1 3031 0 - 5675 0024 4023 movs r3, #64 - 5676 0026 C35C ldrb r3, [r0, r3] - 5677 0028 012B cmp r3, #1 - 5678 002a 00D1 bne .LCB5751 - 5679 002c 9DE0 b .L398 @long jump - 5680 .LCB5751: -3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5681 .loc 1 3031 0 is_stmt 0 discriminator 2 - 5682 002e 4023 movs r3, #64 - 5683 0030 0122 movs r2, #1 - 5684 .LVL470: - 5685 0032 C254 strb r2, [r0, r3] -3033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 5686 .loc 1 3033 0 is_stmt 1 discriminator 2 - 5687 0034 0133 adds r3, r3, #1 - 5688 0036 2332 adds r2, r2, #35 - 5689 0038 C254 strb r2, [r0, r3] -3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5690 .loc 1 3034 0 discriminator 2 - 5691 003a 0023 movs r3, #0 - 5692 003c 4364 str r3, [r0, #68] - 5693 .LVL471: - 5694 .L395: -3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5695 .loc 1 3039 0 - 5696 003e F368 ldr r3, [r6, #12] - 5697 0040 012B cmp r3, #1 - 5698 0042 18D0 beq .L402 -3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5699 .loc 1 3039 0 is_stmt 0 discriminator 2 - 5700 0044 039B ldr r3, [sp, #12] - 5701 0046 9A05 lsls r2, r3, #22 - 5702 0048 920D lsrs r2, r2, #22 - 5703 004a A023 movs r3, #160 - 5704 004c 9B01 lsls r3, r3, #6 - 5705 004e 1343 orrs r3, r2 - 5706 .L388: -3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5707 .loc 1 3039 0 discriminator 4 - 5708 0050 3268 ldr r2, [r6] - 5709 0052 5360 str r3, [r2, #4] -3043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5710 .loc 1 3043 0 is_stmt 1 discriminator 4 - 5711 0054 FFF7FEFF bl HAL_GetTick - 5712 .LVL472: - 5713 0058 0400 movs r4, r0 - 5714 .LVL473: -3045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); - 5715 .loc 1 3045 0 discriminator 4 - 5716 005a 3268 ldr r2, [r6] - 5717 005c 9169 ldr r1, [r2, #24] - ARM GAS /tmp/ccFk2Nxo.s page 230 - - - 5718 005e 2023 movs r3, #32 - 5719 0060 0B40 ands r3, r1 - 5720 0062 591E subs r1, r3, #1 - 5721 0064 8B41 sbcs r3, r3, r1 - 5722 0066 D9B2 uxtb r1, r3 - 5723 .LVL474: -3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5724 .loc 1 3046 0 discriminator 4 - 5725 0068 9369 ldr r3, [r2, #24] - 5726 006a 1022 movs r2, #16 - 5727 006c 1A40 ands r2, r3 - 5728 006e 531E subs r3, r2, #1 - 5729 0070 9A41 sbcs r2, r2, r3 - 5730 0072 D3B2 uxtb r3, r2 - 5731 .LVL475: -3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5732 .loc 1 3048 0 discriminator 4 - 5733 0074 12E0 b .L389 - 5734 .LVL476: - 5735 .L402: -3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5736 .loc 1 3039 0 discriminator 1 - 5737 0076 039B ldr r3, [sp, #12] - 5738 0078 9A05 lsls r2, r3, #22 - 5739 007a 920D lsrs r2, r2, #22 - 5740 007c 3F4B ldr r3, .L406 - 5741 007e 1343 orrs r3, r2 - 5742 0080 E6E7 b .L388 - 5743 .LVL477: - 5744 .L390: -3067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); - 5745 .loc 1 3067 0 - 5746 0082 3268 ldr r2, [r6] - 5747 0084 9169 ldr r1, [r2, #24] - 5748 0086 2023 movs r3, #32 - 5749 0088 0B40 ands r3, r1 - 5750 008a 591E subs r1, r3, #1 - 5751 008c 8B41 sbcs r3, r3, r1 - 5752 008e D9B2 uxtb r1, r3 - 5753 .LVL478: -3068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5754 .loc 1 3068 0 - 5755 0090 9269 ldr r2, [r2, #24] - 5756 0092 1023 movs r3, #16 - 5757 0094 1340 ands r3, r2 - 5758 0096 5A1E subs r2, r3, #1 - 5759 0098 9341 sbcs r3, r3, r2 - 5760 009a DBB2 uxtb r3, r3 - 5761 .LVL479: - 5762 .L389: -3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5763 .loc 1 3048 0 - 5764 009c 0B43 orrs r3, r1 - 5765 .LVL480: - 5766 009e 13D1 bne .L403 -3050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5767 .loc 1 3050 0 - ARM GAS /tmp/ccFk2Nxo.s page 231 - - - 5768 00a0 7B1C adds r3, r7, #1 - 5769 00a2 EED0 beq .L390 -3052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5770 .loc 1 3052 0 - 5771 00a4 FFF7FEFF bl HAL_GetTick - 5772 .LVL481: - 5773 00a8 001B subs r0, r0, r4 - 5774 00aa B842 cmp r0, r7 - 5775 00ac 01D8 bhi .L391 -3052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5776 .loc 1 3052 0 is_stmt 0 discriminator 1 - 5777 00ae 002F cmp r7, #0 - 5778 00b0 E7D1 bne .L390 - 5779 .L391: -3055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5780 .loc 1 3055 0 is_stmt 1 - 5781 00b2 2022 movs r2, #32 - 5782 00b4 4123 movs r3, #65 - 5783 00b6 F254 strb r2, [r6, r3] -3058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5784 .loc 1 3058 0 - 5785 00b8 736C ldr r3, [r6, #68] - 5786 00ba 1343 orrs r3, r2 - 5787 00bc 7364 str r3, [r6, #68] -3061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5788 .loc 1 3061 0 - 5789 00be 4023 movs r3, #64 - 5790 00c0 0022 movs r2, #0 - 5791 00c2 F254 strb r2, [r6, r3] -3063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5792 .loc 1 3063 0 - 5793 00c4 0120 movs r0, #1 - 5794 00c6 4CE0 b .L386 - 5795 .LVL482: - 5796 .L403: -3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5797 .loc 1 3072 0 - 5798 00c8 3368 ldr r3, [r6] - 5799 00ca 9B69 ldr r3, [r3, #24] - 5800 00cc DB06 lsls r3, r3, #27 - 5801 00ce 22D5 bpl .L404 -3094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5802 .loc 1 3094 0 - 5803 00d0 0094 str r4, [sp] - 5804 00d2 3B00 movs r3, r7 - 5805 00d4 0022 movs r2, #0 - 5806 00d6 2021 movs r1, #32 - 5807 .LVL483: - 5808 00d8 3000 movs r0, r6 - 5809 00da FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 5810 .LVL484: - 5811 00de 0028 cmp r0, #0 - 5812 00e0 47D1 bne .L400 -3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5813 .loc 1 3100 0 - 5814 00e2 3368 ldr r3, [r6] - 5815 00e4 1022 movs r2, #16 - ARM GAS /tmp/ccFk2Nxo.s page 232 - - - 5816 00e6 DA61 str r2, [r3, #28] -3103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5817 .loc 1 3103 0 - 5818 00e8 3368 ldr r3, [r6] - 5819 00ea 1032 adds r2, r2, #16 - 5820 00ec DA61 str r2, [r3, #28] -3107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5821 .loc 1 3107 0 - 5822 00ee 059B ldr r3, [sp, #20] - 5823 00f0 AB42 cmp r3, r5 - 5824 00f2 22D0 beq .L405 - 5825 .L394: -3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5826 .loc 1 3123 0 - 5827 00f4 059B ldr r3, [sp, #20] - 5828 00f6 0133 adds r3, r3, #1 - 5829 00f8 0593 str r3, [sp, #20] -3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5830 .loc 1 3125 0 - 5831 00fa 059B ldr r3, [sp, #20] - 5832 00fc AB42 cmp r3, r5 - 5833 00fe 9ED3 bcc .L395 -3128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5834 .loc 1 3128 0 - 5835 0100 2022 movs r2, #32 - 5836 0102 4123 movs r3, #65 - 5837 0104 F254 strb r2, [r6, r3] -3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5838 .loc 1 3131 0 - 5839 0106 736C ldr r3, [r6, #68] - 5840 0108 1343 orrs r3, r2 - 5841 010a 7364 str r3, [r6, #68] -3134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5842 .loc 1 3134 0 - 5843 010c 4023 movs r3, #64 - 5844 010e 0022 movs r2, #0 - 5845 0110 F254 strb r2, [r6, r3] -3136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5846 .loc 1 3136 0 - 5847 0112 0120 movs r0, #1 - 5848 0114 25E0 b .L386 - 5849 .LVL485: - 5850 .L404: -3075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5851 .loc 1 3075 0 - 5852 0116 0094 str r4, [sp] - 5853 0118 3B00 movs r3, r7 - 5854 011a 0022 movs r2, #0 - 5855 011c 2021 movs r1, #32 - 5856 .LVL486: - 5857 011e 3000 movs r0, r6 - 5858 0120 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 5859 .LVL487: - 5860 0124 0028 cmp r0, #0 - 5861 0126 22D1 bne .L399 -3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5862 .loc 1 3081 0 - ARM GAS /tmp/ccFk2Nxo.s page 233 - - - 5863 0128 3268 ldr r2, [r6] - 5864 012a 2023 movs r3, #32 - 5865 012c D361 str r3, [r2, #28] -3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5866 .loc 1 3084 0 - 5867 012e 4122 movs r2, #65 - 5868 0130 B354 strb r3, [r6, r2] -3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5869 .loc 1 3087 0 - 5870 0132 2033 adds r3, r3, #32 - 5871 0134 0022 movs r2, #0 - 5872 0136 F254 strb r2, [r6, r3] -3089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5873 .loc 1 3089 0 - 5874 0138 13E0 b .L386 - 5875 .L405: -3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5876 .loc 1 3110 0 - 5877 013a 3268 ldr r2, [r6] - 5878 013c 5168 ldr r1, [r2, #4] - 5879 013e 8023 movs r3, #128 - 5880 0140 DB01 lsls r3, r3, #7 - 5881 0142 0B43 orrs r3, r1 - 5882 0144 5360 str r3, [r2, #4] -3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5883 .loc 1 3113 0 - 5884 0146 0094 str r4, [sp] - 5885 0148 3B00 movs r3, r7 - 5886 014a 0022 movs r2, #0 - 5887 014c 2021 movs r1, #32 - 5888 014e 3000 movs r0, r6 - 5889 0150 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout - 5890 .LVL488: - 5891 0154 0028 cmp r0, #0 - 5892 0156 0ED1 bne .L401 -3119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5893 .loc 1 3119 0 - 5894 0158 3368 ldr r3, [r6] - 5895 015a 2022 movs r2, #32 - 5896 015c DA61 str r2, [r3, #28] - 5897 015e C9E7 b .L394 - 5898 .LVL489: - 5899 .L396: -3140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5900 .loc 1 3140 0 - 5901 0160 0220 movs r0, #2 - 5902 .LVL490: - 5903 .L386: -3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5904 .loc 1 3142 0 - 5905 0162 07B0 add sp, sp, #28 - 5906 @ sp needed - 5907 .LVL491: - 5908 .LVL492: - 5909 .LVL493: - 5910 0164 F0BD pop {r4, r5, r6, r7, pc} - 5911 .LVL494: - ARM GAS /tmp/ccFk2Nxo.s page 234 - - - 5912 .L397: -3027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5913 .loc 1 3027 0 - 5914 0166 0220 movs r0, #2 - 5915 .LVL495: - 5916 0168 FBE7 b .L386 - 5917 .LVL496: - 5918 .L398: -3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5919 .loc 1 3031 0 - 5920 016a 0220 movs r0, #2 - 5921 .LVL497: - 5922 016c F9E7 b .L386 - 5923 .LVL498: - 5924 .L399: -3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5925 .loc 1 3077 0 - 5926 016e 0120 movs r0, #1 - 5927 0170 F7E7 b .L386 - 5928 .L400: -3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5929 .loc 1 3096 0 - 5930 0172 0120 movs r0, #1 - 5931 0174 F5E7 b .L386 - 5932 .L401: -3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 5933 .loc 1 3115 0 - 5934 0176 0120 movs r0, #1 - 5935 0178 F3E7 b .L386 - 5936 .L407: - 5937 017a C046 .align 2 - 5938 .L406: - 5939 017c 00200002 .word 33562624 - 5940 .cfi_endproc - 5941 .LFE62: - 5943 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits - 5944 .align 1 - 5945 .global HAL_I2C_Master_Seq_Transmit_IT - 5946 .syntax unified - 5947 .code 16 - 5948 .thumb_func - 5949 .fpu softvfp - 5951 HAL_I2C_Master_Seq_Transmit_IT: - 5952 .LFB63: -3157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; - 5953 .loc 1 3157 0 - 5954 .cfi_startproc - 5955 @ args = 4, pretend = 0, frame = 0 - 5956 @ frame_needed = 0, uses_anonymous_args = 0 - 5957 .LVL499: - 5958 0000 70B5 push {r4, r5, r6, lr} - 5959 .LCFI49: - 5960 .cfi_def_cfa_offset 16 - 5961 .cfi_offset 4, -16 - 5962 .cfi_offset 5, -12 - 5963 .cfi_offset 6, -8 - 5964 .cfi_offset 14, -4 - ARM GAS /tmp/ccFk2Nxo.s page 235 - - - 5965 0002 82B0 sub sp, sp, #8 - 5966 .LCFI50: - 5967 .cfi_def_cfa_offset 24 - 5968 0004 0400 movs r4, r0 - 5969 0006 0D00 movs r5, r1 - 5970 .LVL500: -3164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 5971 .loc 1 3164 0 - 5972 0008 4121 movs r1, #65 - 5973 .LVL501: - 5974 000a 415C ldrb r1, [r0, r1] - 5975 000c 2029 cmp r1, #32 - 5976 000e 49D1 bne .L414 -3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5977 .loc 1 3167 0 - 5978 0010 2031 adds r1, r1, #32 - 5979 0012 415C ldrb r1, [r0, r1] - 5980 0014 0129 cmp r1, #1 - 5981 0016 48D0 beq .L415 -3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5982 .loc 1 3167 0 is_stmt 0 discriminator 2 - 5983 0018 4021 movs r1, #64 - 5984 001a 0120 movs r0, #1 - 5985 .LVL502: - 5986 001c 6054 strb r0, [r4, r1] -3169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 5987 .loc 1 3169 0 is_stmt 1 discriminator 2 - 5988 001e 0131 adds r1, r1, #1 - 5989 0020 2030 adds r0, r0, #32 - 5990 0022 6054 strb r0, [r4, r1] -3170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 5991 .loc 1 3170 0 discriminator 2 - 5992 0024 0131 adds r1, r1, #1 - 5993 0026 1138 subs r0, r0, #17 - 5994 0028 6054 strb r0, [r4, r1] -3171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 5995 .loc 1 3171 0 discriminator 2 - 5996 002a 0021 movs r1, #0 - 5997 002c 6164 str r1, [r4, #68] -3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 5998 .loc 1 3174 0 discriminator 2 - 5999 002e 6262 str r2, [r4, #36] -3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; - 6000 .loc 1 3175 0 discriminator 2 - 6001 0030 6385 strh r3, [r4, #42] -3176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; - 6002 .loc 1 3176 0 discriminator 2 - 6003 0032 069B ldr r3, [sp, #24] - 6004 .LVL503: - 6005 0034 E362 str r3, [r4, #44] - 6006 .LVL504: -3177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6007 .loc 1 3177 0 discriminator 2 - 6008 0036 1E4B ldr r3, .L418 - 6009 0038 6363 str r3, [r4, #52] -3180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6010 .loc 1 3180 0 discriminator 2 - ARM GAS /tmp/ccFk2Nxo.s page 236 - - - 6011 003a 638D ldrh r3, [r4, #42] - 6012 003c 9BB2 uxth r3, r3 - 6013 003e FF2B cmp r3, #255 - 6014 0040 10D9 bls .L410 -3182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 6015 .loc 1 3182 0 - 6016 0042 FF23 movs r3, #255 - 6017 0044 2385 strh r3, [r4, #40] - 6018 .LVL505: -3183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6019 .loc 1 3183 0 - 6020 0046 8026 movs r6, #128 - 6021 0048 7604 lsls r6, r6, #17 - 6022 .LVL506: - 6023 .L411: -3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6024 .loc 1 3193 0 - 6025 004a 236B ldr r3, [r4, #48] - 6026 004c 112B cmp r3, #17 - 6027 004e 0DD1 bne .L412 -3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6028 .loc 1 3193 0 is_stmt 0 discriminator 1 - 6029 0050 069B ldr r3, [sp, #24] - 6030 0052 AA2B cmp r3, #170 - 6031 0054 0AD0 beq .L412 -3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6032 .loc 1 3193 0 discriminator 3 - 6033 0056 AA23 movs r3, #170 - 6034 0058 1B02 lsls r3, r3, #8 - 6035 005a 069A ldr r2, [sp, #24] - 6036 .LVL507: - 6037 005c 9A42 cmp r2, r3 - 6038 005e 05D0 beq .L412 -3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6039 .loc 1 3195 0 is_stmt 1 - 6040 0060 0023 movs r3, #0 - 6041 0062 0CE0 b .L413 - 6042 .LVL508: - 6043 .L410: -3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; - 6044 .loc 1 3187 0 - 6045 0064 638D ldrh r3, [r4, #42] - 6046 0066 2385 strh r3, [r4, #40] -3188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6047 .loc 1 3188 0 - 6048 0068 E66A ldr r6, [r4, #44] - 6049 .LVL509: - 6050 006a EEE7 b .L411 - 6051 .LVL510: - 6052 .L412: -3200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6053 .loc 1 3200 0 - 6054 006c 2000 movs r0, r4 - 6055 006e FFF7FEFF bl I2C_ConvertOtherXferOptions - 6056 .LVL511: -3203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6057 .loc 1 3203 0 - ARM GAS /tmp/ccFk2Nxo.s page 237 - - - 6058 0072 638D ldrh r3, [r4, #42] - 6059 0074 9BB2 uxth r3, r3 - 6060 0076 FE2B cmp r3, #254 - 6061 0078 12D8 bhi .L417 -3205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6062 .loc 1 3205 0 - 6063 007a E66A ldr r6, [r4, #44] - 6064 .LVL512: -3159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6065 .loc 1 3159 0 - 6066 007c 0D4B ldr r3, .L418+4 - 6067 .L413: - 6068 .LVL513: -3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6069 .loc 1 3210 0 - 6070 007e 228D ldrh r2, [r4, #40] - 6071 0080 D2B2 uxtb r2, r2 - 6072 0082 0093 str r3, [sp] - 6073 0084 3300 movs r3, r6 - 6074 .LVL514: - 6075 0086 2900 movs r1, r5 - 6076 0088 2000 movs r0, r4 - 6077 008a FFF7FEFF bl I2C_TransferConfig - 6078 .LVL515: -3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6079 .loc 1 3213 0 - 6080 008e 4023 movs r3, #64 - 6081 0090 0022 movs r2, #0 - 6082 0092 E254 strb r2, [r4, r3] -3218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6083 .loc 1 3218 0 - 6084 0094 0121 movs r1, #1 - 6085 0096 2000 movs r0, r4 - 6086 0098 FFF7FEFF bl I2C_Enable_IRQ - 6087 .LVL516: -3220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6088 .loc 1 3220 0 - 6089 009c 0020 movs r0, #0 - 6090 009e 02E0 b .L409 - 6091 .LVL517: - 6092 .L417: -3159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6093 .loc 1 3159 0 - 6094 00a0 044B ldr r3, .L418+4 - 6095 00a2 ECE7 b .L413 - 6096 .LVL518: - 6097 .L414: -3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6098 .loc 1 3224 0 - 6099 00a4 0220 movs r0, #2 - 6100 .LVL519: - 6101 .L409: -3226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6102 .loc 1 3226 0 - 6103 00a6 02B0 add sp, sp, #8 - 6104 @ sp needed - 6105 .LVL520: - ARM GAS /tmp/ccFk2Nxo.s page 238 - - - 6106 00a8 70BD pop {r4, r5, r6, pc} - 6107 .LVL521: - 6108 .L415: -3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6109 .loc 1 3167 0 - 6110 00aa 0220 movs r0, #2 - 6111 .LVL522: - 6112 00ac FBE7 b .L409 - 6113 .L419: - 6114 00ae C046 .align 2 - 6115 .L418: - 6116 00b0 00000000 .word I2C_Master_ISR_IT - 6117 00b4 00200080 .word -2147475456 - 6118 .cfi_endproc - 6119 .LFE63: - 6121 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits - 6122 .align 1 - 6123 .global HAL_I2C_Master_Seq_Transmit_DMA - 6124 .syntax unified - 6125 .code 16 - 6126 .thumb_func - 6127 .fpu softvfp - 6129 HAL_I2C_Master_Seq_Transmit_DMA: - 6130 .LFB64: -3241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; - 6131 .loc 1 3241 0 - 6132 .cfi_startproc - 6133 @ args = 4, pretend = 0, frame = 8 - 6134 @ frame_needed = 0, uses_anonymous_args = 0 - 6135 .LVL523: - 6136 0000 F0B5 push {r4, r5, r6, r7, lr} - 6137 .LCFI51: - 6138 .cfi_def_cfa_offset 20 - 6139 .cfi_offset 4, -20 - 6140 .cfi_offset 5, -16 - 6141 .cfi_offset 6, -12 - 6142 .cfi_offset 7, -8 - 6143 .cfi_offset 14, -4 - 6144 0002 85B0 sub sp, sp, #20 - 6145 .LCFI52: - 6146 .cfi_def_cfa_offset 40 - 6147 0004 0400 movs r4, r0 - 6148 0006 0391 str r1, [sp, #12] - 6149 0008 1500 movs r5, r2 - 6150 .LVL524: -3249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6151 .loc 1 3249 0 - 6152 000a 4122 movs r2, #65 - 6153 .LVL525: - 6154 000c 825C ldrb r2, [r0, r2] - 6155 000e 202A cmp r2, #32 - 6156 0010 00D0 beq .LCB6267 - 6157 0012 9DE0 b .L430 @long jump - 6158 .LCB6267: -3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6159 .loc 1 3252 0 - 6160 0014 2032 adds r2, r2, #32 - ARM GAS /tmp/ccFk2Nxo.s page 239 - - - 6161 0016 825C ldrb r2, [r0, r2] - 6162 0018 012A cmp r2, #1 - 6163 001a 00D1 bne .LCB6271 - 6164 001c 9CE0 b .L431 @long jump - 6165 .LCB6271: -3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6166 .loc 1 3252 0 is_stmt 0 discriminator 2 - 6167 001e 4022 movs r2, #64 - 6168 0020 0121 movs r1, #1 - 6169 .LVL526: - 6170 0022 8154 strb r1, [r0, r2] -3254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 6171 .loc 1 3254 0 is_stmt 1 discriminator 2 - 6172 0024 0132 adds r2, r2, #1 - 6173 0026 2031 adds r1, r1, #32 - 6174 0028 8154 strb r1, [r0, r2] -3255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 6175 .loc 1 3255 0 discriminator 2 - 6176 002a 0132 adds r2, r2, #1 - 6177 002c 1139 subs r1, r1, #17 - 6178 002e 8154 strb r1, [r0, r2] -3256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6179 .loc 1 3256 0 discriminator 2 - 6180 0030 0022 movs r2, #0 - 6181 0032 4264 str r2, [r0, #68] -3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 6182 .loc 1 3259 0 discriminator 2 - 6183 0034 4562 str r5, [r0, #36] -3260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; - 6184 .loc 1 3260 0 discriminator 2 - 6185 0036 4385 strh r3, [r0, #42] -3261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; - 6186 .loc 1 3261 0 discriminator 2 - 6187 0038 0A9B ldr r3, [sp, #40] - 6188 .LVL527: - 6189 003a C362 str r3, [r0, #44] - 6190 .LVL528: -3262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6191 .loc 1 3262 0 discriminator 2 - 6192 003c 474B ldr r3, .L436 - 6193 003e 4363 str r3, [r0, #52] -3265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6194 .loc 1 3265 0 discriminator 2 - 6195 0040 438D ldrh r3, [r0, #42] - 6196 0042 9BB2 uxth r3, r3 - 6197 0044 FF2B cmp r3, #255 - 6198 0046 10D9 bls .L422 -3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 6199 .loc 1 3267 0 - 6200 0048 FF23 movs r3, #255 - 6201 004a 0385 strh r3, [r0, #40] - 6202 .LVL529: -3268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6203 .loc 1 3268 0 - 6204 004c 8027 movs r7, #128 - 6205 004e 7F04 lsls r7, r7, #17 - 6206 .LVL530: - ARM GAS /tmp/ccFk2Nxo.s page 240 - - - 6207 .L423: -3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6208 .loc 1 3278 0 - 6209 0050 236B ldr r3, [r4, #48] - 6210 0052 112B cmp r3, #17 - 6211 0054 0DD1 bne .L424 -3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6212 .loc 1 3278 0 is_stmt 0 discriminator 1 - 6213 0056 0A9B ldr r3, [sp, #40] - 6214 0058 AA2B cmp r3, #170 - 6215 005a 0AD0 beq .L424 -3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6216 .loc 1 3278 0 discriminator 3 - 6217 005c AA23 movs r3, #170 - 6218 005e 1B02 lsls r3, r3, #8 - 6219 0060 0A9A ldr r2, [sp, #40] - 6220 0062 9A42 cmp r2, r3 - 6221 0064 05D0 beq .L424 -3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6222 .loc 1 3280 0 is_stmt 1 - 6223 0066 0026 movs r6, #0 - 6224 0068 0CE0 b .L425 - 6225 .LVL531: - 6226 .L422: -3272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; - 6227 .loc 1 3272 0 - 6228 006a 438D ldrh r3, [r0, #42] - 6229 006c 0385 strh r3, [r0, #40] -3273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6230 .loc 1 3273 0 - 6231 006e C76A ldr r7, [r0, #44] - 6232 .LVL532: - 6233 0070 EEE7 b .L423 - 6234 .L424: -3285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6235 .loc 1 3285 0 - 6236 0072 2000 movs r0, r4 - 6237 .LVL533: - 6238 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions - 6239 .LVL534: -3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6240 .loc 1 3288 0 - 6241 0078 638D ldrh r3, [r4, #42] - 6242 007a 9BB2 uxth r3, r3 - 6243 007c FE2B cmp r3, #254 - 6244 007e 28D8 bhi .L433 -3290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6245 .loc 1 3290 0 - 6246 0080 E76A ldr r7, [r4, #44] - 6247 .LVL535: -3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; - 6248 .loc 1 3243 0 - 6249 0082 374E ldr r6, .L436+4 - 6250 .L425: - 6251 .LVL536: -3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6252 .loc 1 3294 0 - ARM GAS /tmp/ccFk2Nxo.s page 241 - - - 6253 0084 228D ldrh r2, [r4, #40] - 6254 0086 002A cmp r2, #0 - 6255 0088 4ED0 beq .L426 -3296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6256 .loc 1 3296 0 - 6257 008a A36B ldr r3, [r4, #56] - 6258 008c 002B cmp r3, #0 - 6259 008e 22D0 beq .L427 -3299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6260 .loc 1 3299 0 - 6261 0090 344A ldr r2, .L436+8 - 6262 0092 9A62 str r2, [r3, #40] -3302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6263 .loc 1 3302 0 - 6264 0094 A36B ldr r3, [r4, #56] - 6265 0096 344A ldr r2, .L436+12 - 6266 0098 1A63 str r2, [r3, #48] -3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; - 6267 .loc 1 3305 0 - 6268 009a A26B ldr r2, [r4, #56] - 6269 009c 0023 movs r3, #0 - 6270 009e D362 str r3, [r2, #44] -3306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6271 .loc 1 3306 0 - 6272 00a0 A26B ldr r2, [r4, #56] - 6273 00a2 5363 str r3, [r2, #52] -3309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6274 .loc 1 3309 0 - 6275 00a4 2268 ldr r2, [r4] - 6276 00a6 2832 adds r2, r2, #40 - 6277 00a8 238D ldrh r3, [r4, #40] - 6278 00aa 2900 movs r1, r5 - 6279 00ac A06B ldr r0, [r4, #56] - 6280 00ae FFF7FEFF bl HAL_DMA_Start_IT - 6281 .LVL537: - 6282 00b2 051E subs r5, r0, #0 - 6283 .LVL538: -3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6284 .loc 1 3326 0 - 6285 00b4 1DD0 beq .L435 -3349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 6286 .loc 1 3349 0 - 6287 00b6 4123 movs r3, #65 - 6288 00b8 2022 movs r2, #32 - 6289 00ba E254 strb r2, [r4, r3] -3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6290 .loc 1 3350 0 - 6291 00bc 0022 movs r2, #0 - 6292 00be 0133 adds r3, r3, #1 - 6293 00c0 E254 strb r2, [r4, r3] -3353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6294 .loc 1 3353 0 - 6295 00c2 636C ldr r3, [r4, #68] - 6296 00c4 1021 movs r1, #16 - 6297 00c6 0B43 orrs r3, r1 - 6298 00c8 6364 str r3, [r4, #68] -3356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 242 - - - 6299 .loc 1 3356 0 - 6300 00ca 4023 movs r3, #64 - 6301 00cc E254 strb r2, [r4, r3] -3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6302 .loc 1 3358 0 - 6303 00ce 0125 movs r5, #1 - 6304 00d0 3FE0 b .L421 - 6305 .LVL539: - 6306 .L433: -3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; - 6307 .loc 1 3243 0 - 6308 00d2 234E ldr r6, .L436+4 - 6309 00d4 D6E7 b .L425 - 6310 .LVL540: - 6311 .L427: -3314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 6312 .loc 1 3314 0 - 6313 00d6 4123 movs r3, #65 - 6314 00d8 2022 movs r2, #32 - 6315 00da E254 strb r2, [r4, r3] -3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6316 .loc 1 3315 0 - 6317 00dc 0022 movs r2, #0 - 6318 00de 0133 adds r3, r3, #1 - 6319 00e0 E254 strb r2, [r4, r3] -3318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6320 .loc 1 3318 0 - 6321 00e2 636C ldr r3, [r4, #68] - 6322 00e4 8021 movs r1, #128 - 6323 00e6 0B43 orrs r3, r1 - 6324 00e8 6364 str r3, [r4, #68] -3321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6325 .loc 1 3321 0 - 6326 00ea 4023 movs r3, #64 - 6327 00ec E254 strb r2, [r4, r3] -3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6328 .loc 1 3323 0 - 6329 00ee 0125 movs r5, #1 - 6330 .LVL541: - 6331 00f0 2FE0 b .L421 - 6332 .LVL542: - 6333 .L435: -3329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6334 .loc 1 3329 0 - 6335 00f2 228D ldrh r2, [r4, #40] - 6336 00f4 D2B2 uxtb r2, r2 - 6337 00f6 0096 str r6, [sp] - 6338 00f8 3B00 movs r3, r7 - 6339 00fa 0399 ldr r1, [sp, #12] - 6340 00fc 2000 movs r0, r4 - 6341 .LVL543: - 6342 00fe FFF7FEFF bl I2C_TransferConfig - 6343 .LVL544: -3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6344 .loc 1 3332 0 - 6345 0102 638D ldrh r3, [r4, #42] - 6346 0104 228D ldrh r2, [r4, #40] - ARM GAS /tmp/ccFk2Nxo.s page 243 - - - 6347 0106 9B1A subs r3, r3, r2 - 6348 0108 9BB2 uxth r3, r3 - 6349 010a 6385 strh r3, [r4, #42] -3335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6350 .loc 1 3335 0 - 6351 010c 4023 movs r3, #64 - 6352 010e 0022 movs r2, #0 - 6353 0110 E254 strb r2, [r4, r3] -3341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6354 .loc 1 3341 0 - 6355 0112 1121 movs r1, #17 - 6356 0114 2000 movs r0, r4 - 6357 0116 FFF7FEFF bl I2C_Enable_IRQ - 6358 .LVL545: -3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6359 .loc 1 3344 0 - 6360 011a 2268 ldr r2, [r4] - 6361 011c 1168 ldr r1, [r2] - 6362 011e 8023 movs r3, #128 - 6363 0120 DB01 lsls r3, r3, #7 - 6364 0122 0B43 orrs r3, r1 - 6365 0124 1360 str r3, [r2] - 6366 0126 14E0 b .L421 - 6367 .LVL546: - 6368 .L426: -3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6369 .loc 1 3364 0 - 6370 0128 104B ldr r3, .L436+16 - 6371 012a 6363 str r3, [r4, #52] -3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6372 .loc 1 3368 0 - 6373 012c 8023 movs r3, #128 - 6374 012e D2B2 uxtb r2, r2 - 6375 0130 0B49 ldr r1, .L436+4 - 6376 0132 0091 str r1, [sp] - 6377 0134 9B04 lsls r3, r3, #18 - 6378 0136 0399 ldr r1, [sp, #12] - 6379 0138 2000 movs r0, r4 - 6380 013a FFF7FEFF bl I2C_TransferConfig - 6381 .LVL547: -3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6382 .loc 1 3371 0 - 6383 013e 4023 movs r3, #64 - 6384 0140 0022 movs r2, #0 - 6385 0142 E254 strb r2, [r4, r3] -3379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6386 .loc 1 3379 0 - 6387 0144 0121 movs r1, #1 - 6388 0146 2000 movs r0, r4 - 6389 0148 FFF7FEFF bl I2C_Enable_IRQ - 6390 .LVL548: -3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6391 .loc 1 3382 0 - 6392 014c 0025 movs r5, #0 - 6393 .LVL549: - 6394 014e 00E0 b .L421 - 6395 .LVL550: - ARM GAS /tmp/ccFk2Nxo.s page 244 - - - 6396 .L430: -3386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6397 .loc 1 3386 0 - 6398 0150 0225 movs r5, #2 - 6399 .LVL551: - 6400 .L421: -3388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6401 .loc 1 3388 0 - 6402 0152 2800 movs r0, r5 - 6403 0154 05B0 add sp, sp, #20 - 6404 @ sp needed - 6405 .LVL552: - 6406 0156 F0BD pop {r4, r5, r6, r7, pc} - 6407 .LVL553: - 6408 .L431: -3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6409 .loc 1 3252 0 - 6410 0158 0225 movs r5, #2 - 6411 .LVL554: - 6412 015a FAE7 b .L421 - 6413 .L437: - 6414 .align 2 - 6415 .L436: - 6416 015c 00000000 .word I2C_Master_ISR_DMA - 6417 0160 00200080 .word -2147475456 - 6418 0164 00000000 .word I2C_DMAMasterTransmitCplt - 6419 0168 00000000 .word I2C_DMAError - 6420 016c 00000000 .word I2C_Master_ISR_IT - 6421 .cfi_endproc - 6422 .LFE64: - 6424 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits - 6425 .align 1 - 6426 .global HAL_I2C_Master_Seq_Receive_IT - 6427 .syntax unified - 6428 .code 16 - 6429 .thumb_func - 6430 .fpu softvfp - 6432 HAL_I2C_Master_Seq_Receive_IT: - 6433 .LFB65: -3403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; - 6434 .loc 1 3403 0 - 6435 .cfi_startproc - 6436 @ args = 4, pretend = 0, frame = 0 - 6437 @ frame_needed = 0, uses_anonymous_args = 0 - 6438 .LVL555: - 6439 0000 70B5 push {r4, r5, r6, lr} - 6440 .LCFI53: - 6441 .cfi_def_cfa_offset 16 - 6442 .cfi_offset 4, -16 - 6443 .cfi_offset 5, -12 - 6444 .cfi_offset 6, -8 - 6445 .cfi_offset 14, -4 - 6446 0002 82B0 sub sp, sp, #8 - 6447 .LCFI54: - 6448 .cfi_def_cfa_offset 24 - 6449 0004 0400 movs r4, r0 - 6450 0006 0D00 movs r5, r1 - ARM GAS /tmp/ccFk2Nxo.s page 245 - - - 6451 .LVL556: -3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6452 .loc 1 3410 0 - 6453 0008 4121 movs r1, #65 - 6454 .LVL557: - 6455 000a 415C ldrb r1, [r0, r1] - 6456 000c 2029 cmp r1, #32 - 6457 000e 49D1 bne .L444 -3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6458 .loc 1 3413 0 - 6459 0010 2031 adds r1, r1, #32 - 6460 0012 415C ldrb r1, [r0, r1] - 6461 0014 0129 cmp r1, #1 - 6462 0016 48D0 beq .L445 -3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6463 .loc 1 3413 0 is_stmt 0 discriminator 2 - 6464 0018 4021 movs r1, #64 - 6465 001a 0120 movs r0, #1 - 6466 .LVL558: - 6467 001c 6054 strb r0, [r4, r1] -3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 6468 .loc 1 3415 0 is_stmt 1 discriminator 2 - 6469 001e 0131 adds r1, r1, #1 - 6470 0020 2130 adds r0, r0, #33 - 6471 0022 6054 strb r0, [r4, r1] -3416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 6472 .loc 1 3416 0 discriminator 2 - 6473 0024 0131 adds r1, r1, #1 - 6474 0026 1238 subs r0, r0, #18 - 6475 0028 6054 strb r0, [r4, r1] -3417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6476 .loc 1 3417 0 discriminator 2 - 6477 002a 0021 movs r1, #0 - 6478 002c 6164 str r1, [r4, #68] -3420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 6479 .loc 1 3420 0 discriminator 2 - 6480 002e 6262 str r2, [r4, #36] -3421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; - 6481 .loc 1 3421 0 discriminator 2 - 6482 0030 6385 strh r3, [r4, #42] -3422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; - 6483 .loc 1 3422 0 discriminator 2 - 6484 0032 069B ldr r3, [sp, #24] - 6485 .LVL559: - 6486 0034 E362 str r3, [r4, #44] - 6487 .LVL560: -3423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6488 .loc 1 3423 0 discriminator 2 - 6489 0036 1E4B ldr r3, .L448 - 6490 0038 6363 str r3, [r4, #52] -3426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6491 .loc 1 3426 0 discriminator 2 - 6492 003a 638D ldrh r3, [r4, #42] - 6493 003c 9BB2 uxth r3, r3 - 6494 003e FF2B cmp r3, #255 - 6495 0040 10D9 bls .L440 -3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - ARM GAS /tmp/ccFk2Nxo.s page 246 - - - 6496 .loc 1 3428 0 - 6497 0042 FF23 movs r3, #255 - 6498 0044 2385 strh r3, [r4, #40] - 6499 .LVL561: -3429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6500 .loc 1 3429 0 - 6501 0046 8026 movs r6, #128 - 6502 0048 7604 lsls r6, r6, #17 - 6503 .LVL562: - 6504 .L441: -3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6505 .loc 1 3439 0 - 6506 004a 236B ldr r3, [r4, #48] - 6507 004c 122B cmp r3, #18 - 6508 004e 0DD1 bne .L442 -3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6509 .loc 1 3439 0 is_stmt 0 discriminator 1 - 6510 0050 069B ldr r3, [sp, #24] - 6511 0052 AA2B cmp r3, #170 - 6512 0054 0AD0 beq .L442 -3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6513 .loc 1 3439 0 discriminator 3 - 6514 0056 AA23 movs r3, #170 - 6515 0058 1B02 lsls r3, r3, #8 - 6516 005a 069A ldr r2, [sp, #24] - 6517 .LVL563: - 6518 005c 9A42 cmp r2, r3 - 6519 005e 05D0 beq .L442 -3441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6520 .loc 1 3441 0 is_stmt 1 - 6521 0060 0023 movs r3, #0 - 6522 0062 0CE0 b .L443 - 6523 .LVL564: - 6524 .L440: -3433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; - 6525 .loc 1 3433 0 - 6526 0064 638D ldrh r3, [r4, #42] - 6527 0066 2385 strh r3, [r4, #40] -3434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6528 .loc 1 3434 0 - 6529 0068 E66A ldr r6, [r4, #44] - 6530 .LVL565: - 6531 006a EEE7 b .L441 - 6532 .LVL566: - 6533 .L442: -3446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6534 .loc 1 3446 0 - 6535 006c 2000 movs r0, r4 - 6536 006e FFF7FEFF bl I2C_ConvertOtherXferOptions - 6537 .LVL567: -3449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6538 .loc 1 3449 0 - 6539 0072 638D ldrh r3, [r4, #42] - 6540 0074 9BB2 uxth r3, r3 - 6541 0076 FE2B cmp r3, #254 - 6542 0078 12D8 bhi .L447 -3451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 247 - - - 6543 .loc 1 3451 0 - 6544 007a E66A ldr r6, [r4, #44] - 6545 .LVL568: -3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6546 .loc 1 3405 0 - 6547 007c 0D4B ldr r3, .L448+4 - 6548 .L443: - 6549 .LVL569: -3456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6550 .loc 1 3456 0 - 6551 007e 228D ldrh r2, [r4, #40] - 6552 0080 D2B2 uxtb r2, r2 - 6553 0082 0093 str r3, [sp] - 6554 0084 3300 movs r3, r6 - 6555 .LVL570: - 6556 0086 2900 movs r1, r5 - 6557 0088 2000 movs r0, r4 - 6558 008a FFF7FEFF bl I2C_TransferConfig - 6559 .LVL571: -3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6560 .loc 1 3459 0 - 6561 008e 4023 movs r3, #64 - 6562 0090 0022 movs r2, #0 - 6563 0092 E254 strb r2, [r4, r3] -3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6564 .loc 1 3464 0 - 6565 0094 0221 movs r1, #2 - 6566 0096 2000 movs r0, r4 - 6567 0098 FFF7FEFF bl I2C_Enable_IRQ - 6568 .LVL572: -3466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6569 .loc 1 3466 0 - 6570 009c 0020 movs r0, #0 - 6571 009e 02E0 b .L439 - 6572 .LVL573: - 6573 .L447: -3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6574 .loc 1 3405 0 - 6575 00a0 044B ldr r3, .L448+4 - 6576 00a2 ECE7 b .L443 - 6577 .LVL574: - 6578 .L444: -3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6579 .loc 1 3470 0 - 6580 00a4 0220 movs r0, #2 - 6581 .LVL575: - 6582 .L439: -3472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6583 .loc 1 3472 0 - 6584 00a6 02B0 add sp, sp, #8 - 6585 @ sp needed - 6586 .LVL576: - 6587 00a8 70BD pop {r4, r5, r6, pc} - 6588 .LVL577: - 6589 .L445: -3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6590 .loc 1 3413 0 - ARM GAS /tmp/ccFk2Nxo.s page 248 - - - 6591 00aa 0220 movs r0, #2 - 6592 .LVL578: - 6593 00ac FBE7 b .L439 - 6594 .L449: - 6595 00ae C046 .align 2 - 6596 .L448: - 6597 00b0 00000000 .word I2C_Master_ISR_IT - 6598 00b4 00240080 .word -2147474432 - 6599 .cfi_endproc - 6600 .LFE65: - 6602 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits - 6603 .align 1 - 6604 .global HAL_I2C_Master_Seq_Receive_DMA - 6605 .syntax unified - 6606 .code 16 - 6607 .thumb_func - 6608 .fpu softvfp - 6610 HAL_I2C_Master_Seq_Receive_DMA: - 6611 .LFB66: -3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; - 6612 .loc 1 3487 0 - 6613 .cfi_startproc - 6614 @ args = 4, pretend = 0, frame = 8 - 6615 @ frame_needed = 0, uses_anonymous_args = 0 - 6616 .LVL579: - 6617 0000 F0B5 push {r4, r5, r6, r7, lr} - 6618 .LCFI55: - 6619 .cfi_def_cfa_offset 20 - 6620 .cfi_offset 4, -20 - 6621 .cfi_offset 5, -16 - 6622 .cfi_offset 6, -12 - 6623 .cfi_offset 7, -8 - 6624 .cfi_offset 14, -4 - 6625 0002 85B0 sub sp, sp, #20 - 6626 .LCFI56: - 6627 .cfi_def_cfa_offset 40 - 6628 0004 0400 movs r4, r0 - 6629 0006 0391 str r1, [sp, #12] - 6630 0008 1500 movs r5, r2 - 6631 .LVL580: -3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6632 .loc 1 3495 0 - 6633 000a 4122 movs r2, #65 - 6634 .LVL581: - 6635 000c 825C ldrb r2, [r0, r2] - 6636 000e 202A cmp r2, #32 - 6637 0010 00D0 beq .LCB6764 - 6638 0012 9DE0 b .L460 @long jump - 6639 .LCB6764: -3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6640 .loc 1 3498 0 - 6641 0014 2032 adds r2, r2, #32 - 6642 0016 825C ldrb r2, [r0, r2] - 6643 0018 012A cmp r2, #1 - 6644 001a 00D1 bne .LCB6768 - 6645 001c 9CE0 b .L461 @long jump - 6646 .LCB6768: - ARM GAS /tmp/ccFk2Nxo.s page 249 - - -3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6647 .loc 1 3498 0 is_stmt 0 discriminator 2 - 6648 001e 4022 movs r2, #64 - 6649 0020 0121 movs r1, #1 - 6650 .LVL582: - 6651 0022 8154 strb r1, [r0, r2] -3500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; - 6652 .loc 1 3500 0 is_stmt 1 discriminator 2 - 6653 0024 0132 adds r2, r2, #1 - 6654 0026 2131 adds r1, r1, #33 - 6655 0028 8154 strb r1, [r0, r2] -3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 6656 .loc 1 3501 0 discriminator 2 - 6657 002a 0132 adds r2, r2, #1 - 6658 002c 1239 subs r1, r1, #18 - 6659 002e 8154 strb r1, [r0, r2] -3502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6660 .loc 1 3502 0 discriminator 2 - 6661 0030 0022 movs r2, #0 - 6662 0032 4264 str r2, [r0, #68] -3505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 6663 .loc 1 3505 0 discriminator 2 - 6664 0034 4562 str r5, [r0, #36] -3506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; - 6665 .loc 1 3506 0 discriminator 2 - 6666 0036 4385 strh r3, [r0, #42] -3507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; - 6667 .loc 1 3507 0 discriminator 2 - 6668 0038 0A9B ldr r3, [sp, #40] - 6669 .LVL583: - 6670 003a C362 str r3, [r0, #44] - 6671 .LVL584: -3508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6672 .loc 1 3508 0 discriminator 2 - 6673 003c 474B ldr r3, .L466 - 6674 003e 4363 str r3, [r0, #52] -3511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6675 .loc 1 3511 0 discriminator 2 - 6676 0040 438D ldrh r3, [r0, #42] - 6677 0042 9BB2 uxth r3, r3 - 6678 0044 FF2B cmp r3, #255 - 6679 0046 10D9 bls .L452 -3513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 6680 .loc 1 3513 0 - 6681 0048 FF23 movs r3, #255 - 6682 004a 0385 strh r3, [r0, #40] - 6683 .LVL585: -3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6684 .loc 1 3514 0 - 6685 004c 8027 movs r7, #128 - 6686 004e 7F04 lsls r7, r7, #17 - 6687 .LVL586: - 6688 .L453: -3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6689 .loc 1 3524 0 - 6690 0050 236B ldr r3, [r4, #48] - 6691 0052 122B cmp r3, #18 - ARM GAS /tmp/ccFk2Nxo.s page 250 - - - 6692 0054 0DD1 bne .L454 -3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6693 .loc 1 3524 0 is_stmt 0 discriminator 1 - 6694 0056 0A9B ldr r3, [sp, #40] - 6695 0058 AA2B cmp r3, #170 - 6696 005a 0AD0 beq .L454 -3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6697 .loc 1 3524 0 discriminator 3 - 6698 005c AA23 movs r3, #170 - 6699 005e 1B02 lsls r3, r3, #8 - 6700 0060 0A9A ldr r2, [sp, #40] - 6701 0062 9A42 cmp r2, r3 - 6702 0064 05D0 beq .L454 -3526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6703 .loc 1 3526 0 is_stmt 1 - 6704 0066 0026 movs r6, #0 - 6705 0068 0CE0 b .L455 - 6706 .LVL587: - 6707 .L452: -3518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; - 6708 .loc 1 3518 0 - 6709 006a 438D ldrh r3, [r0, #42] - 6710 006c 0385 strh r3, [r0, #40] -3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6711 .loc 1 3519 0 - 6712 006e C76A ldr r7, [r0, #44] - 6713 .LVL588: - 6714 0070 EEE7 b .L453 - 6715 .L454: -3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6716 .loc 1 3531 0 - 6717 0072 2000 movs r0, r4 - 6718 .LVL589: - 6719 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions - 6720 .LVL590: -3534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6721 .loc 1 3534 0 - 6722 0078 638D ldrh r3, [r4, #42] - 6723 007a 9BB2 uxth r3, r3 - 6724 007c FE2B cmp r3, #254 - 6725 007e 28D8 bhi .L463 -3536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6726 .loc 1 3536 0 - 6727 0080 E76A ldr r7, [r4, #44] - 6728 .LVL591: -3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; - 6729 .loc 1 3489 0 - 6730 0082 374E ldr r6, .L466+4 - 6731 .L455: - 6732 .LVL592: -3540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6733 .loc 1 3540 0 - 6734 0084 228D ldrh r2, [r4, #40] - 6735 0086 002A cmp r2, #0 - 6736 0088 4ED0 beq .L456 -3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6737 .loc 1 3542 0 - ARM GAS /tmp/ccFk2Nxo.s page 251 - - - 6738 008a E36B ldr r3, [r4, #60] - 6739 008c 002B cmp r3, #0 - 6740 008e 22D0 beq .L457 -3545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6741 .loc 1 3545 0 - 6742 0090 344A ldr r2, .L466+8 - 6743 0092 9A62 str r2, [r3, #40] -3548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6744 .loc 1 3548 0 - 6745 0094 E36B ldr r3, [r4, #60] - 6746 0096 344A ldr r2, .L466+12 - 6747 0098 1A63 str r2, [r3, #48] -3551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; - 6748 .loc 1 3551 0 - 6749 009a E26B ldr r2, [r4, #60] - 6750 009c 0023 movs r3, #0 - 6751 009e D362 str r3, [r2, #44] -3552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6752 .loc 1 3552 0 - 6753 00a0 E26B ldr r2, [r4, #60] - 6754 00a2 5363 str r3, [r2, #52] -3555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6755 .loc 1 3555 0 - 6756 00a4 2168 ldr r1, [r4] - 6757 00a6 2431 adds r1, r1, #36 - 6758 00a8 238D ldrh r3, [r4, #40] - 6759 00aa 2A00 movs r2, r5 - 6760 00ac E06B ldr r0, [r4, #60] - 6761 00ae FFF7FEFF bl HAL_DMA_Start_IT - 6762 .LVL593: - 6763 00b2 051E subs r5, r0, #0 - 6764 .LVL594: -3572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6765 .loc 1 3572 0 - 6766 00b4 1DD0 beq .L465 -3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 6767 .loc 1 3595 0 - 6768 00b6 4123 movs r3, #65 - 6769 00b8 2022 movs r2, #32 - 6770 00ba E254 strb r2, [r4, r3] -3596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6771 .loc 1 3596 0 - 6772 00bc 0022 movs r2, #0 - 6773 00be 0133 adds r3, r3, #1 - 6774 00c0 E254 strb r2, [r4, r3] -3599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6775 .loc 1 3599 0 - 6776 00c2 636C ldr r3, [r4, #68] - 6777 00c4 1021 movs r1, #16 - 6778 00c6 0B43 orrs r3, r1 - 6779 00c8 6364 str r3, [r4, #68] -3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6780 .loc 1 3602 0 - 6781 00ca 4023 movs r3, #64 - 6782 00cc E254 strb r2, [r4, r3] -3604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6783 .loc 1 3604 0 - ARM GAS /tmp/ccFk2Nxo.s page 252 - - - 6784 00ce 0125 movs r5, #1 - 6785 00d0 3FE0 b .L451 - 6786 .LVL595: - 6787 .L463: -3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; - 6788 .loc 1 3489 0 - 6789 00d2 234E ldr r6, .L466+4 - 6790 00d4 D6E7 b .L455 - 6791 .LVL596: - 6792 .L457: -3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 6793 .loc 1 3560 0 - 6794 00d6 4123 movs r3, #65 - 6795 00d8 2022 movs r2, #32 - 6796 00da E254 strb r2, [r4, r3] -3561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6797 .loc 1 3561 0 - 6798 00dc 0022 movs r2, #0 - 6799 00de 0133 adds r3, r3, #1 - 6800 00e0 E254 strb r2, [r4, r3] -3564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6801 .loc 1 3564 0 - 6802 00e2 636C ldr r3, [r4, #68] - 6803 00e4 8021 movs r1, #128 - 6804 00e6 0B43 orrs r3, r1 - 6805 00e8 6364 str r3, [r4, #68] -3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6806 .loc 1 3567 0 - 6807 00ea 4023 movs r3, #64 - 6808 00ec E254 strb r2, [r4, r3] -3569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6809 .loc 1 3569 0 - 6810 00ee 0125 movs r5, #1 - 6811 .LVL597: - 6812 00f0 2FE0 b .L451 - 6813 .LVL598: - 6814 .L465: -3575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6815 .loc 1 3575 0 - 6816 00f2 228D ldrh r2, [r4, #40] - 6817 00f4 D2B2 uxtb r2, r2 - 6818 00f6 0096 str r6, [sp] - 6819 00f8 3B00 movs r3, r7 - 6820 00fa 0399 ldr r1, [sp, #12] - 6821 00fc 2000 movs r0, r4 - 6822 .LVL599: - 6823 00fe FFF7FEFF bl I2C_TransferConfig - 6824 .LVL600: -3578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6825 .loc 1 3578 0 - 6826 0102 638D ldrh r3, [r4, #42] - 6827 0104 228D ldrh r2, [r4, #40] - 6828 0106 9B1A subs r3, r3, r2 - 6829 0108 9BB2 uxth r3, r3 - 6830 010a 6385 strh r3, [r4, #42] -3581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6831 .loc 1 3581 0 - ARM GAS /tmp/ccFk2Nxo.s page 253 - - - 6832 010c 4023 movs r3, #64 - 6833 010e 0022 movs r2, #0 - 6834 0110 E254 strb r2, [r4, r3] -3587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6835 .loc 1 3587 0 - 6836 0112 1121 movs r1, #17 - 6837 0114 2000 movs r0, r4 - 6838 0116 FFF7FEFF bl I2C_Enable_IRQ - 6839 .LVL601: -3590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6840 .loc 1 3590 0 - 6841 011a 2268 ldr r2, [r4] - 6842 011c 1168 ldr r1, [r2] - 6843 011e 8023 movs r3, #128 - 6844 0120 1B02 lsls r3, r3, #8 - 6845 0122 0B43 orrs r3, r1 - 6846 0124 1360 str r3, [r2] - 6847 0126 14E0 b .L451 - 6848 .LVL602: - 6849 .L456: -3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6850 .loc 1 3610 0 - 6851 0128 104B ldr r3, .L466+16 - 6852 012a 6363 str r3, [r4, #52] -3614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6853 .loc 1 3614 0 - 6854 012c 8023 movs r3, #128 - 6855 012e D2B2 uxtb r2, r2 - 6856 0130 0B49 ldr r1, .L466+4 - 6857 0132 0091 str r1, [sp] - 6858 0134 9B04 lsls r3, r3, #18 - 6859 0136 0399 ldr r1, [sp, #12] - 6860 0138 2000 movs r0, r4 - 6861 013a FFF7FEFF bl I2C_TransferConfig - 6862 .LVL603: -3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6863 .loc 1 3617 0 - 6864 013e 4023 movs r3, #64 - 6865 0140 0022 movs r2, #0 - 6866 0142 E254 strb r2, [r4, r3] -3625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6867 .loc 1 3625 0 - 6868 0144 0121 movs r1, #1 - 6869 0146 2000 movs r0, r4 - 6870 0148 FFF7FEFF bl I2C_Enable_IRQ - 6871 .LVL604: -3628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6872 .loc 1 3628 0 - 6873 014c 0025 movs r5, #0 - 6874 .LVL605: - 6875 014e 00E0 b .L451 - 6876 .LVL606: - 6877 .L460: -3632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6878 .loc 1 3632 0 - 6879 0150 0225 movs r5, #2 - 6880 .LVL607: - ARM GAS /tmp/ccFk2Nxo.s page 254 - - - 6881 .L451: -3634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6882 .loc 1 3634 0 - 6883 0152 2800 movs r0, r5 - 6884 0154 05B0 add sp, sp, #20 - 6885 @ sp needed - 6886 .LVL608: - 6887 0156 F0BD pop {r4, r5, r6, r7, pc} - 6888 .LVL609: - 6889 .L461: -3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6890 .loc 1 3498 0 - 6891 0158 0225 movs r5, #2 - 6892 .LVL610: - 6893 015a FAE7 b .L451 - 6894 .L467: - 6895 .align 2 - 6896 .L466: - 6897 015c 00000000 .word I2C_Master_ISR_DMA - 6898 0160 00240080 .word -2147474432 - 6899 0164 00000000 .word I2C_DMAMasterReceiveCplt - 6900 0168 00000000 .word I2C_DMAError - 6901 016c 00000000 .word I2C_Master_ISR_IT - 6902 .cfi_endproc - 6903 .LFE66: - 6905 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits - 6906 .align 1 - 6907 .global HAL_I2C_Slave_Seq_Transmit_IT - 6908 .syntax unified - 6909 .code 16 - 6910 .thumb_func - 6911 .fpu softvfp - 6913 HAL_I2C_Slave_Seq_Transmit_IT: - 6914 .LFB67: -3647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ - 6915 .loc 1 3647 0 - 6916 .cfi_startproc - 6917 @ args = 0, pretend = 0, frame = 0 - 6918 @ frame_needed = 0, uses_anonymous_args = 0 - 6919 .LVL611: - 6920 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 6921 .LCFI57: - 6922 .cfi_def_cfa_offset 24 - 6923 .cfi_offset 3, -24 - 6924 .cfi_offset 4, -20 - 6925 .cfi_offset 5, -16 - 6926 .cfi_offset 6, -12 - 6927 .cfi_offset 7, -8 - 6928 .cfi_offset 14, -4 - 6929 0002 0700 movs r7, r0 - 6930 0004 0C00 movs r4, r1 - 6931 0006 1500 movs r5, r2 - 6932 0008 1E00 movs r6, r3 -3651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6933 .loc 1 3651 0 - 6934 000a 4123 movs r3, #65 - 6935 .LVL612: - ARM GAS /tmp/ccFk2Nxo.s page 255 - - - 6936 000c C35C ldrb r3, [r0, r3] - 6937 000e 2822 movs r2, #40 - 6938 .LVL613: - 6939 0010 1340 ands r3, r2 - 6940 0012 282B cmp r3, #40 - 6941 0014 01D0 beq .L476 -3727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6942 .loc 1 3727 0 - 6943 0016 0120 movs r0, #1 - 6944 .LVL614: - 6945 .L469: -3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6946 .loc 1 3729 0 - 6947 @ sp needed - 6948 .LVL615: - 6949 .LVL616: - 6950 .LVL617: - 6951 0018 F8BD pop {r3, r4, r5, r6, r7, pc} - 6952 .LVL618: - 6953 .L476: -3653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6954 .loc 1 3653 0 - 6955 001a 0029 cmp r1, #0 - 6956 001c 01D0 beq .L470 -3653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6957 .loc 1 3653 0 is_stmt 0 discriminator 1 - 6958 001e 002D cmp r5, #0 - 6959 0020 04D1 bne .L471 - 6960 .L470: -3655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 6961 .loc 1 3655 0 is_stmt 1 - 6962 0022 8023 movs r3, #128 - 6963 0024 9B00 lsls r3, r3, #2 - 6964 0026 7B64 str r3, [r7, #68] -3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 6965 .loc 1 3656 0 - 6966 0028 0120 movs r0, #1 - 6967 .LVL619: - 6968 002a F5E7 b .L469 - 6969 .LVL620: - 6970 .L471: -3660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6971 .loc 1 3660 0 - 6972 002c 0521 movs r1, #5 - 6973 .LVL621: - 6974 002e FFF7FEFF bl I2C_Disable_IRQ - 6975 .LVL622: -3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6976 .loc 1 3663 0 - 6977 0032 4023 movs r3, #64 - 6978 0034 FB5C ldrb r3, [r7, r3] - 6979 0036 012B cmp r3, #1 - 6980 0038 43D0 beq .L475 -3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6981 .loc 1 3663 0 is_stmt 0 discriminator 2 - 6982 003a 4023 movs r3, #64 - 6983 003c 0122 movs r2, #1 - ARM GAS /tmp/ccFk2Nxo.s page 256 - - - 6984 003e FA54 strb r2, [r7, r3] -3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 6985 .loc 1 3667 0 is_stmt 1 discriminator 2 - 6986 0040 0133 adds r3, r3, #1 - 6987 0042 FB5C ldrb r3, [r7, r3] - 6988 0044 2A2B cmp r3, #42 - 6989 0046 22D0 beq .L477 - 6990 .L472: -3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 6991 .loc 1 3693 0 - 6992 0048 4123 movs r3, #65 - 6993 004a 2922 movs r2, #41 - 6994 004c FA54 strb r2, [r7, r3] -3694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 6995 .loc 1 3694 0 - 6996 004e 0133 adds r3, r3, #1 - 6997 0050 093A subs r2, r2, #9 - 6998 0052 FA54 strb r2, [r7, r3] -3695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 6999 .loc 1 3695 0 - 7000 0054 0023 movs r3, #0 - 7001 0056 7B64 str r3, [r7, #68] -3698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7002 .loc 1 3698 0 - 7003 0058 3A68 ldr r2, [r7] - 7004 005a 5368 ldr r3, [r2, #4] - 7005 005c 1A49 ldr r1, .L478 - 7006 005e 0B40 ands r3, r1 - 7007 0060 5360 str r3, [r2, #4] -3701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 7008 .loc 1 3701 0 - 7009 0062 7C62 str r4, [r7, #36] -3702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; - 7010 .loc 1 3702 0 - 7011 0064 7D85 strh r5, [r7, #42] -3703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; - 7012 .loc 1 3703 0 - 7013 0066 7B8D ldrh r3, [r7, #42] - 7014 0068 3B85 strh r3, [r7, #40] -3704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; - 7015 .loc 1 3704 0 - 7016 006a FE62 str r6, [r7, #44] -3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7017 .loc 1 3705 0 - 7018 006c 174B ldr r3, .L478+4 - 7019 006e 7B63 str r3, [r7, #52] -3707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7020 .loc 1 3707 0 - 7021 0070 3B68 ldr r3, [r7] - 7022 0072 9A69 ldr r2, [r3, #24] - 7023 0074 D203 lsls r2, r2, #15 - 7024 0076 01D5 bpl .L473 -3711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7025 .loc 1 3711 0 - 7026 0078 0822 movs r2, #8 - 7027 007a DA61 str r2, [r3, #28] - 7028 .L473: - ARM GAS /tmp/ccFk2Nxo.s page 257 - - -3715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7029 .loc 1 3715 0 - 7030 007c 4023 movs r3, #64 - 7031 007e 0022 movs r2, #0 - 7032 0080 FA54 strb r2, [r7, r3] -3721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7033 .loc 1 3721 0 - 7034 0082 0521 movs r1, #5 - 7035 0084 3800 movs r0, r7 - 7036 0086 FFF7FEFF bl I2C_Enable_IRQ - 7037 .LVL623: -3723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7038 .loc 1 3723 0 - 7039 008a 0020 movs r0, #0 - 7040 008c C4E7 b .L469 - 7041 .L477: -3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7042 .loc 1 3670 0 - 7043 008e 0221 movs r1, #2 - 7044 0090 3800 movs r0, r7 - 7045 0092 FFF7FEFF bl I2C_Disable_IRQ - 7046 .LVL624: -3673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7047 .loc 1 3673 0 - 7048 0096 3B68 ldr r3, [r7] - 7049 0098 1A68 ldr r2, [r3] - 7050 009a 1204 lsls r2, r2, #16 - 7051 009c D4D5 bpl .L472 -3675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7052 .loc 1 3675 0 - 7053 009e 1A68 ldr r2, [r3] - 7054 00a0 0949 ldr r1, .L478 - 7055 00a2 0A40 ands r2, r1 - 7056 00a4 1A60 str r2, [r3] -3677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7057 .loc 1 3677 0 - 7058 00a6 FB6B ldr r3, [r7, #60] - 7059 00a8 002B cmp r3, #0 - 7060 00aa CDD0 beq .L472 -3681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7061 .loc 1 3681 0 - 7062 00ac 084A ldr r2, .L478+8 - 7063 00ae 5A63 str r2, [r3, #52] -3684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7064 .loc 1 3684 0 - 7065 00b0 F86B ldr r0, [r7, #60] - 7066 00b2 FFF7FEFF bl HAL_DMA_Abort_IT - 7067 .LVL625: - 7068 00b6 0028 cmp r0, #0 - 7069 00b8 C6D0 beq .L472 -3687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7070 .loc 1 3687 0 - 7071 00ba F86B ldr r0, [r7, #60] - 7072 00bc 436B ldr r3, [r0, #52] - 7073 00be 9847 blx r3 - 7074 .LVL626: - 7075 00c0 C2E7 b .L472 - ARM GAS /tmp/ccFk2Nxo.s page 258 - - - 7076 .L475: -3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7077 .loc 1 3663 0 - 7078 00c2 0220 movs r0, #2 - 7079 00c4 A8E7 b .L469 - 7080 .L479: - 7081 00c6 C046 .align 2 - 7082 .L478: - 7083 00c8 FF7FFFFF .word -32769 - 7084 00cc 00000000 .word I2C_Slave_ISR_IT - 7085 00d0 00000000 .word I2C_DMAAbort - 7086 .cfi_endproc - 7087 .LFE67: - 7089 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits - 7090 .align 1 - 7091 .global HAL_I2C_Slave_Seq_Transmit_DMA - 7092 .syntax unified - 7093 .code 16 - 7094 .thumb_func - 7095 .fpu softvfp - 7097 HAL_I2C_Slave_Seq_Transmit_DMA: - 7098 .LFB68: -3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; - 7099 .loc 1 3742 0 - 7100 .cfi_startproc - 7101 @ args = 0, pretend = 0, frame = 0 - 7102 @ frame_needed = 0, uses_anonymous_args = 0 - 7103 .LVL627: - 7104 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 7105 .LCFI58: - 7106 .cfi_def_cfa_offset 24 - 7107 .cfi_offset 3, -24 - 7108 .cfi_offset 4, -20 - 7109 .cfi_offset 5, -16 - 7110 .cfi_offset 6, -12 - 7111 .cfi_offset 7, -8 - 7112 .cfi_offset 14, -4 - 7113 0002 0400 movs r4, r0 - 7114 0004 0D00 movs r5, r1 - 7115 0006 1600 movs r6, r2 - 7116 0008 1F00 movs r7, r3 -3748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7117 .loc 1 3748 0 - 7118 000a 4123 movs r3, #65 - 7119 .LVL628: - 7120 000c C35C ldrb r3, [r0, r3] - 7121 000e 2822 movs r2, #40 - 7122 .LVL629: - 7123 0010 1340 ands r3, r2 - 7124 0012 282B cmp r3, #40 - 7125 0014 02D0 beq .L494 -3906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7126 .loc 1 3906 0 - 7127 0016 0125 movs r5, #1 - 7128 .LVL630: - 7129 .L481: -3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 259 - - - 7130 .loc 1 3908 0 - 7131 0018 2800 movs r0, r5 - 7132 @ sp needed - 7133 .LVL631: - 7134 .LVL632: - 7135 001a F8BD pop {r3, r4, r5, r6, r7, pc} - 7136 .LVL633: - 7137 .L494: -3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7138 .loc 1 3750 0 - 7139 001c 0029 cmp r1, #0 - 7140 001e 57D0 beq .L482 -3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7141 .loc 1 3750 0 is_stmt 0 discriminator 1 - 7142 0020 002E cmp r6, #0 - 7143 0022 55D0 beq .L482 -3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7144 .loc 1 3757 0 is_stmt 1 - 7145 0024 4023 movs r3, #64 - 7146 0026 C35C ldrb r3, [r0, r3] - 7147 0028 012B cmp r3, #1 - 7148 002a 00D1 bne .LCB7285 - 7149 002c A5E0 b .L492 @long jump - 7150 .LCB7285: -3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7151 .loc 1 3757 0 is_stmt 0 discriminator 2 - 7152 002e 4023 movs r3, #64 - 7153 0030 0122 movs r2, #1 - 7154 0032 C254 strb r2, [r0, r3] -3760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7155 .loc 1 3760 0 is_stmt 1 discriminator 2 - 7156 0034 0521 movs r1, #5 - 7157 .LVL634: - 7158 0036 FFF7FEFF bl I2C_Disable_IRQ - 7159 .LVL635: -3764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7160 .loc 1 3764 0 discriminator 2 - 7161 003a 4123 movs r3, #65 - 7162 003c E35C ldrb r3, [r4, r3] - 7163 003e 2A2B cmp r3, #42 - 7164 0040 4BD0 beq .L495 -3789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7165 .loc 1 3789 0 - 7166 0042 4123 movs r3, #65 - 7167 0044 E35C ldrb r3, [r4, r3] - 7168 0046 292B cmp r3, #41 - 7169 0048 62D0 beq .L496 - 7170 .L485: -3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 7171 .loc 1 3816 0 - 7172 004a 4123 movs r3, #65 - 7173 004c 2922 movs r2, #41 - 7174 004e E254 strb r2, [r4, r3] -3817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 7175 .loc 1 3817 0 - 7176 0050 0133 adds r3, r3, #1 - 7177 0052 093A subs r2, r2, #9 - ARM GAS /tmp/ccFk2Nxo.s page 260 - - - 7178 0054 E254 strb r2, [r4, r3] -3818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7179 .loc 1 3818 0 - 7180 0056 0023 movs r3, #0 - 7181 0058 6364 str r3, [r4, #68] -3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7182 .loc 1 3821 0 - 7183 005a 2268 ldr r2, [r4] - 7184 005c 5368 ldr r3, [r2, #4] - 7185 005e 4849 ldr r1, .L498 - 7186 0060 0B40 ands r3, r1 - 7187 0062 5360 str r3, [r2, #4] -3824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 7188 .loc 1 3824 0 - 7189 0064 6562 str r5, [r4, #36] -3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; - 7190 .loc 1 3825 0 - 7191 0066 6685 strh r6, [r4, #42] -3826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; - 7192 .loc 1 3826 0 - 7193 0068 638D ldrh r3, [r4, #42] - 7194 006a 2385 strh r3, [r4, #40] -3827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; - 7195 .loc 1 3827 0 - 7196 006c E762 str r7, [r4, #44] -3828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7197 .loc 1 3828 0 - 7198 006e 454B ldr r3, .L498+4 - 7199 0070 6363 str r3, [r4, #52] -3830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7200 .loc 1 3830 0 - 7201 0072 A36B ldr r3, [r4, #56] - 7202 0074 002B cmp r3, #0 - 7203 0076 61D0 beq .L486 -3833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7204 .loc 1 3833 0 - 7205 0078 434A ldr r2, .L498+8 - 7206 007a 9A62 str r2, [r3, #40] -3836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7207 .loc 1 3836 0 - 7208 007c A36B ldr r3, [r4, #56] - 7209 007e 434A ldr r2, .L498+12 - 7210 0080 1A63 str r2, [r3, #48] -3839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; - 7211 .loc 1 3839 0 - 7212 0082 A26B ldr r2, [r4, #56] - 7213 0084 0023 movs r3, #0 - 7214 0086 D362 str r3, [r2, #44] -3840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7215 .loc 1 3840 0 - 7216 0088 A26B ldr r2, [r4, #56] - 7217 008a 5363 str r3, [r2, #52] -3843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7218 .loc 1 3843 0 - 7219 008c 2268 ldr r2, [r4] - 7220 008e 2832 adds r2, r2, #40 - 7221 0090 238D ldrh r3, [r4, #40] - ARM GAS /tmp/ccFk2Nxo.s page 261 - - - 7222 0092 2900 movs r1, r5 - 7223 0094 A06B ldr r0, [r4, #56] - 7224 0096 FFF7FEFF bl HAL_DMA_Start_IT - 7225 .LVL636: - 7226 009a 051E subs r5, r0, #0 - 7227 .LVL637: -3860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7228 .loc 1 3860 0 - 7229 009c 5CD1 bne .L497 -3863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7230 .loc 1 3863 0 - 7231 009e 638D ldrh r3, [r4, #42] - 7232 00a0 228D ldrh r2, [r4, #40] - 7233 00a2 9B1A subs r3, r3, r2 - 7234 00a4 9BB2 uxth r3, r3 - 7235 00a6 6385 strh r3, [r4, #42] -3866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7236 .loc 1 3866 0 - 7237 00a8 0023 movs r3, #0 - 7238 00aa 2385 strh r3, [r4, #40] -3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7239 .loc 1 3883 0 - 7240 00ac 2368 ldr r3, [r4] - 7241 00ae 9A69 ldr r2, [r3, #24] - 7242 00b0 D203 lsls r2, r2, #15 - 7243 00b2 5FD4 bmi .L489 - 7244 .L490: -3891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7245 .loc 1 3891 0 - 7246 00b4 4023 movs r3, #64 - 7247 00b6 0022 movs r2, #0 - 7248 00b8 E254 strb r2, [r4, r3] -3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7249 .loc 1 3897 0 - 7250 00ba 0421 movs r1, #4 - 7251 00bc 2000 movs r0, r4 - 7252 .LVL638: - 7253 00be FFF7FEFF bl I2C_Enable_IRQ - 7254 .LVL639: -3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7255 .loc 1 3900 0 - 7256 00c2 2268 ldr r2, [r4] - 7257 00c4 1168 ldr r1, [r2] - 7258 00c6 8023 movs r3, #128 - 7259 00c8 DB01 lsls r3, r3, #7 - 7260 00ca 0B43 orrs r3, r1 - 7261 00cc 1360 str r3, [r2] -3902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7262 .loc 1 3902 0 - 7263 00ce A3E7 b .L481 - 7264 .LVL640: - 7265 .L482: -3752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 7266 .loc 1 3752 0 - 7267 00d0 8023 movs r3, #128 - 7268 00d2 9B00 lsls r3, r3, #2 - 7269 00d4 6364 str r3, [r4, #68] - ARM GAS /tmp/ccFk2Nxo.s page 262 - - -3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7270 .loc 1 3753 0 - 7271 00d6 0125 movs r5, #1 - 7272 00d8 9EE7 b .L481 - 7273 .LVL641: - 7274 .L495: -3767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7275 .loc 1 3767 0 - 7276 00da 0221 movs r1, #2 - 7277 00dc 2000 movs r0, r4 - 7278 00de FFF7FEFF bl I2C_Disable_IRQ - 7279 .LVL642: -3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7280 .loc 1 3769 0 - 7281 00e2 2368 ldr r3, [r4] - 7282 00e4 1A68 ldr r2, [r3] - 7283 00e6 1204 lsls r2, r2, #16 - 7284 00e8 AFD5 bpl .L485 -3772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7285 .loc 1 3772 0 - 7286 00ea E26B ldr r2, [r4, #60] - 7287 00ec 002A cmp r2, #0 - 7288 00ee ACD0 beq .L485 -3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7289 .loc 1 3774 0 - 7290 00f0 1A68 ldr r2, [r3] - 7291 00f2 2349 ldr r1, .L498 - 7292 00f4 0A40 ands r2, r1 - 7293 00f6 1A60 str r2, [r3] -3778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7294 .loc 1 3778 0 - 7295 00f8 E36B ldr r3, [r4, #60] - 7296 00fa 254A ldr r2, .L498+16 - 7297 00fc 5A63 str r2, [r3, #52] -3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7298 .loc 1 3781 0 - 7299 00fe E06B ldr r0, [r4, #60] - 7300 0100 FFF7FEFF bl HAL_DMA_Abort_IT - 7301 .LVL643: - 7302 0104 0028 cmp r0, #0 - 7303 0106 A0D0 beq .L485 -3784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7304 .loc 1 3784 0 - 7305 0108 E06B ldr r0, [r4, #60] - 7306 010a 436B ldr r3, [r0, #52] - 7307 010c 9847 blx r3 - 7308 .LVL644: - 7309 010e 9CE7 b .L485 - 7310 .L496: -3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7311 .loc 1 3791 0 - 7312 0110 2368 ldr r3, [r4] - 7313 0112 1A68 ldr r2, [r3] - 7314 0114 5204 lsls r2, r2, #17 - 7315 0116 98D5 bpl .L485 -3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7316 .loc 1 3793 0 - ARM GAS /tmp/ccFk2Nxo.s page 263 - - - 7317 0118 1A68 ldr r2, [r3] - 7318 011a 1E49 ldr r1, .L498+20 - 7319 011c 0A40 ands r2, r1 - 7320 011e 1A60 str r2, [r3] -3796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7321 .loc 1 3796 0 - 7322 0120 A36B ldr r3, [r4, #56] - 7323 0122 002B cmp r3, #0 - 7324 0124 91D0 beq .L485 -3800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7325 .loc 1 3800 0 - 7326 0126 1A4A ldr r2, .L498+16 - 7327 0128 5A63 str r2, [r3, #52] -3803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7328 .loc 1 3803 0 - 7329 012a A06B ldr r0, [r4, #56] - 7330 012c FFF7FEFF bl HAL_DMA_Abort_IT - 7331 .LVL645: - 7332 0130 0028 cmp r0, #0 - 7333 0132 8AD0 beq .L485 -3806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7334 .loc 1 3806 0 - 7335 0134 A06B ldr r0, [r4, #56] - 7336 0136 436B ldr r3, [r0, #52] - 7337 0138 9847 blx r3 - 7338 .LVL646: - 7339 013a 86E7 b .L485 - 7340 .L486: -3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 7341 .loc 1 3848 0 - 7342 013c 4123 movs r3, #65 - 7343 013e 2822 movs r2, #40 - 7344 0140 E254 strb r2, [r4, r3] -3849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7345 .loc 1 3849 0 - 7346 0142 0022 movs r2, #0 - 7347 0144 0133 adds r3, r3, #1 - 7348 0146 E254 strb r2, [r4, r3] -3852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7349 .loc 1 3852 0 - 7350 0148 636C ldr r3, [r4, #68] - 7351 014a 8021 movs r1, #128 - 7352 014c 0B43 orrs r3, r1 - 7353 014e 6364 str r3, [r4, #68] -3855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7354 .loc 1 3855 0 - 7355 0150 4023 movs r3, #64 - 7356 0152 E254 strb r2, [r4, r3] -3857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7357 .loc 1 3857 0 - 7358 0154 0125 movs r5, #1 - 7359 .LVL647: - 7360 0156 5FE7 b .L481 - 7361 .LVL648: - 7362 .L497: -3871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 7363 .loc 1 3871 0 - ARM GAS /tmp/ccFk2Nxo.s page 264 - - - 7364 0158 4123 movs r3, #65 - 7365 015a 2822 movs r2, #40 - 7366 015c E254 strb r2, [r4, r3] -3872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7367 .loc 1 3872 0 - 7368 015e 0022 movs r2, #0 - 7369 0160 0133 adds r3, r3, #1 - 7370 0162 E254 strb r2, [r4, r3] -3875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7371 .loc 1 3875 0 - 7372 0164 636C ldr r3, [r4, #68] - 7373 0166 1021 movs r1, #16 - 7374 0168 0B43 orrs r3, r1 - 7375 016a 6364 str r3, [r4, #68] -3878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7376 .loc 1 3878 0 - 7377 016c 4023 movs r3, #64 - 7378 016e E254 strb r2, [r4, r3] -3880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7379 .loc 1 3880 0 - 7380 0170 0125 movs r5, #1 - 7381 0172 51E7 b .L481 - 7382 .L489: -3887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7383 .loc 1 3887 0 - 7384 0174 0822 movs r2, #8 - 7385 0176 DA61 str r2, [r3, #28] - 7386 0178 9CE7 b .L490 - 7387 .LVL649: - 7388 .L492: -3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7389 .loc 1 3757 0 - 7390 017a 0225 movs r5, #2 - 7391 017c 4CE7 b .L481 - 7392 .L499: - 7393 017e C046 .align 2 - 7394 .L498: - 7395 0180 FF7FFFFF .word -32769 - 7396 0184 00000000 .word I2C_Slave_ISR_DMA - 7397 0188 00000000 .word I2C_DMASlaveTransmitCplt - 7398 018c 00000000 .word I2C_DMAError - 7399 0190 00000000 .word I2C_DMAAbort - 7400 0194 FFBFFFFF .word -16385 - 7401 .cfi_endproc - 7402 .LFE68: - 7404 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits - 7405 .align 1 - 7406 .global HAL_I2C_Slave_Seq_Receive_IT - 7407 .syntax unified - 7408 .code 16 - 7409 .thumb_func - 7410 .fpu softvfp - 7412 HAL_I2C_Slave_Seq_Receive_IT: - 7413 .LFB69: -3921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ - 7414 .loc 1 3921 0 - 7415 .cfi_startproc - ARM GAS /tmp/ccFk2Nxo.s page 265 - - - 7416 @ args = 0, pretend = 0, frame = 0 - 7417 @ frame_needed = 0, uses_anonymous_args = 0 - 7418 .LVL650: - 7419 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 7420 .LCFI59: - 7421 .cfi_def_cfa_offset 24 - 7422 .cfi_offset 3, -24 - 7423 .cfi_offset 4, -20 - 7424 .cfi_offset 5, -16 - 7425 .cfi_offset 6, -12 - 7426 .cfi_offset 7, -8 - 7427 .cfi_offset 14, -4 - 7428 0002 0700 movs r7, r0 - 7429 0004 0C00 movs r4, r1 - 7430 0006 1500 movs r5, r2 - 7431 0008 1E00 movs r6, r3 -3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7432 .loc 1 3925 0 - 7433 000a 4123 movs r3, #65 - 7434 .LVL651: - 7435 000c C35C ldrb r3, [r0, r3] - 7436 000e 2822 movs r2, #40 - 7437 .LVL652: - 7438 0010 1340 ands r3, r2 - 7439 0012 282B cmp r3, #40 - 7440 0014 01D0 beq .L508 -4001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7441 .loc 1 4001 0 - 7442 0016 0120 movs r0, #1 - 7443 .LVL653: - 7444 .L501: -4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7445 .loc 1 4003 0 - 7446 @ sp needed - 7447 .LVL654: - 7448 .LVL655: - 7449 .LVL656: - 7450 0018 F8BD pop {r3, r4, r5, r6, r7, pc} - 7451 .LVL657: - 7452 .L508: -3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7453 .loc 1 3927 0 - 7454 001a 0029 cmp r1, #0 - 7455 001c 01D0 beq .L502 -3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7456 .loc 1 3927 0 is_stmt 0 discriminator 1 - 7457 001e 002D cmp r5, #0 - 7458 0020 04D1 bne .L503 - 7459 .L502: -3929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 7460 .loc 1 3929 0 is_stmt 1 - 7461 0022 8023 movs r3, #128 - 7462 0024 9B00 lsls r3, r3, #2 - 7463 0026 7B64 str r3, [r7, #68] -3930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7464 .loc 1 3930 0 - 7465 0028 0120 movs r0, #1 - ARM GAS /tmp/ccFk2Nxo.s page 266 - - - 7466 .LVL658: - 7467 002a F5E7 b .L501 - 7468 .LVL659: - 7469 .L503: -3934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7470 .loc 1 3934 0 - 7471 002c 0621 movs r1, #6 - 7472 .LVL660: - 7473 002e FFF7FEFF bl I2C_Disable_IRQ - 7474 .LVL661: -3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7475 .loc 1 3937 0 - 7476 0032 4023 movs r3, #64 - 7477 0034 FB5C ldrb r3, [r7, r3] - 7478 0036 012B cmp r3, #1 - 7479 0038 43D0 beq .L507 -3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7480 .loc 1 3937 0 is_stmt 0 discriminator 2 - 7481 003a 4023 movs r3, #64 - 7482 003c 0122 movs r2, #1 - 7483 003e FA54 strb r2, [r7, r3] -3941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7484 .loc 1 3941 0 is_stmt 1 discriminator 2 - 7485 0040 0133 adds r3, r3, #1 - 7486 0042 FB5C ldrb r3, [r7, r3] - 7487 0044 292B cmp r3, #41 - 7488 0046 22D0 beq .L509 - 7489 .L504: -3967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 7490 .loc 1 3967 0 - 7491 0048 4123 movs r3, #65 - 7492 004a 2A22 movs r2, #42 - 7493 004c FA54 strb r2, [r7, r3] -3968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 7494 .loc 1 3968 0 - 7495 004e 0133 adds r3, r3, #1 - 7496 0050 0A3A subs r2, r2, #10 - 7497 0052 FA54 strb r2, [r7, r3] -3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7498 .loc 1 3969 0 - 7499 0054 0023 movs r3, #0 - 7500 0056 7B64 str r3, [r7, #68] -3972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7501 .loc 1 3972 0 - 7502 0058 3A68 ldr r2, [r7] - 7503 005a 5368 ldr r3, [r2, #4] - 7504 005c 1A49 ldr r1, .L510 - 7505 005e 0B40 ands r3, r1 - 7506 0060 5360 str r3, [r2, #4] -3975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 7507 .loc 1 3975 0 - 7508 0062 7C62 str r4, [r7, #36] -3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; - 7509 .loc 1 3976 0 - 7510 0064 7D85 strh r5, [r7, #42] -3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; - 7511 .loc 1 3977 0 - ARM GAS /tmp/ccFk2Nxo.s page 267 - - - 7512 0066 7B8D ldrh r3, [r7, #42] - 7513 0068 3B85 strh r3, [r7, #40] -3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; - 7514 .loc 1 3978 0 - 7515 006a FE62 str r6, [r7, #44] -3979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7516 .loc 1 3979 0 - 7517 006c 174B ldr r3, .L510+4 - 7518 006e 7B63 str r3, [r7, #52] -3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7519 .loc 1 3981 0 - 7520 0070 3B68 ldr r3, [r7] - 7521 0072 9A69 ldr r2, [r3, #24] - 7522 0074 D203 lsls r2, r2, #15 - 7523 0076 01D4 bmi .L505 -3985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7524 .loc 1 3985 0 - 7525 0078 0822 movs r2, #8 - 7526 007a DA61 str r2, [r3, #28] - 7527 .L505: -3989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7528 .loc 1 3989 0 - 7529 007c 4023 movs r3, #64 - 7530 007e 0022 movs r2, #0 - 7531 0080 FA54 strb r2, [r7, r3] -3995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7532 .loc 1 3995 0 - 7533 0082 0621 movs r1, #6 - 7534 0084 3800 movs r0, r7 - 7535 0086 FFF7FEFF bl I2C_Enable_IRQ - 7536 .LVL662: -3997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7537 .loc 1 3997 0 - 7538 008a 0020 movs r0, #0 - 7539 008c C4E7 b .L501 - 7540 .L509: -3944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7541 .loc 1 3944 0 - 7542 008e 0121 movs r1, #1 - 7543 0090 3800 movs r0, r7 - 7544 0092 FFF7FEFF bl I2C_Disable_IRQ - 7545 .LVL663: -3946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7546 .loc 1 3946 0 - 7547 0096 3B68 ldr r3, [r7] - 7548 0098 1A68 ldr r2, [r3] - 7549 009a 5204 lsls r2, r2, #17 - 7550 009c D4D5 bpl .L504 -3948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7551 .loc 1 3948 0 - 7552 009e 1A68 ldr r2, [r3] - 7553 00a0 0B49 ldr r1, .L510+8 - 7554 00a2 0A40 ands r2, r1 - 7555 00a4 1A60 str r2, [r3] -3951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7556 .loc 1 3951 0 - 7557 00a6 BB6B ldr r3, [r7, #56] - ARM GAS /tmp/ccFk2Nxo.s page 268 - - - 7558 00a8 002B cmp r3, #0 - 7559 00aa CDD0 beq .L504 -3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7560 .loc 1 3955 0 - 7561 00ac 094A ldr r2, .L510+12 - 7562 00ae 5A63 str r2, [r3, #52] -3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7563 .loc 1 3958 0 - 7564 00b0 B86B ldr r0, [r7, #56] - 7565 00b2 FFF7FEFF bl HAL_DMA_Abort_IT - 7566 .LVL664: - 7567 00b6 0028 cmp r0, #0 - 7568 00b8 C6D0 beq .L504 -3961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7569 .loc 1 3961 0 - 7570 00ba B86B ldr r0, [r7, #56] - 7571 00bc 436B ldr r3, [r0, #52] - 7572 00be 9847 blx r3 - 7573 .LVL665: - 7574 00c0 C2E7 b .L504 - 7575 .L507: -3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7576 .loc 1 3937 0 - 7577 00c2 0220 movs r0, #2 - 7578 00c4 A8E7 b .L501 - 7579 .L511: - 7580 00c6 C046 .align 2 - 7581 .L510: - 7582 00c8 FF7FFFFF .word -32769 - 7583 00cc 00000000 .word I2C_Slave_ISR_IT - 7584 00d0 FFBFFFFF .word -16385 - 7585 00d4 00000000 .word I2C_DMAAbort - 7586 .cfi_endproc - 7587 .LFE69: - 7589 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits - 7590 .align 1 - 7591 .global HAL_I2C_Slave_Seq_Receive_DMA - 7592 .syntax unified - 7593 .code 16 - 7594 .thumb_func - 7595 .fpu softvfp - 7597 HAL_I2C_Slave_Seq_Receive_DMA: - 7598 .LFB70: -4016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; - 7599 .loc 1 4016 0 - 7600 .cfi_startproc - 7601 @ args = 0, pretend = 0, frame = 0 - 7602 @ frame_needed = 0, uses_anonymous_args = 0 - 7603 .LVL666: - 7604 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 7605 .LCFI60: - 7606 .cfi_def_cfa_offset 24 - 7607 .cfi_offset 3, -24 - 7608 .cfi_offset 4, -20 - 7609 .cfi_offset 5, -16 - 7610 .cfi_offset 6, -12 - 7611 .cfi_offset 7, -8 - ARM GAS /tmp/ccFk2Nxo.s page 269 - - - 7612 .cfi_offset 14, -4 - 7613 0002 0400 movs r4, r0 - 7614 0004 0D00 movs r5, r1 - 7615 0006 1600 movs r6, r2 - 7616 0008 1F00 movs r7, r3 -4022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7617 .loc 1 4022 0 - 7618 000a 4123 movs r3, #65 - 7619 .LVL667: - 7620 000c C35C ldrb r3, [r0, r3] - 7621 000e 2822 movs r2, #40 - 7622 .LVL668: - 7623 0010 1340 ands r3, r2 - 7624 0012 282B cmp r3, #40 - 7625 0014 02D0 beq .L526 -4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7626 .loc 1 4180 0 - 7627 0016 0125 movs r5, #1 - 7628 .LVL669: - 7629 .L513: -4182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7630 .loc 1 4182 0 - 7631 0018 2800 movs r0, r5 - 7632 @ sp needed - 7633 .LVL670: - 7634 .LVL671: - 7635 001a F8BD pop {r3, r4, r5, r6, r7, pc} - 7636 .LVL672: - 7637 .L526: -4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7638 .loc 1 4024 0 - 7639 001c 0029 cmp r1, #0 - 7640 001e 01D0 beq .L514 -4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7641 .loc 1 4024 0 is_stmt 0 discriminator 1 - 7642 0020 002E cmp r6, #0 - 7643 0022 04D1 bne .L515 - 7644 .L514: -4026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; - 7645 .loc 1 4026 0 is_stmt 1 - 7646 0024 8023 movs r3, #128 - 7647 0026 9B00 lsls r3, r3, #2 - 7648 0028 6364 str r3, [r4, #68] -4027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7649 .loc 1 4027 0 - 7650 002a 0125 movs r5, #1 - 7651 002c F4E7 b .L513 - 7652 .L515: -4031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7653 .loc 1 4031 0 - 7654 002e 0621 movs r1, #6 - 7655 .LVL673: - 7656 0030 FFF7FEFF bl I2C_Disable_IRQ - 7657 .LVL674: -4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7658 .loc 1 4034 0 - 7659 0034 4023 movs r3, #64 - ARM GAS /tmp/ccFk2Nxo.s page 270 - - - 7660 0036 E35C ldrb r3, [r4, r3] - 7661 0038 012B cmp r3, #1 - 7662 003a 00D1 bne .LCB7795 - 7663 003c 9DE0 b .L524 @long jump - 7664 .LCB7795: -4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7665 .loc 1 4034 0 is_stmt 0 discriminator 2 - 7666 003e 4023 movs r3, #64 - 7667 0040 0122 movs r2, #1 - 7668 0042 E254 strb r2, [r4, r3] -4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7669 .loc 1 4038 0 is_stmt 1 discriminator 2 - 7670 0044 0133 adds r3, r3, #1 - 7671 0046 E35C ldrb r3, [r4, r3] - 7672 0048 292B cmp r3, #41 - 7673 004a 46D0 beq .L527 -4063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7674 .loc 1 4063 0 - 7675 004c 4123 movs r3, #65 - 7676 004e E35C ldrb r3, [r4, r3] - 7677 0050 2A2B cmp r3, #42 - 7678 0052 5DD0 beq .L528 - 7679 .L517: -4090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; - 7680 .loc 1 4090 0 - 7681 0054 4123 movs r3, #65 - 7682 0056 2A22 movs r2, #42 - 7683 0058 E254 strb r2, [r4, r3] -4091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 7684 .loc 1 4091 0 - 7685 005a 0133 adds r3, r3, #1 - 7686 005c 0A3A subs r2, r2, #10 - 7687 005e E254 strb r2, [r4, r3] -4092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7688 .loc 1 4092 0 - 7689 0060 0023 movs r3, #0 - 7690 0062 6364 str r3, [r4, #68] -4095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7691 .loc 1 4095 0 - 7692 0064 2268 ldr r2, [r4] - 7693 0066 5368 ldr r3, [r2, #4] - 7694 0068 4549 ldr r1, .L530 - 7695 006a 0B40 ands r3, r1 - 7696 006c 5360 str r3, [r2, #4] -4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; - 7697 .loc 1 4098 0 - 7698 006e 6562 str r5, [r4, #36] -4099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; - 7699 .loc 1 4099 0 - 7700 0070 6685 strh r6, [r4, #42] -4100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; - 7701 .loc 1 4100 0 - 7702 0072 638D ldrh r3, [r4, #42] - 7703 0074 2385 strh r3, [r4, #40] -4101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; - 7704 .loc 1 4101 0 - 7705 0076 E762 str r7, [r4, #44] - ARM GAS /tmp/ccFk2Nxo.s page 271 - - -4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7706 .loc 1 4102 0 - 7707 0078 424B ldr r3, .L530+4 - 7708 007a 6363 str r3, [r4, #52] -4104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7709 .loc 1 4104 0 - 7710 007c E36B ldr r3, [r4, #60] - 7711 007e 002B cmp r3, #0 - 7712 0080 5CD0 beq .L518 -4107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7713 .loc 1 4107 0 - 7714 0082 414A ldr r2, .L530+8 - 7715 0084 9A62 str r2, [r3, #40] -4110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7716 .loc 1 4110 0 - 7717 0086 E36B ldr r3, [r4, #60] - 7718 0088 404A ldr r2, .L530+12 - 7719 008a 1A63 str r2, [r3, #48] -4113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; - 7720 .loc 1 4113 0 - 7721 008c E26B ldr r2, [r4, #60] - 7722 008e 0023 movs r3, #0 - 7723 0090 D362 str r3, [r2, #44] -4114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7724 .loc 1 4114 0 - 7725 0092 E26B ldr r2, [r4, #60] - 7726 0094 5363 str r3, [r2, #52] -4117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7727 .loc 1 4117 0 - 7728 0096 2168 ldr r1, [r4] - 7729 0098 2431 adds r1, r1, #36 - 7730 009a 238D ldrh r3, [r4, #40] - 7731 009c 2A00 movs r2, r5 - 7732 009e E06B ldr r0, [r4, #60] - 7733 00a0 FFF7FEFF bl HAL_DMA_Start_IT - 7734 .LVL675: - 7735 00a4 051E subs r5, r0, #0 - 7736 .LVL676: -4134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7737 .loc 1 4134 0 - 7738 00a6 57D1 bne .L529 -4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7739 .loc 1 4137 0 - 7740 00a8 638D ldrh r3, [r4, #42] - 7741 00aa 228D ldrh r2, [r4, #40] - 7742 00ac 9B1A subs r3, r3, r2 - 7743 00ae 9BB2 uxth r3, r3 - 7744 00b0 6385 strh r3, [r4, #42] -4140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7745 .loc 1 4140 0 - 7746 00b2 0023 movs r3, #0 - 7747 00b4 2385 strh r3, [r4, #40] -4157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7748 .loc 1 4157 0 - 7749 00b6 2368 ldr r3, [r4] - 7750 00b8 9A69 ldr r2, [r3, #24] - 7751 00ba D203 lsls r2, r2, #15 - ARM GAS /tmp/ccFk2Nxo.s page 272 - - - 7752 00bc 5AD5 bpl .L521 - 7753 .L522: -4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7754 .loc 1 4165 0 - 7755 00be 4023 movs r3, #64 - 7756 00c0 0022 movs r2, #0 - 7757 00c2 E254 strb r2, [r4, r3] -4171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7758 .loc 1 4171 0 - 7759 00c4 0621 movs r1, #6 - 7760 00c6 2000 movs r0, r4 - 7761 .LVL677: - 7762 00c8 FFF7FEFF bl I2C_Enable_IRQ - 7763 .LVL678: -4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7764 .loc 1 4174 0 - 7765 00cc 2268 ldr r2, [r4] - 7766 00ce 1168 ldr r1, [r2] - 7767 00d0 8023 movs r3, #128 - 7768 00d2 1B02 lsls r3, r3, #8 - 7769 00d4 0B43 orrs r3, r1 - 7770 00d6 1360 str r3, [r2] -4176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7771 .loc 1 4176 0 - 7772 00d8 9EE7 b .L513 - 7773 .LVL679: - 7774 .L527: -4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7775 .loc 1 4041 0 - 7776 00da 0121 movs r1, #1 - 7777 00dc 2000 movs r0, r4 - 7778 00de FFF7FEFF bl I2C_Disable_IRQ - 7779 .LVL680: -4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7780 .loc 1 4043 0 - 7781 00e2 2368 ldr r3, [r4] - 7782 00e4 1A68 ldr r2, [r3] - 7783 00e6 5204 lsls r2, r2, #17 - 7784 00e8 B4D5 bpl .L517 -4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7785 .loc 1 4046 0 - 7786 00ea A26B ldr r2, [r4, #56] - 7787 00ec 002A cmp r2, #0 - 7788 00ee B1D0 beq .L517 -4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7789 .loc 1 4048 0 - 7790 00f0 1A68 ldr r2, [r3] - 7791 00f2 2749 ldr r1, .L530+16 - 7792 00f4 0A40 ands r2, r1 - 7793 00f6 1A60 str r2, [r3] -4052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7794 .loc 1 4052 0 - 7795 00f8 A36B ldr r3, [r4, #56] - 7796 00fa 264A ldr r2, .L530+20 - 7797 00fc 5A63 str r2, [r3, #52] -4055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7798 .loc 1 4055 0 - ARM GAS /tmp/ccFk2Nxo.s page 273 - - - 7799 00fe A06B ldr r0, [r4, #56] - 7800 0100 FFF7FEFF bl HAL_DMA_Abort_IT - 7801 .LVL681: - 7802 0104 0028 cmp r0, #0 - 7803 0106 A5D0 beq .L517 -4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7804 .loc 1 4058 0 - 7805 0108 A06B ldr r0, [r4, #56] - 7806 010a 436B ldr r3, [r0, #52] - 7807 010c 9847 blx r3 - 7808 .LVL682: - 7809 010e A1E7 b .L517 - 7810 .L528: -4065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7811 .loc 1 4065 0 - 7812 0110 2368 ldr r3, [r4] - 7813 0112 1A68 ldr r2, [r3] - 7814 0114 1204 lsls r2, r2, #16 - 7815 0116 9DD5 bpl .L517 -4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7816 .loc 1 4067 0 - 7817 0118 1A68 ldr r2, [r3] - 7818 011a 1949 ldr r1, .L530 - 7819 011c 0A40 ands r2, r1 - 7820 011e 1A60 str r2, [r3] -4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7821 .loc 1 4070 0 - 7822 0120 E36B ldr r3, [r4, #60] - 7823 0122 002B cmp r3, #0 - 7824 0124 96D0 beq .L517 -4074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7825 .loc 1 4074 0 - 7826 0126 1B4A ldr r2, .L530+20 - 7827 0128 5A63 str r2, [r3, #52] -4077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7828 .loc 1 4077 0 - 7829 012a E06B ldr r0, [r4, #60] - 7830 012c FFF7FEFF bl HAL_DMA_Abort_IT - 7831 .LVL683: - 7832 0130 0028 cmp r0, #0 - 7833 0132 8FD0 beq .L517 -4080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7834 .loc 1 4080 0 - 7835 0134 E06B ldr r0, [r4, #60] - 7836 0136 436B ldr r3, [r0, #52] - 7837 0138 9847 blx r3 - 7838 .LVL684: - 7839 013a 8BE7 b .L517 - 7840 .L518: -4122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 7841 .loc 1 4122 0 - 7842 013c 4123 movs r3, #65 - 7843 013e 2822 movs r2, #40 - 7844 0140 E254 strb r2, [r4, r3] -4123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7845 .loc 1 4123 0 - 7846 0142 0022 movs r2, #0 - ARM GAS /tmp/ccFk2Nxo.s page 274 - - - 7847 0144 0133 adds r3, r3, #1 - 7848 0146 E254 strb r2, [r4, r3] -4126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7849 .loc 1 4126 0 - 7850 0148 636C ldr r3, [r4, #68] - 7851 014a 8021 movs r1, #128 - 7852 014c 0B43 orrs r3, r1 - 7853 014e 6364 str r3, [r4, #68] -4129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7854 .loc 1 4129 0 - 7855 0150 4023 movs r3, #64 - 7856 0152 E254 strb r2, [r4, r3] -4131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7857 .loc 1 4131 0 - 7858 0154 0125 movs r5, #1 - 7859 .LVL685: - 7860 0156 5FE7 b .L513 - 7861 .LVL686: - 7862 .L529: -4145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 7863 .loc 1 4145 0 - 7864 0158 4123 movs r3, #65 - 7865 015a 2822 movs r2, #40 - 7866 015c E254 strb r2, [r4, r3] -4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7867 .loc 1 4146 0 - 7868 015e 0022 movs r2, #0 - 7869 0160 0133 adds r3, r3, #1 - 7870 0162 E254 strb r2, [r4, r3] -4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7871 .loc 1 4149 0 - 7872 0164 636C ldr r3, [r4, #68] - 7873 0166 1021 movs r1, #16 - 7874 0168 0B43 orrs r3, r1 - 7875 016a 6364 str r3, [r4, #68] -4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7876 .loc 1 4152 0 - 7877 016c 4023 movs r3, #64 - 7878 016e E254 strb r2, [r4, r3] -4154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7879 .loc 1 4154 0 - 7880 0170 0125 movs r5, #1 - 7881 0172 51E7 b .L513 - 7882 .L521: -4161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7883 .loc 1 4161 0 - 7884 0174 0822 movs r2, #8 - 7885 0176 DA61 str r2, [r3, #28] - 7886 0178 A1E7 b .L522 - 7887 .LVL687: - 7888 .L524: -4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7889 .loc 1 4034 0 - 7890 017a 0225 movs r5, #2 - 7891 .LVL688: - 7892 017c 4CE7 b .L513 - 7893 .L531: - ARM GAS /tmp/ccFk2Nxo.s page 275 - - - 7894 017e C046 .align 2 - 7895 .L530: - 7896 0180 FF7FFFFF .word -32769 - 7897 0184 00000000 .word I2C_Slave_ISR_DMA - 7898 0188 00000000 .word I2C_DMASlaveReceiveCplt - 7899 018c 00000000 .word I2C_DMAError - 7900 0190 FFBFFFFF .word -16385 - 7901 0194 00000000 .word I2C_DMAAbort - 7902 .cfi_endproc - 7903 .LFE70: - 7905 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits - 7906 .align 1 - 7907 .global HAL_I2C_EnableListen_IT - 7908 .syntax unified - 7909 .code 16 - 7910 .thumb_func - 7911 .fpu softvfp - 7913 HAL_I2C_EnableListen_IT: - 7914 .LFB71: -4191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) - 7915 .loc 1 4191 0 - 7916 .cfi_startproc - 7917 @ args = 0, pretend = 0, frame = 0 - 7918 @ frame_needed = 0, uses_anonymous_args = 0 - 7919 .LVL689: - 7920 0000 10B5 push {r4, lr} - 7921 .LCFI61: - 7922 .cfi_def_cfa_offset 8 - 7923 .cfi_offset 4, -8 - 7924 .cfi_offset 14, -4 -4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7925 .loc 1 4192 0 - 7926 0002 4123 movs r3, #65 - 7927 0004 C35C ldrb r3, [r0, r3] - 7928 0006 202B cmp r3, #32 - 7929 0008 01D0 beq .L535 -4204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7930 .loc 1 4204 0 - 7931 000a 0220 movs r0, #2 - 7932 .LVL690: - 7933 .L533: -4206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7934 .loc 1 4206 0 - 7935 @ sp needed - 7936 000c 10BD pop {r4, pc} - 7937 .LVL691: - 7938 .L535: -4194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; - 7939 .loc 1 4194 0 - 7940 000e 2133 adds r3, r3, #33 - 7941 0010 2822 movs r2, #40 - 7942 0012 C254 strb r2, [r0, r3] -4195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7943 .loc 1 4195 0 - 7944 0014 034B ldr r3, .L536 - 7945 0016 4363 str r3, [r0, #52] -4198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 276 - - - 7946 .loc 1 4198 0 - 7947 0018 0421 movs r1, #4 - 7948 001a FFF7FEFF bl I2C_Enable_IRQ - 7949 .LVL692: -4200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7950 .loc 1 4200 0 - 7951 001e 0020 movs r0, #0 - 7952 0020 F4E7 b .L533 - 7953 .L537: - 7954 0022 C046 .align 2 - 7955 .L536: - 7956 0024 00000000 .word I2C_Slave_ISR_IT - 7957 .cfi_endproc - 7958 .LFE71: - 7960 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits - 7961 .align 1 - 7962 .global HAL_I2C_DisableListen_IT - 7963 .syntax unified - 7964 .code 16 - 7965 .thumb_func - 7966 .fpu softvfp - 7968 HAL_I2C_DisableListen_IT: - 7969 .LFB72: -4215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ - 7970 .loc 1 4215 0 - 7971 .cfi_startproc - 7972 @ args = 0, pretend = 0, frame = 0 - 7973 @ frame_needed = 0, uses_anonymous_args = 0 - 7974 .LVL693: - 7975 0000 70B5 push {r4, r5, r6, lr} - 7976 .LCFI62: - 7977 .cfi_def_cfa_offset 16 - 7978 .cfi_offset 4, -16 - 7979 .cfi_offset 5, -12 - 7980 .cfi_offset 6, -8 - 7981 .cfi_offset 14, -4 -4220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 7982 .loc 1 4220 0 - 7983 0002 4123 movs r3, #65 - 7984 0004 C35C ldrb r3, [r0, r3] - 7985 0006 282B cmp r3, #40 - 7986 0008 01D0 beq .L541 -4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 7987 .loc 1 4235 0 - 7988 000a 0220 movs r0, #2 - 7989 .LVL694: - 7990 .L539: -4237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 7991 .loc 1 4237 0 - 7992 @ sp needed - 7993 000c 70BD pop {r4, r5, r6, pc} - 7994 .LVL695: - 7995 .L541: -4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); - 7996 .loc 1 4222 0 - 7997 000e 4124 movs r4, #65 - 7998 0010 025D ldrb r2, [r0, r4] - ARM GAS /tmp/ccFk2Nxo.s page 277 - - - 7999 .LVL696: -4223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 8000 .loc 1 4223 0 - 8001 0012 4221 movs r1, #66 - 8002 0014 435C ldrb r3, [r0, r1] - 8003 0016 0325 movs r5, #3 - 8004 0018 2A40 ands r2, r5 - 8005 .LVL697: - 8006 001a 1343 orrs r3, r2 - 8007 001c 0363 str r3, [r0, #48] -4224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 8008 .loc 1 4224 0 - 8009 001e 2023 movs r3, #32 - 8010 0020 0355 strb r3, [r0, r4] -4225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 8011 .loc 1 4225 0 - 8012 0022 0023 movs r3, #0 - 8013 0024 4354 strb r3, [r0, r1] -4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8014 .loc 1 4226 0 - 8015 0026 4363 str r3, [r0, #52] -4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8016 .loc 1 4229 0 - 8017 0028 3E39 subs r1, r1, #62 - 8018 002a FFF7FEFF bl I2C_Disable_IRQ - 8019 .LVL698: -4231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8020 .loc 1 4231 0 - 8021 002e 0020 movs r0, #0 - 8022 0030 ECE7 b .L539 - 8023 .cfi_endproc - 8024 .LFE72: - 8026 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits - 8027 .align 1 - 8028 .global HAL_I2C_Master_Abort_IT - 8029 .syntax unified - 8030 .code 16 - 8031 .thumb_func - 8032 .fpu softvfp - 8034 HAL_I2C_Master_Abort_IT: - 8035 .LFB73: -4248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) - 8036 .loc 1 4248 0 - 8037 .cfi_startproc - 8038 @ args = 0, pretend = 0, frame = 0 - 8039 @ frame_needed = 0, uses_anonymous_args = 0 - 8040 .LVL699: - 8041 0000 70B5 push {r4, r5, r6, lr} - 8042 .LCFI63: - 8043 .cfi_def_cfa_offset 16 - 8044 .cfi_offset 4, -16 - 8045 .cfi_offset 5, -12 - 8046 .cfi_offset 6, -8 - 8047 .cfi_offset 14, -4 - 8048 0002 82B0 sub sp, sp, #8 - 8049 .LCFI64: - 8050 .cfi_def_cfa_offset 24 - ARM GAS /tmp/ccFk2Nxo.s page 278 - - - 8051 0004 0400 movs r4, r0 - 8052 0006 0D00 movs r5, r1 -4249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8053 .loc 1 4249 0 - 8054 0008 4223 movs r3, #66 - 8055 000a C35C ldrb r3, [r0, r3] - 8056 000c 102B cmp r3, #16 - 8057 000e 02D0 beq .L546 -4279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8058 .loc 1 4279 0 - 8059 0010 0120 movs r0, #1 - 8060 .LVL700: - 8061 .L543: -4281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8062 .loc 1 4281 0 - 8063 0012 02B0 add sp, sp, #8 - 8064 @ sp needed - 8065 .LVL701: - 8066 0014 70BD pop {r4, r5, r6, pc} - 8067 .LVL702: - 8068 .L546: -4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8069 .loc 1 4252 0 - 8070 0016 3033 adds r3, r3, #48 - 8071 0018 C35C ldrb r3, [r0, r3] - 8072 001a 012B cmp r3, #1 - 8073 001c 1DD0 beq .L545 -4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8074 .loc 1 4252 0 is_stmt 0 discriminator 2 - 8075 001e 4026 movs r6, #64 - 8076 0020 0123 movs r3, #1 - 8077 0022 8355 strb r3, [r0, r6] -4255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); - 8078 .loc 1 4255 0 is_stmt 1 discriminator 2 - 8079 0024 0221 movs r1, #2 - 8080 .LVL703: - 8081 0026 FFF7FEFF bl I2C_Disable_IRQ - 8082 .LVL704: -4256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8083 .loc 1 4256 0 discriminator 2 - 8084 002a 0121 movs r1, #1 - 8085 002c 2000 movs r0, r4 - 8086 002e FFF7FEFF bl I2C_Disable_IRQ - 8087 .LVL705: -4259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8088 .loc 1 4259 0 discriminator 2 - 8089 0032 4123 movs r3, #65 - 8090 0034 6022 movs r2, #96 - 8091 0036 E254 strb r2, [r4, r3] -4263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8092 .loc 1 4263 0 discriminator 2 - 8093 0038 3F33 adds r3, r3, #63 - 8094 003a 094A ldr r2, .L547 - 8095 003c 0092 str r2, [sp] - 8096 003e 9B04 lsls r3, r3, #18 - 8097 0040 0122 movs r2, #1 - 8098 0042 2900 movs r1, r5 - ARM GAS /tmp/ccFk2Nxo.s page 279 - - - 8099 0044 2000 movs r0, r4 - 8100 0046 FFF7FEFF bl I2C_TransferConfig - 8101 .LVL706: -4266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8102 .loc 1 4266 0 discriminator 2 - 8103 004a 0023 movs r3, #0 - 8104 004c A355 strb r3, [r4, r6] -4271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8105 .loc 1 4271 0 discriminator 2 - 8106 004e 1221 movs r1, #18 - 8107 0050 2000 movs r0, r4 - 8108 0052 FFF7FEFF bl I2C_Enable_IRQ - 8109 .LVL707: -4273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8110 .loc 1 4273 0 discriminator 2 - 8111 0056 0020 movs r0, #0 - 8112 0058 DBE7 b .L543 - 8113 .LVL708: - 8114 .L545: -4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8115 .loc 1 4252 0 - 8116 005a 0220 movs r0, #2 - 8117 .LVL709: - 8118 005c D9E7 b .L543 - 8119 .L548: - 8120 005e C046 .align 2 - 8121 .L547: - 8122 0060 00400080 .word -2147467264 - 8123 .cfi_endproc - 8124 .LFE73: - 8126 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits - 8127 .align 1 - 8128 .global HAL_I2C_EV_IRQHandler - 8129 .syntax unified - 8130 .code 16 - 8131 .thumb_func - 8132 .fpu softvfp - 8134 HAL_I2C_EV_IRQHandler: - 8135 .LFB74: -4298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ - 8136 .loc 1 4298 0 - 8137 .cfi_startproc - 8138 @ args = 0, pretend = 0, frame = 0 - 8139 @ frame_needed = 0, uses_anonymous_args = 0 - 8140 .LVL710: - 8141 0000 10B5 push {r4, lr} - 8142 .LCFI65: - 8143 .cfi_def_cfa_offset 8 - 8144 .cfi_offset 4, -8 - 8145 .cfi_offset 14, -4 -4300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); - 8146 .loc 1 4300 0 - 8147 0002 0368 ldr r3, [r0] - 8148 0004 9969 ldr r1, [r3, #24] - 8149 .LVL711: -4301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8150 .loc 1 4301 0 - ARM GAS /tmp/ccFk2Nxo.s page 280 - - - 8151 0006 1A68 ldr r2, [r3] - 8152 .LVL712: -4304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8153 .loc 1 4304 0 - 8154 0008 436B ldr r3, [r0, #52] - 8155 000a 002B cmp r3, #0 - 8156 000c 00D0 beq .L549 -4306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8157 .loc 1 4306 0 - 8158 000e 9847 blx r3 - 8159 .LVL713: - 8160 .L549: -4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8161 .loc 1 4308 0 - 8162 @ sp needed - 8163 0010 10BD pop {r4, pc} - 8164 .cfi_endproc - 8165 .LFE74: - 8167 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits - 8168 .align 1 - 8169 .weak HAL_I2C_MasterTxCpltCallback - 8170 .syntax unified - 8171 .code 16 - 8172 .thumb_func - 8173 .fpu softvfp - 8175 HAL_I2C_MasterTxCpltCallback: - 8176 .LFB76: -4366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8177 .loc 1 4366 0 - 8178 .cfi_startproc - 8179 @ args = 0, pretend = 0, frame = 0 - 8180 @ frame_needed = 0, uses_anonymous_args = 0 - 8181 @ link register save eliminated. - 8182 .LVL714: -4373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8183 .loc 1 4373 0 - 8184 @ sp needed - 8185 0000 7047 bx lr - 8186 .cfi_endproc - 8187 .LFE76: - 8189 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits - 8190 .align 1 - 8191 .weak HAL_I2C_MasterRxCpltCallback - 8192 .syntax unified - 8193 .code 16 - 8194 .thumb_func - 8195 .fpu softvfp - 8197 HAL_I2C_MasterRxCpltCallback: - 8198 .LFB77: -4382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8199 .loc 1 4382 0 - 8200 .cfi_startproc - 8201 @ args = 0, pretend = 0, frame = 0 - 8202 @ frame_needed = 0, uses_anonymous_args = 0 - 8203 @ link register save eliminated. - 8204 .LVL715: -4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 281 - - - 8205 .loc 1 4389 0 - 8206 @ sp needed - 8207 0000 7047 bx lr - 8208 .cfi_endproc - 8209 .LFE77: - 8211 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits - 8212 .align 1 - 8213 .syntax unified - 8214 .code 16 - 8215 .thumb_func - 8216 .fpu softvfp - 8218 I2C_ITMasterSeqCplt: - 8219 .LFB96: -5318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ - 8220 .loc 1 5318 0 - 8221 .cfi_startproc - 8222 @ args = 0, pretend = 0, frame = 0 - 8223 @ frame_needed = 0, uses_anonymous_args = 0 - 8224 .LVL716: - 8225 0000 70B5 push {r4, r5, r6, lr} - 8226 .LCFI66: - 8227 .cfi_def_cfa_offset 16 - 8228 .cfi_offset 4, -16 - 8229 .cfi_offset 5, -12 - 8230 .cfi_offset 6, -8 - 8231 .cfi_offset 14, -4 - 8232 0002 0400 movs r4, r0 -5320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8233 .loc 1 5320 0 - 8234 0004 4223 movs r3, #66 - 8235 0006 0022 movs r2, #0 - 8236 0008 C254 strb r2, [r0, r3] -5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8237 .loc 1 5324 0 - 8238 000a 013B subs r3, r3, #1 - 8239 000c C35C ldrb r3, [r0, r3] - 8240 000e 212B cmp r3, #33 - 8241 0010 0FD0 beq .L556 -5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; - 8242 .loc 1 5346 0 - 8243 0012 4123 movs r3, #65 - 8244 0014 2022 movs r2, #32 - 8245 0016 C254 strb r2, [r0, r3] -5347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 8246 .loc 1 5347 0 - 8247 0018 2F3B subs r3, r3, #47 - 8248 001a 0363 str r3, [r0, #48] -5348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8249 .loc 1 5348 0 - 8250 001c 0025 movs r5, #0 - 8251 001e 4563 str r5, [r0, #52] -5351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8252 .loc 1 5351 0 - 8253 0020 0221 movs r1, #2 - 8254 0022 FFF7FEFF bl I2C_Disable_IRQ - 8255 .LVL717: -5354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 282 - - - 8256 .loc 1 5354 0 - 8257 0026 4023 movs r3, #64 - 8258 0028 E554 strb r5, [r4, r3] -5360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 8259 .loc 1 5360 0 - 8260 002a 2000 movs r0, r4 - 8261 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback - 8262 .LVL718: - 8263 .L553: -5363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8264 .loc 1 5363 0 - 8265 @ sp needed - 8266 .LVL719: - 8267 0030 70BD pop {r4, r5, r6, pc} - 8268 .LVL720: - 8269 .L556: -5326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; - 8270 .loc 1 5326 0 - 8271 0032 2033 adds r3, r3, #32 - 8272 0034 2032 adds r2, r2, #32 - 8273 0036 C254 strb r2, [r0, r3] -5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 8274 .loc 1 5327 0 - 8275 0038 303B subs r3, r3, #48 - 8276 003a 0363 str r3, [r0, #48] -5328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8277 .loc 1 5328 0 - 8278 003c 0025 movs r5, #0 - 8279 003e 4563 str r5, [r0, #52] -5331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8280 .loc 1 5331 0 - 8281 0040 0121 movs r1, #1 - 8282 0042 FFF7FEFF bl I2C_Disable_IRQ - 8283 .LVL721: -5334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8284 .loc 1 5334 0 - 8285 0046 4023 movs r3, #64 - 8286 0048 E554 strb r5, [r4, r3] -5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 8287 .loc 1 5340 0 - 8288 004a 2000 movs r0, r4 - 8289 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback - 8290 .LVL722: - 8291 0050 EEE7 b .L553 - 8292 .cfi_endproc - 8293 .LFE96: - 8295 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits - 8296 .align 1 - 8297 .weak HAL_I2C_SlaveTxCpltCallback - 8298 .syntax unified - 8299 .code 16 - 8300 .thumb_func - 8301 .fpu softvfp - 8303 HAL_I2C_SlaveTxCpltCallback: - 8304 .LFB78: -4397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8305 .loc 1 4397 0 - ARM GAS /tmp/ccFk2Nxo.s page 283 - - - 8306 .cfi_startproc - 8307 @ args = 0, pretend = 0, frame = 0 - 8308 @ frame_needed = 0, uses_anonymous_args = 0 - 8309 @ link register save eliminated. - 8310 .LVL723: -4404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8311 .loc 1 4404 0 - 8312 @ sp needed - 8313 0000 7047 bx lr - 8314 .cfi_endproc - 8315 .LFE78: - 8317 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits - 8318 .align 1 - 8319 .weak HAL_I2C_SlaveRxCpltCallback - 8320 .syntax unified - 8321 .code 16 - 8322 .thumb_func - 8323 .fpu softvfp - 8325 HAL_I2C_SlaveRxCpltCallback: - 8326 .LFB79: -4413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8327 .loc 1 4413 0 - 8328 .cfi_startproc - 8329 @ args = 0, pretend = 0, frame = 0 - 8330 @ frame_needed = 0, uses_anonymous_args = 0 - 8331 @ link register save eliminated. - 8332 .LVL724: -4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8333 .loc 1 4420 0 - 8334 @ sp needed - 8335 0000 7047 bx lr - 8336 .cfi_endproc - 8337 .LFE79: - 8339 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits - 8340 .align 1 - 8341 .syntax unified - 8342 .code 16 - 8343 .thumb_func - 8344 .fpu softvfp - 8346 I2C_ITSlaveSeqCplt: - 8347 .LFB97: -5371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ - 8348 .loc 1 5371 0 - 8349 .cfi_startproc - 8350 @ args = 0, pretend = 0, frame = 0 - 8351 @ frame_needed = 0, uses_anonymous_args = 0 - 8352 .LVL725: - 8353 0000 10B5 push {r4, lr} - 8354 .LCFI67: - 8355 .cfi_def_cfa_offset 8 - 8356 .cfi_offset 4, -8 - 8357 .cfi_offset 14, -4 - 8358 0002 0400 movs r4, r0 -5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8359 .loc 1 5373 0 - 8360 0004 4223 movs r3, #66 - 8361 0006 0022 movs r2, #0 - ARM GAS /tmp/ccFk2Nxo.s page 284 - - - 8362 0008 C254 strb r2, [r0, r3] -5375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8363 .loc 1 5375 0 - 8364 000a 013B subs r3, r3, #1 - 8365 000c C35C ldrb r3, [r0, r3] - 8366 000e 292B cmp r3, #41 - 8367 0010 04D0 beq .L562 -5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8368 .loc 1 5395 0 - 8369 0012 4123 movs r3, #65 - 8370 0014 C35C ldrb r3, [r0, r3] - 8371 0016 2A2B cmp r3, #42 - 8372 0018 0FD0 beq .L563 - 8373 .LVL726: - 8374 .L559: -5418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8375 .loc 1 5418 0 - 8376 @ sp needed - 8377 .LVL727: - 8378 001a 10BD pop {r4, pc} - 8379 .LVL728: - 8380 .L562: -5378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; - 8381 .loc 1 5378 0 - 8382 001c 1833 adds r3, r3, #24 - 8383 001e 2832 adds r2, r2, #40 - 8384 0020 C254 strb r2, [r0, r3] -5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8385 .loc 1 5379 0 - 8386 0022 203B subs r3, r3, #32 - 8387 0024 0363 str r3, [r0, #48] -5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8388 .loc 1 5382 0 - 8389 0026 0121 movs r1, #1 - 8390 0028 FFF7FEFF bl I2C_Disable_IRQ - 8391 .LVL729: -5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8392 .loc 1 5385 0 - 8393 002c 4023 movs r3, #64 - 8394 002e 0022 movs r2, #0 - 8395 0030 E254 strb r2, [r4, r3] -5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 8396 .loc 1 5391 0 - 8397 0032 2000 movs r0, r4 - 8398 0034 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback - 8399 .LVL730: - 8400 0038 EFE7 b .L559 - 8401 .LVL731: - 8402 .L563: -5398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; - 8403 .loc 1 5398 0 - 8404 003a 1733 adds r3, r3, #23 - 8405 003c 2822 movs r2, #40 - 8406 003e C254 strb r2, [r0, r3] -5399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8407 .loc 1 5399 0 - 8408 0040 1F3B subs r3, r3, #31 - ARM GAS /tmp/ccFk2Nxo.s page 285 - - - 8409 0042 0363 str r3, [r0, #48] -5402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8410 .loc 1 5402 0 - 8411 0044 0221 movs r1, #2 - 8412 0046 FFF7FEFF bl I2C_Disable_IRQ - 8413 .LVL732: -5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8414 .loc 1 5405 0 - 8415 004a 4023 movs r3, #64 - 8416 004c 0022 movs r2, #0 - 8417 004e E254 strb r2, [r4, r3] -5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 8418 .loc 1 5411 0 - 8419 0050 2000 movs r0, r4 - 8420 0052 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback - 8421 .LVL733: -5418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8422 .loc 1 5418 0 - 8423 0056 E0E7 b .L559 - 8424 .cfi_endproc - 8425 .LFE97: - 8427 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits - 8428 .align 1 - 8429 .syntax unified - 8430 .code 16 - 8431 .thumb_func - 8432 .fpu softvfp - 8434 I2C_DMASlaveTransmitCplt: - 8435 .LFB104: -5921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati - 8436 .loc 1 5921 0 - 8437 .cfi_startproc - 8438 @ args = 0, pretend = 0, frame = 0 - 8439 @ frame_needed = 0, uses_anonymous_args = 0 - 8440 .LVL734: - 8441 0000 10B5 push {r4, lr} - 8442 .LCFI68: - 8443 .cfi_def_cfa_offset 8 - 8444 .cfi_offset 4, -8 - 8445 .cfi_offset 14, -4 -5922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; - 8446 .loc 1 5922 0 - 8447 0002 406A ldr r0, [r0, #36] - 8448 .LVL735: -5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8449 .loc 1 5923 0 - 8450 0004 C36A ldr r3, [r0, #44] - 8451 .LVL736: -5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8452 .loc 1 5925 0 - 8453 0006 8022 movs r2, #128 - 8454 0008 5204 lsls r2, r2, #17 - 8455 000a 9342 cmp r3, r2 - 8456 000c 01D0 beq .L565 -5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8457 .loc 1 5925 0 is_stmt 0 discriminator 1 - 8458 000e 002B cmp r3, #0 - ARM GAS /tmp/ccFk2Nxo.s page 286 - - - 8459 0010 06D1 bne .L564 - 8460 .L565: -5928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8461 .loc 1 5928 0 is_stmt 1 - 8462 0012 0268 ldr r2, [r0] - 8463 0014 1368 ldr r3, [r2] - 8464 .LVL737: - 8465 0016 0349 ldr r1, .L567 - 8466 0018 0B40 ands r3, r1 - 8467 001a 1360 str r3, [r2] -5932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8468 .loc 1 5932 0 - 8469 001c FFF7FEFF bl I2C_ITSlaveSeqCplt - 8470 .LVL738: - 8471 .L564: -5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8472 .loc 1 5940 0 - 8473 @ sp needed - 8474 0020 10BD pop {r4, pc} - 8475 .L568: - 8476 0022 C046 .align 2 - 8477 .L567: - 8478 0024 FFBFFFFF .word -16385 - 8479 .cfi_endproc - 8480 .LFE104: - 8482 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits - 8483 .align 1 - 8484 .syntax unified - 8485 .code 16 - 8486 .thumb_func - 8487 .fpu softvfp - 8489 I2C_DMASlaveReceiveCplt: - 8490 .LFB106: -5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati - 8491 .loc 1 5996 0 - 8492 .cfi_startproc - 8493 @ args = 0, pretend = 0, frame = 0 - 8494 @ frame_needed = 0, uses_anonymous_args = 0 - 8495 .LVL739: - 8496 0000 10B5 push {r4, lr} - 8497 .LCFI69: - 8498 .cfi_def_cfa_offset 8 - 8499 .cfi_offset 4, -8 - 8500 .cfi_offset 14, -4 -5997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; - 8501 .loc 1 5997 0 - 8502 0002 406A ldr r0, [r0, #36] - 8503 .LVL740: -5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8504 .loc 1 5998 0 - 8505 0004 C26A ldr r2, [r0, #44] - 8506 .LVL741: -6000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) - 8507 .loc 1 6000 0 - 8508 0006 C36B ldr r3, [r0, #60] - 8509 0008 1B68 ldr r3, [r3] - 8510 000a 5B68 ldr r3, [r3, #4] - ARM GAS /tmp/ccFk2Nxo.s page 287 - - - 8511 000c 002B cmp r3, #0 - 8512 000e 09D1 bne .L569 -6000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) - 8513 .loc 1 6000 0 is_stmt 0 discriminator 1 - 8514 0010 054B ldr r3, .L571 - 8515 0012 9A42 cmp r2, r3 - 8516 0014 06D0 beq .L569 -6004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8517 .loc 1 6004 0 is_stmt 1 - 8518 0016 0268 ldr r2, [r0] - 8519 .LVL742: - 8520 0018 1368 ldr r3, [r2] - 8521 001a 0449 ldr r1, .L571+4 - 8522 001c 0B40 ands r3, r1 - 8523 001e 1360 str r3, [r2] -6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8524 .loc 1 6007 0 - 8525 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt - 8526 .LVL743: - 8527 .L569: -6015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8528 .loc 1 6015 0 - 8529 @ sp needed - 8530 0024 10BD pop {r4, pc} - 8531 .L572: - 8532 0026 C046 .align 2 - 8533 .L571: - 8534 0028 0000FFFF .word -65536 - 8535 002c FF7FFFFF .word -32769 - 8536 .cfi_endproc - 8537 .LFE106: - 8539 .section .text.HAL_I2C_AddrCallback,"ax",%progbits - 8540 .align 1 - 8541 .weak HAL_I2C_AddrCallback - 8542 .syntax unified - 8543 .code 16 - 8544 .thumb_func - 8545 .fpu softvfp - 8547 HAL_I2C_AddrCallback: - 8548 .LFB80: -4431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8549 .loc 1 4431 0 - 8550 .cfi_startproc - 8551 @ args = 0, pretend = 0, frame = 0 - 8552 @ frame_needed = 0, uses_anonymous_args = 0 - 8553 @ link register save eliminated. - 8554 .LVL744: -4440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8555 .loc 1 4440 0 - 8556 @ sp needed - 8557 0000 7047 bx lr - 8558 .cfi_endproc - 8559 .LFE80: - 8561 .section .text.I2C_ITAddrCplt,"ax",%progbits - 8562 .align 1 - 8563 .syntax unified - 8564 .code 16 - ARM GAS /tmp/ccFk2Nxo.s page 288 - - - 8565 .thumb_func - 8566 .fpu softvfp - 8568 I2C_ITAddrCplt: - 8569 .LFB95: -5223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection; - 8570 .loc 1 5223 0 - 8571 .cfi_startproc - 8572 @ args = 0, pretend = 0, frame = 0 - 8573 @ frame_needed = 0, uses_anonymous_args = 0 - 8574 .LVL745: - 8575 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 8576 .LCFI70: - 8577 .cfi_def_cfa_offset 24 - 8578 .cfi_offset 3, -24 - 8579 .cfi_offset 4, -20 - 8580 .cfi_offset 5, -16 - 8581 .cfi_offset 6, -12 - 8582 .cfi_offset 7, -8 - 8583 .cfi_offset 14, -4 - 8584 0002 0400 movs r4, r0 -5233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8585 .loc 1 5233 0 - 8586 0004 4123 movs r3, #65 - 8587 0006 C35C ldrb r3, [r0, r3] - 8588 0008 2822 movs r2, #40 - 8589 000a 1340 ands r3, r2 - 8590 000c 282B cmp r3, #40 - 8591 000e 06D0 beq .L579 -5305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8592 .loc 1 5305 0 - 8593 0010 0368 ldr r3, [r0] - 8594 0012 0822 movs r2, #8 - 8595 0014 DA61 str r2, [r3, #28] -5308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8596 .loc 1 5308 0 - 8597 0016 4023 movs r3, #64 - 8598 0018 0022 movs r2, #0 - 8599 001a C254 strb r2, [r0, r3] - 8600 .LVL746: - 8601 .L574: -5310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8602 .loc 1 5310 0 - 8603 @ sp needed - 8604 .LVL747: - 8605 001c F8BD pop {r3, r4, r5, r6, r7, pc} - 8606 .LVL748: - 8607 .L579: -5235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); - 8608 .loc 1 5235 0 - 8609 001e 0368 ldr r3, [r0] - 8610 0020 9E69 ldr r6, [r3, #24] - 8611 0022 360C lsrs r6, r6, #16 - 8612 0024 273A subs r2, r2, #39 - 8613 0026 1640 ands r6, r2 - 8614 .LVL749: -5236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); - 8615 .loc 1 5236 0 - ARM GAS /tmp/ccFk2Nxo.s page 289 - - - 8616 0028 9A69 ldr r2, [r3, #24] - 8617 002a 120C lsrs r2, r2, #16 - 8618 002c FE27 movs r7, #254 - 8619 002e 3A40 ands r2, r7 - 8620 0030 1500 movs r5, r2 - 8621 .LVL750: -5237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); - 8622 .loc 1 5237 0 - 8623 0032 9A68 ldr r2, [r3, #8] - 8624 0034 9205 lsls r2, r2, #22 - 8625 0036 920D lsrs r2, r2, #22 - 8626 .LVL751: -5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8627 .loc 1 5238 0 - 8628 0038 D868 ldr r0, [r3, #12] - 8629 .LVL752: - 8630 003a 0740 ands r7, r0 - 8631 .LVL753: -5241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8632 .loc 1 5241 0 - 8633 003c E168 ldr r1, [r4, #12] - 8634 .LVL754: - 8635 003e 0229 cmp r1, #2 - 8636 0040 22D1 bne .L576 -5243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8637 .loc 1 5243 0 - 8638 0042 D009 lsrs r0, r2, #7 - 8639 0044 4540 eors r5, r0 - 8640 .LVL755: - 8641 0046 0431 adds r1, r1, #4 - 8642 0048 2942 tst r1, r5 - 8643 004a 10D1 bne .L577 - 8644 .LVL756: -5246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) - 8645 .loc 1 5246 0 - 8646 004c A16C ldr r1, [r4, #72] - 8647 004e 0131 adds r1, r1, #1 - 8648 0050 A164 str r1, [r4, #72] -5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8649 .loc 1 5247 0 - 8650 0052 A16C ldr r1, [r4, #72] - 8651 0054 0229 cmp r1, #2 - 8652 0056 E1D1 bne .L574 -5250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8653 .loc 1 5250 0 - 8654 0058 0021 movs r1, #0 - 8655 005a A164 str r1, [r4, #72] -5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8656 .loc 1 5253 0 - 8657 005c 0820 movs r0, #8 - 8658 005e D861 str r0, [r3, #28] -5256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8659 .loc 1 5256 0 - 8660 0060 4023 movs r3, #64 - 8661 0062 E154 strb r1, [r4, r3] -5262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 8662 .loc 1 5262 0 - ARM GAS /tmp/ccFk2Nxo.s page 290 - - - 8663 0064 3100 movs r1, r6 - 8664 0066 2000 movs r0, r4 - 8665 0068 FFF7FEFF bl HAL_I2C_AddrCallback - 8666 .LVL757: - 8667 006c D6E7 b .L574 - 8668 .LVL758: - 8669 .L577: -5271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8670 .loc 1 5271 0 - 8671 006e 0421 movs r1, #4 - 8672 0070 2000 movs r0, r4 - 8673 0072 FFF7FEFF bl I2C_Disable_IRQ - 8674 .LVL759: -5274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8675 .loc 1 5274 0 - 8676 0076 4023 movs r3, #64 - 8677 0078 0022 movs r2, #0 - 8678 007a E254 strb r2, [r4, r3] -5280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 8679 .loc 1 5280 0 - 8680 007c 3A00 movs r2, r7 - 8681 007e 3100 movs r1, r6 - 8682 0080 2000 movs r0, r4 - 8683 0082 FFF7FEFF bl HAL_I2C_AddrCallback - 8684 .LVL760: - 8685 0086 C9E7 b .L574 - 8686 .LVL761: - 8687 .L576: -5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8688 .loc 1 5288 0 - 8689 0088 0421 movs r1, #4 - 8690 008a 2000 movs r0, r4 - 8691 008c FFF7FEFF bl I2C_Disable_IRQ - 8692 .LVL762: -5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8693 .loc 1 5291 0 - 8694 0090 4023 movs r3, #64 - 8695 0092 0022 movs r2, #0 - 8696 0094 E254 strb r2, [r4, r3] -5297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 8697 .loc 1 5297 0 - 8698 0096 2A00 movs r2, r5 - 8699 0098 3100 movs r1, r6 - 8700 009a 2000 movs r0, r4 - 8701 009c FFF7FEFF bl HAL_I2C_AddrCallback - 8702 .LVL763: - 8703 00a0 BCE7 b .L574 - 8704 .cfi_endproc - 8705 .LFE95: - 8707 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits - 8708 .align 1 - 8709 .weak HAL_I2C_ListenCpltCallback - 8710 .syntax unified - 8711 .code 16 - 8712 .thumb_func - 8713 .fpu softvfp - 8715 HAL_I2C_ListenCpltCallback: - ARM GAS /tmp/ccFk2Nxo.s page 291 - - - 8716 .LFB81: -4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8717 .loc 1 4449 0 - 8718 .cfi_startproc - 8719 @ args = 0, pretend = 0, frame = 0 - 8720 @ frame_needed = 0, uses_anonymous_args = 0 - 8721 @ link register save eliminated. - 8722 .LVL764: -4456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8723 .loc 1 4456 0 - 8724 @ sp needed - 8725 0000 7047 bx lr - 8726 .cfi_endproc - 8727 .LFE81: - 8729 .section .text.I2C_ITListenCplt,"ax",%progbits - 8730 .align 1 - 8731 .syntax unified - 8732 .code 16 - 8733 .thumb_func - 8734 .fpu softvfp - 8736 I2C_ITListenCplt: - 8737 .LFB100: -5683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ - 8738 .loc 1 5683 0 - 8739 .cfi_startproc - 8740 @ args = 0, pretend = 0, frame = 0 - 8741 @ frame_needed = 0, uses_anonymous_args = 0 - 8742 .LVL765: - 8743 0000 10B5 push {r4, lr} - 8744 .LCFI71: - 8745 .cfi_def_cfa_offset 8 - 8746 .cfi_offset 4, -8 - 8747 .cfi_offset 14, -4 - 8748 0002 0400 movs r4, r0 -5685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; - 8749 .loc 1 5685 0 - 8750 0004 164B ldr r3, .L583 - 8751 0006 C362 str r3, [r0, #44] -5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 8752 .loc 1 5686 0 - 8753 0008 0023 movs r3, #0 - 8754 000a 0363 str r3, [r0, #48] -5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - 8755 .loc 1 5687 0 - 8756 000c 4122 movs r2, #65 - 8757 000e 2020 movs r0, #32 - 8758 .LVL766: - 8759 0010 A054 strb r0, [r4, r2] -5688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 8760 .loc 1 5688 0 - 8761 0012 0132 adds r2, r2, #1 - 8762 0014 A354 strb r3, [r4, r2] -5689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8763 .loc 1 5689 0 - 8764 0016 6363 str r3, [r4, #52] -5692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8765 .loc 1 5692 0 - ARM GAS /tmp/ccFk2Nxo.s page 292 - - - 8766 0018 4B07 lsls r3, r1, #29 - 8767 001a 13D5 bpl .L582 -5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8768 .loc 1 5695 0 - 8769 001c 2368 ldr r3, [r4] - 8770 001e 5B6A ldr r3, [r3, #36] - 8771 0020 626A ldr r2, [r4, #36] - 8772 0022 1370 strb r3, [r2] -5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8773 .loc 1 5698 0 - 8774 0024 636A ldr r3, [r4, #36] - 8775 0026 0133 adds r3, r3, #1 - 8776 0028 6362 str r3, [r4, #36] -5700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8777 .loc 1 5700 0 - 8778 002a 238D ldrh r3, [r4, #40] - 8779 002c 002B cmp r3, #0 - 8780 002e 09D0 beq .L582 -5702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; - 8781 .loc 1 5702 0 - 8782 0030 013B subs r3, r3, #1 - 8783 0032 2385 strh r3, [r4, #40] -5703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8784 .loc 1 5703 0 - 8785 0034 638D ldrh r3, [r4, #42] - 8786 0036 013B subs r3, r3, #1 - 8787 0038 9BB2 uxth r3, r3 - 8788 003a 6385 strh r3, [r4, #42] -5706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8789 .loc 1 5706 0 - 8790 003c 636C ldr r3, [r4, #68] - 8791 003e 0422 movs r2, #4 - 8792 0040 1343 orrs r3, r2 - 8793 0042 6364 str r3, [r4, #68] - 8794 .L582: -5711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8795 .loc 1 5711 0 - 8796 0044 0721 movs r1, #7 - 8797 .LVL767: - 8798 0046 2000 movs r0, r4 - 8799 0048 FFF7FEFF bl I2C_Disable_IRQ - 8800 .LVL768: -5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8801 .loc 1 5714 0 - 8802 004c 2368 ldr r3, [r4] - 8803 004e 1022 movs r2, #16 - 8804 0050 DA61 str r2, [r3, #28] -5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8805 .loc 1 5717 0 - 8806 0052 4023 movs r3, #64 - 8807 0054 0022 movs r2, #0 - 8808 0056 E254 strb r2, [r4, r3] -5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 8809 .loc 1 5723 0 - 8810 0058 2000 movs r0, r4 - 8811 005a FFF7FEFF bl HAL_I2C_ListenCpltCallback - 8812 .LVL769: - ARM GAS /tmp/ccFk2Nxo.s page 293 - - -5725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8813 .loc 1 5725 0 - 8814 @ sp needed - 8815 .LVL770: - 8816 005e 10BD pop {r4, pc} - 8817 .L584: - 8818 .align 2 - 8819 .L583: - 8820 0060 0000FFFF .word -65536 - 8821 .cfi_endproc - 8822 .LFE100: - 8824 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits - 8825 .align 1 - 8826 .weak HAL_I2C_MemTxCpltCallback - 8827 .syntax unified - 8828 .code 16 - 8829 .thumb_func - 8830 .fpu softvfp - 8832 HAL_I2C_MemTxCpltCallback: - 8833 .LFB82: -4465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8834 .loc 1 4465 0 - 8835 .cfi_startproc - 8836 @ args = 0, pretend = 0, frame = 0 - 8837 @ frame_needed = 0, uses_anonymous_args = 0 - 8838 @ link register save eliminated. - 8839 .LVL771: -4472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8840 .loc 1 4472 0 - 8841 @ sp needed - 8842 0000 7047 bx lr - 8843 .cfi_endproc - 8844 .LFE82: - 8846 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits - 8847 .align 1 - 8848 .weak HAL_I2C_MemRxCpltCallback - 8849 .syntax unified - 8850 .code 16 - 8851 .thumb_func - 8852 .fpu softvfp - 8854 HAL_I2C_MemRxCpltCallback: - 8855 .LFB83: -4481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8856 .loc 1 4481 0 - 8857 .cfi_startproc - 8858 @ args = 0, pretend = 0, frame = 0 - 8859 @ frame_needed = 0, uses_anonymous_args = 0 - 8860 @ link register save eliminated. - 8861 .LVL772: -4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8862 .loc 1 4488 0 - 8863 @ sp needed - 8864 0000 7047 bx lr - 8865 .cfi_endproc - 8866 .LFE83: - 8868 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits - 8869 .align 1 - ARM GAS /tmp/ccFk2Nxo.s page 294 - - - 8870 .weak HAL_I2C_ErrorCallback - 8871 .syntax unified - 8872 .code 16 - 8873 .thumb_func - 8874 .fpu softvfp - 8876 HAL_I2C_ErrorCallback: - 8877 .LFB84: -4497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8878 .loc 1 4497 0 - 8879 .cfi_startproc - 8880 @ args = 0, pretend = 0, frame = 0 - 8881 @ frame_needed = 0, uses_anonymous_args = 0 - 8882 @ link register save eliminated. - 8883 .LVL773: -4504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8884 .loc 1 4504 0 - 8885 @ sp needed - 8886 0000 7047 bx lr - 8887 .cfi_endproc - 8888 .LFE84: - 8890 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits - 8891 .align 1 - 8892 .weak HAL_I2C_AbortCpltCallback - 8893 .syntax unified - 8894 .code 16 - 8895 .thumb_func - 8896 .fpu softvfp - 8898 HAL_I2C_AbortCpltCallback: - 8899 .LFB85: -4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ - 8900 .loc 1 4513 0 - 8901 .cfi_startproc - 8902 @ args = 0, pretend = 0, frame = 0 - 8903 @ frame_needed = 0, uses_anonymous_args = 0 - 8904 @ link register save eliminated. - 8905 .LVL774: -4520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8906 .loc 1 4520 0 - 8907 @ sp needed - 8908 0000 7047 bx lr - 8909 .cfi_endproc - 8910 .LFE85: - 8912 .section .text.I2C_ITError,"ax",%progbits - 8913 .align 1 - 8914 .syntax unified - 8915 .code 16 - 8916 .thumb_func - 8917 .fpu softvfp - 8919 I2C_ITError: - 8920 .LFB101: -5734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; - 8921 .loc 1 5734 0 - 8922 .cfi_startproc - 8923 @ args = 0, pretend = 0, frame = 0 - 8924 @ frame_needed = 0, uses_anonymous_args = 0 - 8925 .LVL775: - 8926 0000 10B5 push {r4, lr} - ARM GAS /tmp/ccFk2Nxo.s page 295 - - - 8927 .LCFI72: - 8928 .cfi_def_cfa_offset 8 - 8929 .cfi_offset 4, -8 - 8930 .cfi_offset 14, -4 - 8931 0002 0400 movs r4, r0 -5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8932 .loc 1 5735 0 - 8933 0004 4123 movs r3, #65 - 8934 0006 C35C ldrb r3, [r0, r3] - 8935 .LVL776: -5738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 8936 .loc 1 5738 0 - 8937 0008 0022 movs r2, #0 - 8938 000a 4220 movs r0, #66 - 8939 .LVL777: - 8940 000c 2254 strb r2, [r4, r0] -5739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U; - 8941 .loc 1 5739 0 - 8942 000e 3548 ldr r0, .L598 - 8943 0010 E062 str r0, [r4, #44] -5740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8944 .loc 1 5740 0 - 8945 0012 6285 strh r2, [r4, #42] -5743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8946 .loc 1 5743 0 - 8947 0014 626C ldr r2, [r4, #68] - 8948 0016 1143 orrs r1, r2 - 8949 .LVL778: - 8950 0018 6164 str r1, [r4, #68] -5747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) - 8951 .loc 1 5747 0 - 8952 001a 283B subs r3, r3, #40 - 8953 .LVL779: - 8954 001c DBB2 uxtb r3, r3 -5746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || - 8955 .loc 1 5746 0 - 8956 001e 022B cmp r3, #2 - 8957 0020 23D8 bhi .L590 -5751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8958 .loc 1 5751 0 - 8959 0022 0321 movs r1, #3 - 8960 0024 2000 movs r0, r4 - 8961 0026 FFF7FEFF bl I2C_Disable_IRQ - 8962 .LVL780: -5754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; - 8963 .loc 1 5754 0 - 8964 002a 4123 movs r3, #65 - 8965 002c 2822 movs r2, #40 - 8966 002e E254 strb r2, [r4, r3] -5755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; - 8967 .loc 1 5755 0 - 8968 0030 0023 movs r3, #0 - 8969 0032 2363 str r3, [r4, #48] -5756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 8970 .loc 1 5756 0 - 8971 0034 2C4B ldr r3, .L598+4 - 8972 0036 6363 str r3, [r4, #52] - ARM GAS /tmp/ccFk2Nxo.s page 296 - - - 8973 .L591: -5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8974 .loc 1 5775 0 - 8975 0038 2368 ldr r3, [r4] - 8976 003a 1A68 ldr r2, [r3] - 8977 003c 5204 lsls r2, r2, #17 - 8978 003e 23D5 bpl .L593 -5777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8979 .loc 1 5777 0 - 8980 0040 1A68 ldr r2, [r3] - 8981 0042 2A49 ldr r1, .L598+8 - 8982 0044 0A40 ands r2, r1 - 8983 0046 1A60 str r2, [r3] -5779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8984 .loc 1 5779 0 - 8985 0048 A36B ldr r3, [r4, #56] - 8986 004a 002B cmp r3, #0 - 8987 004c 0CD0 beq .L589 -5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8988 .loc 1 5783 0 - 8989 004e 284A ldr r2, .L598+12 - 8990 0050 5A63 str r2, [r3, #52] -5786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 8991 .loc 1 5786 0 - 8992 0052 4023 movs r3, #64 - 8993 0054 0022 movs r2, #0 - 8994 0056 E254 strb r2, [r4, r3] -5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 8995 .loc 1 5789 0 - 8996 0058 A06B ldr r0, [r4, #56] - 8997 005a FFF7FEFF bl HAL_DMA_Abort_IT - 8998 .LVL781: - 8999 005e 0028 cmp r0, #0 - 9000 0060 02D0 beq .L589 -5792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9001 .loc 1 5792 0 - 9002 0062 A06B ldr r0, [r4, #56] - 9003 0064 436B ldr r3, [r0, #52] - 9004 0066 9847 blx r3 - 9005 .LVL782: - 9006 .L589: -5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9007 .loc 1 5844 0 - 9008 @ sp needed - 9009 .LVL783: - 9010 0068 10BD pop {r4, pc} - 9011 .LVL784: - 9012 .L590: -5761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9013 .loc 1 5761 0 - 9014 006a 0721 movs r1, #7 - 9015 006c 2000 movs r0, r4 - 9016 006e FFF7FEFF bl I2C_Disable_IRQ - 9017 .LVL785: -5765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9018 .loc 1 5765 0 - 9019 0072 4123 movs r3, #65 - ARM GAS /tmp/ccFk2Nxo.s page 297 - - - 9020 0074 E35C ldrb r3, [r4, r3] - 9021 0076 602B cmp r3, #96 - 9022 0078 02D0 beq .L592 -5768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9023 .loc 1 5768 0 - 9024 007a 4123 movs r3, #65 - 9025 007c 2022 movs r2, #32 - 9026 007e E254 strb r2, [r4, r3] - 9027 .L592: -5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 9028 .loc 1 5770 0 - 9029 0080 0023 movs r3, #0 - 9030 0082 2363 str r3, [r4, #48] -5771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9031 .loc 1 5771 0 - 9032 0084 6363 str r3, [r4, #52] - 9033 0086 D7E7 b .L591 - 9034 .L593: -5797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9035 .loc 1 5797 0 - 9036 0088 1A68 ldr r2, [r3] - 9037 008a 1204 lsls r2, r2, #16 - 9038 008c 14D5 bpl .L595 -5799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9039 .loc 1 5799 0 - 9040 008e 1A68 ldr r2, [r3] - 9041 0090 1849 ldr r1, .L598+16 - 9042 0092 0A40 ands r2, r1 - 9043 0094 1A60 str r2, [r3] -5801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9044 .loc 1 5801 0 - 9045 0096 E36B ldr r3, [r4, #60] - 9046 0098 002B cmp r3, #0 - 9047 009a E5D0 beq .L589 -5805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9048 .loc 1 5805 0 - 9049 009c 144A ldr r2, .L598+12 - 9050 009e 5A63 str r2, [r3, #52] -5808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9051 .loc 1 5808 0 - 9052 00a0 4023 movs r3, #64 - 9053 00a2 0022 movs r2, #0 - 9054 00a4 E254 strb r2, [r4, r3] -5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9055 .loc 1 5811 0 - 9056 00a6 E06B ldr r0, [r4, #60] - 9057 00a8 FFF7FEFF bl HAL_DMA_Abort_IT - 9058 .LVL786: - 9059 00ac 0028 cmp r0, #0 - 9060 00ae DBD0 beq .L589 -5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9061 .loc 1 5814 0 - 9062 00b0 E06B ldr r0, [r4, #60] - 9063 00b2 436B ldr r3, [r0, #52] - 9064 00b4 9847 blx r3 - 9065 .LVL787: - 9066 00b6 D7E7 b .L589 - ARM GAS /tmp/ccFk2Nxo.s page 298 - - - 9067 .L595: -5818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9068 .loc 1 5818 0 - 9069 00b8 4123 movs r3, #65 - 9070 00ba E35C ldrb r3, [r4, r3] - 9071 00bc 602B cmp r3, #96 - 9072 00be 06D0 beq .L597 -5835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9073 .loc 1 5835 0 - 9074 00c0 4023 movs r3, #64 - 9075 00c2 0022 movs r2, #0 - 9076 00c4 E254 strb r2, [r4, r3] -5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9077 .loc 1 5841 0 - 9078 00c6 2000 movs r0, r4 - 9079 00c8 FFF7FEFF bl HAL_I2C_ErrorCallback - 9080 .LVL788: -5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9081 .loc 1 5844 0 - 9082 00cc CCE7 b .L589 - 9083 .L597: -5820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9084 .loc 1 5820 0 - 9085 00ce 1F3B subs r3, r3, #31 - 9086 00d0 2022 movs r2, #32 - 9087 00d2 E254 strb r2, [r4, r3] -5823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9088 .loc 1 5823 0 - 9089 00d4 013B subs r3, r3, #1 - 9090 00d6 0022 movs r2, #0 - 9091 00d8 E254 strb r2, [r4, r3] -5829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9092 .loc 1 5829 0 - 9093 00da 2000 movs r0, r4 - 9094 00dc FFF7FEFF bl HAL_I2C_AbortCpltCallback - 9095 .LVL789: - 9096 00e0 C2E7 b .L589 - 9097 .L599: - 9098 00e2 C046 .align 2 - 9099 .L598: - 9100 00e4 0000FFFF .word -65536 - 9101 00e8 00000000 .word I2C_Slave_ISR_IT - 9102 00ec FFBFFFFF .word -16385 - 9103 00f0 00000000 .word I2C_DMAAbort - 9104 00f4 FF7FFFFF .word -32769 - 9105 .cfi_endproc - 9106 .LFE101: - 9108 .section .text.I2C_ITSlaveCplt,"ax",%progbits - 9109 .align 1 - 9110 .syntax unified - 9111 .code 16 - 9112 .thumb_func - 9113 .fpu softvfp - 9115 I2C_ITSlaveCplt: - 9116 .LFB99: -5546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); - 9117 .loc 1 5546 0 - ARM GAS /tmp/ccFk2Nxo.s page 299 - - - 9118 .cfi_startproc - 9119 @ args = 0, pretend = 0, frame = 0 - 9120 @ frame_needed = 0, uses_anonymous_args = 0 - 9121 .LVL790: - 9122 0000 70B5 push {r4, r5, r6, lr} - 9123 .LCFI73: - 9124 .cfi_def_cfa_offset 16 - 9125 .cfi_offset 4, -16 - 9126 .cfi_offset 5, -12 - 9127 .cfi_offset 6, -8 - 9128 .cfi_offset 14, -4 - 9129 0002 0400 movs r4, r0 - 9130 0004 0D00 movs r5, r1 -5547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; - 9131 .loc 1 5547 0 - 9132 0006 0368 ldr r3, [r0] - 9133 0008 1E68 ldr r6, [r3] - 9134 .LVL791: -5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9135 .loc 1 5551 0 - 9136 000a 2022 movs r2, #32 - 9137 000c DA61 str r2, [r3, #28] -5554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9138 .loc 1 5554 0 - 9139 000e 0721 movs r1, #7 - 9140 .LVL792: - 9141 0010 FFF7FEFF bl I2C_Disable_IRQ - 9142 .LVL793: -5557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9143 .loc 1 5557 0 - 9144 0014 2268 ldr r2, [r4] - 9145 0016 5168 ldr r1, [r2, #4] - 9146 0018 8023 movs r3, #128 - 9147 001a 1B02 lsls r3, r3, #8 - 9148 001c 0B43 orrs r3, r1 - 9149 001e 5360 str r3, [r2, #4] -5560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9150 .loc 1 5560 0 - 9151 0020 2268 ldr r2, [r4] - 9152 0022 5368 ldr r3, [r2, #4] - 9153 0024 3A49 ldr r1, .L612 - 9154 0026 0B40 ands r3, r1 - 9155 0028 5360 str r3, [r2, #4] -5563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9156 .loc 1 5563 0 - 9157 002a 2000 movs r0, r4 - 9158 002c FFF7FEFF bl I2C_Flush_TXDR - 9159 .LVL794: -5566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9160 .loc 1 5566 0 - 9161 0030 7304 lsls r3, r6, #17 - 9162 0032 3CD5 bpl .L601 -5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9163 .loc 1 5568 0 - 9164 0034 A36B ldr r3, [r4, #56] - 9165 0036 002B cmp r3, #0 - 9166 0038 03D0 beq .L602 - ARM GAS /tmp/ccFk2Nxo.s page 300 - - -5570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9167 .loc 1 5570 0 - 9168 003a 1B68 ldr r3, [r3] - 9169 003c 5B68 ldr r3, [r3, #4] - 9170 003e 9BB2 uxth r3, r3 - 9171 0040 6385 strh r3, [r4, #42] - 9172 .L602: -5586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9173 .loc 1 5586 0 - 9174 0042 6B07 lsls r3, r5, #29 - 9175 0044 11D5 bpl .L603 -5589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9176 .loc 1 5589 0 - 9177 0046 0423 movs r3, #4 - 9178 0048 9D43 bics r5, r3 - 9179 .LVL795: -5592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9180 .loc 1 5592 0 - 9181 004a 2368 ldr r3, [r4] - 9182 004c 5B6A ldr r3, [r3, #36] - 9183 004e 626A ldr r2, [r4, #36] - 9184 0050 1370 strb r3, [r2] -5595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9185 .loc 1 5595 0 - 9186 0052 636A ldr r3, [r4, #36] - 9187 0054 0133 adds r3, r3, #1 - 9188 0056 6362 str r3, [r4, #36] -5597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9189 .loc 1 5597 0 - 9190 0058 238D ldrh r3, [r4, #40] - 9191 005a 002B cmp r3, #0 - 9192 005c 05D0 beq .L603 -5599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; - 9193 .loc 1 5599 0 - 9194 005e 013B subs r3, r3, #1 - 9195 0060 2385 strh r3, [r4, #40] -5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9196 .loc 1 5600 0 - 9197 0062 638D ldrh r3, [r4, #42] - 9198 0064 013B subs r3, r3, #1 - 9199 0066 9BB2 uxth r3, r3 - 9200 0068 6385 strh r3, [r4, #42] - 9201 .L603: -5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9202 .loc 1 5605 0 - 9203 006a 638D ldrh r3, [r4, #42] - 9204 006c 9BB2 uxth r3, r3 - 9205 006e 002B cmp r3, #0 - 9206 0070 03D0 beq .L604 -5608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9207 .loc 1 5608 0 - 9208 0072 636C ldr r3, [r4, #68] - 9209 0074 0422 movs r2, #4 - 9210 0076 1343 orrs r3, r2 - 9211 0078 6364 str r3, [r4, #68] - 9212 .L604: -5611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; - ARM GAS /tmp/ccFk2Nxo.s page 301 - - - 9213 .loc 1 5611 0 - 9214 007a 0023 movs r3, #0 - 9215 007c 2363 str r3, [r4, #48] -5612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 9216 .loc 1 5612 0 - 9217 007e 4222 movs r2, #66 - 9218 0080 A354 strb r3, [r4, r2] -5613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9219 .loc 1 5613 0 - 9220 0082 6363 str r3, [r4, #52] -5615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9221 .loc 1 5615 0 - 9222 0084 636C ldr r3, [r4, #68] - 9223 0086 002B cmp r3, #0 - 9224 0088 1BD1 bne .L609 -5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9225 .loc 1 5627 0 - 9226 008a E26A ldr r2, [r4, #44] - 9227 008c 214B ldr r3, .L612+4 - 9228 008e 9A42 cmp r2, r3 - 9229 0090 24D1 bne .L610 -5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9230 .loc 1 5646 0 - 9231 0092 4123 movs r3, #65 - 9232 0094 E35C ldrb r3, [r4, r3] - 9233 0096 222B cmp r3, #34 - 9234 0098 2FD0 beq .L611 -5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9235 .loc 1 5662 0 - 9236 009a 4123 movs r3, #65 - 9237 009c 2022 movs r2, #32 - 9238 009e E254 strb r2, [r4, r3] -5665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9239 .loc 1 5665 0 - 9240 00a0 013B subs r3, r3, #1 - 9241 00a2 0022 movs r2, #0 - 9242 00a4 E254 strb r2, [r4, r3] -5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9243 .loc 1 5671 0 - 9244 00a6 2000 movs r0, r4 - 9245 00a8 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback - 9246 .LVL796: -5674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9247 .loc 1 5674 0 - 9248 00ac 24E0 b .L600 - 9249 .LVL797: - 9250 .L601: -5573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9251 .loc 1 5573 0 - 9252 00ae 3304 lsls r3, r6, #16 - 9253 00b0 C7D5 bpl .L602 -5575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9254 .loc 1 5575 0 - 9255 00b2 E36B ldr r3, [r4, #60] - 9256 00b4 002B cmp r3, #0 - 9257 00b6 C4D0 beq .L602 -5577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - ARM GAS /tmp/ccFk2Nxo.s page 302 - - - 9258 .loc 1 5577 0 - 9259 00b8 1B68 ldr r3, [r3] - 9260 00ba 5B68 ldr r3, [r3, #4] - 9261 00bc 9BB2 uxth r3, r3 - 9262 00be 6385 strh r3, [r4, #42] - 9263 00c0 BFE7 b .L602 - 9264 .LVL798: - 9265 .L609: -5618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9266 .loc 1 5618 0 - 9267 00c2 616C ldr r1, [r4, #68] - 9268 00c4 2000 movs r0, r4 - 9269 00c6 FFF7FEFF bl I2C_ITError - 9270 .LVL799: -5621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9271 .loc 1 5621 0 - 9272 00ca 4123 movs r3, #65 - 9273 00cc E35C ldrb r3, [r4, r3] - 9274 00ce 282B cmp r3, #40 - 9275 00d0 12D1 bne .L600 -5624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9276 .loc 1 5624 0 - 9277 00d2 2900 movs r1, r5 - 9278 00d4 2000 movs r0, r4 - 9279 00d6 FFF7FEFF bl I2C_ITListenCplt - 9280 .LVL800: - 9281 00da 0DE0 b .L600 - 9282 .L610: -5630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9283 .loc 1 5630 0 - 9284 00dc 2000 movs r0, r4 - 9285 00de FFF7FEFF bl I2C_ITSlaveSeqCplt - 9286 .LVL801: -5632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; - 9287 .loc 1 5632 0 - 9288 00e2 0C4B ldr r3, .L612+4 - 9289 00e4 E362 str r3, [r4, #44] -5633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9290 .loc 1 5633 0 - 9291 00e6 4123 movs r3, #65 - 9292 00e8 2022 movs r2, #32 - 9293 00ea E254 strb r2, [r4, r3] -5636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9294 .loc 1 5636 0 - 9295 00ec 013B subs r3, r3, #1 - 9296 00ee 0022 movs r2, #0 - 9297 00f0 E254 strb r2, [r4, r3] -5642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9298 .loc 1 5642 0 - 9299 00f2 2000 movs r0, r4 - 9300 00f4 FFF7FEFF bl HAL_I2C_ListenCpltCallback - 9301 .LVL802: - 9302 .L600: -5674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9303 .loc 1 5674 0 - 9304 @ sp needed - 9305 .LVL803: - ARM GAS /tmp/ccFk2Nxo.s page 303 - - - 9306 .LVL804: - 9307 .LVL805: - 9308 00f8 70BD pop {r4, r5, r6, pc} - 9309 .LVL806: - 9310 .L611: -5648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9311 .loc 1 5648 0 - 9312 00fa 1F33 adds r3, r3, #31 - 9313 00fc 2022 movs r2, #32 - 9314 00fe E254 strb r2, [r4, r3] -5651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9315 .loc 1 5651 0 - 9316 0100 013B subs r3, r3, #1 - 9317 0102 0022 movs r2, #0 - 9318 0104 E254 strb r2, [r4, r3] -5657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9319 .loc 1 5657 0 - 9320 0106 2000 movs r0, r4 - 9321 0108 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback - 9322 .LVL807: - 9323 010c F4E7 b .L600 - 9324 .L613: - 9325 010e C046 .align 2 - 9326 .L612: - 9327 0110 00E800FE .word -33495040 - 9328 0114 0000FFFF .word -65536 - 9329 .cfi_endproc - 9330 .LFE99: - 9332 .section .text.I2C_Slave_ISR_IT,"ax",%progbits - 9333 .align 1 - 9334 .syntax unified - 9335 .code 16 - 9336 .thumb_func - 9337 .fpu softvfp - 9339 I2C_Slave_ISR_IT: - 9340 .LFB90: -4733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; - 9341 .loc 1 4733 0 - 9342 .cfi_startproc - 9343 @ args = 0, pretend = 0, frame = 0 - 9344 @ frame_needed = 0, uses_anonymous_args = 0 - 9345 .LVL808: - 9346 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 9347 .LCFI74: - 9348 .cfi_def_cfa_offset 24 - 9349 .cfi_offset 3, -24 - 9350 .cfi_offset 4, -20 - 9351 .cfi_offset 5, -16 - 9352 .cfi_offset 6, -12 - 9353 .cfi_offset 7, -8 - 9354 .cfi_offset 14, -4 - 9355 0002 0400 movs r4, r0 - 9356 0004 0D00 movs r5, r1 - 9357 0006 1600 movs r6, r2 -4734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; - 9358 .loc 1 4734 0 - 9359 0008 C76A ldr r7, [r0, #44] - ARM GAS /tmp/ccFk2Nxo.s page 304 - - - 9360 .LVL809: -4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9361 .loc 1 4738 0 - 9362 000a 4023 movs r3, #64 - 9363 000c C35C ldrb r3, [r0, r3] - 9364 000e 012B cmp r3, #1 - 9365 0010 00D1 bne .LCB9263 - 9366 0012 96E0 b .L628 @long jump - 9367 .LCB9263: -4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9368 .loc 1 4738 0 is_stmt 0 discriminator 2 - 9369 0014 0123 movs r3, #1 - 9370 0016 4022 movs r2, #64 - 9371 .LVL810: - 9372 0018 8354 strb r3, [r0, r2] -4741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9373 .loc 1 4741 0 is_stmt 1 discriminator 2 - 9374 001a 4A09 lsrs r2, r1, #5 - 9375 001c 1342 tst r3, r2 - 9376 001e 01D0 beq .L616 -4741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9377 .loc 1 4741 0 is_stmt 0 discriminator 1 - 9378 0020 B306 lsls r3, r6, #26 - 9379 0022 17D4 bmi .L629 - 9380 .LVL811: - 9381 .L616: -4747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9382 .loc 1 4747 0 is_stmt 1 - 9383 0024 EB06 lsls r3, r5, #27 - 9384 0026 40D5 bpl .L617 -4747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9385 .loc 1 4747 0 is_stmt 0 discriminator 1 - 9386 0028 F306 lsls r3, r6, #27 - 9387 002a 3ED5 bpl .L617 -4753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9388 .loc 1 4753 0 is_stmt 1 - 9389 002c 638D ldrh r3, [r4, #42] - 9390 002e 9BB2 uxth r3, r3 - 9391 0030 002B cmp r3, #0 - 9392 0032 28D1 bne .L618 -4755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9393 .loc 1 4755 0 - 9394 0034 4133 adds r3, r3, #65 - 9395 0036 E35C ldrb r3, [r4, r3] - 9396 0038 282B cmp r3, #40 - 9397 003a 0ED0 beq .L630 - 9398 .L619: -4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9399 .loc 1 4760 0 - 9400 003c 4123 movs r3, #65 - 9401 003e E35C ldrb r3, [r4, r3] - 9402 0040 292B cmp r3, #41 - 9403 0042 13D0 beq .L631 - 9404 .L621: -4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9405 .loc 1 4775 0 - 9406 0044 2368 ldr r3, [r4] - ARM GAS /tmp/ccFk2Nxo.s page 305 - - - 9407 0046 1022 movs r2, #16 - 9408 0048 DA61 str r2, [r3, #28] - 9409 .L620: -4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9410 .loc 1 4852 0 - 9411 004a 4023 movs r3, #64 - 9412 004c 0022 movs r2, #0 - 9413 004e E254 strb r2, [r4, r3] -4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9414 .loc 1 4854 0 - 9415 0050 0020 movs r0, #0 - 9416 .L615: -4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9417 .loc 1 4855 0 - 9418 @ sp needed - 9419 .LVL812: - 9420 .LVL813: - 9421 .LVL814: - 9422 .LVL815: - 9423 0052 F8BD pop {r3, r4, r5, r6, r7, pc} - 9424 .LVL816: - 9425 .L629: -4744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9426 .loc 1 4744 0 - 9427 0054 FFF7FEFF bl I2C_ITSlaveCplt - 9428 .LVL817: - 9429 0058 E4E7 b .L616 - 9430 .L630: -4755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9431 .loc 1 4755 0 discriminator 1 - 9432 005a 8023 movs r3, #128 - 9433 005c 9B04 lsls r3, r3, #18 - 9434 005e 9F42 cmp r7, r3 - 9435 0060 ECD1 bne .L619 -4758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9436 .loc 1 4758 0 - 9437 0062 2900 movs r1, r5 - 9438 0064 2000 movs r0, r4 - 9439 0066 FFF7FEFF bl I2C_ITListenCplt - 9440 .LVL818: - 9441 006a EEE7 b .L620 - 9442 .L631: -4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9443 .loc 1 4760 0 discriminator 1 - 9444 006c 364B ldr r3, .L633 - 9445 006e 9F42 cmp r7, r3 - 9446 0070 E8D0 beq .L621 -4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9447 .loc 1 4763 0 - 9448 0072 2368 ldr r3, [r4] - 9449 0074 1022 movs r2, #16 - 9450 0076 DA61 str r2, [r3, #28] -4766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9451 .loc 1 4766 0 - 9452 0078 2000 movs r0, r4 - 9453 007a FFF7FEFF bl I2C_Flush_TXDR - 9454 .LVL819: - ARM GAS /tmp/ccFk2Nxo.s page 306 - - -4770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9455 .loc 1 4770 0 - 9456 007e 2000 movs r0, r4 - 9457 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt - 9458 .LVL820: - 9459 0084 E1E7 b .L620 - 9460 .L618: -4782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9461 .loc 1 4782 0 - 9462 0086 2368 ldr r3, [r4] - 9463 0088 1022 movs r2, #16 - 9464 008a DA61 str r2, [r3, #28] -4785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9465 .loc 1 4785 0 - 9466 008c 636C ldr r3, [r4, #68] - 9467 008e 0C3A subs r2, r2, #12 - 9468 0090 1343 orrs r3, r2 - 9469 0092 6364 str r3, [r4, #68] -4787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9470 .loc 1 4787 0 - 9471 0094 002F cmp r7, #0 - 9472 0096 03D0 beq .L622 -4787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9473 .loc 1 4787 0 is_stmt 0 discriminator 1 - 9474 0098 8023 movs r3, #128 - 9475 009a 5B04 lsls r3, r3, #17 - 9476 009c 9F42 cmp r7, r3 - 9477 009e D4D1 bne .L620 - 9478 .L622: -4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9479 .loc 1 4790 0 is_stmt 1 - 9480 00a0 616C ldr r1, [r4, #68] - 9481 00a2 2000 movs r0, r4 - 9482 00a4 FFF7FEFF bl I2C_ITError - 9483 .LVL821: - 9484 00a8 CFE7 b .L620 - 9485 .L617: -4794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9486 .loc 1 4794 0 - 9487 00aa 6B07 lsls r3, r5, #29 - 9488 00ac 1ED5 bpl .L623 -4794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9489 .loc 1 4794 0 is_stmt 0 discriminator 1 - 9490 00ae 7307 lsls r3, r6, #29 - 9491 00b0 1CD5 bpl .L623 -4796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9492 .loc 1 4796 0 is_stmt 1 - 9493 00b2 638D ldrh r3, [r4, #42] - 9494 00b4 9BB2 uxth r3, r3 - 9495 00b6 002B cmp r3, #0 - 9496 00b8 0DD0 beq .L624 -4799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9497 .loc 1 4799 0 - 9498 00ba 2368 ldr r3, [r4] - 9499 00bc 5B6A ldr r3, [r3, #36] - 9500 00be 626A ldr r2, [r4, #36] - 9501 00c0 1370 strb r3, [r2] - ARM GAS /tmp/ccFk2Nxo.s page 307 - - -4802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9502 .loc 1 4802 0 - 9503 00c2 636A ldr r3, [r4, #36] - 9504 00c4 0133 adds r3, r3, #1 - 9505 00c6 6362 str r3, [r4, #36] -4804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; - 9506 .loc 1 4804 0 - 9507 00c8 238D ldrh r3, [r4, #40] - 9508 00ca 013B subs r3, r3, #1 - 9509 00cc 2385 strh r3, [r4, #40] -4805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9510 .loc 1 4805 0 - 9511 00ce 638D ldrh r3, [r4, #42] - 9512 00d0 013B subs r3, r3, #1 - 9513 00d2 9BB2 uxth r3, r3 - 9514 00d4 6385 strh r3, [r4, #42] - 9515 .L624: -4808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) - 9516 .loc 1 4808 0 - 9517 00d6 638D ldrh r3, [r4, #42] - 9518 00d8 9BB2 uxth r3, r3 - 9519 00da 002B cmp r3, #0 - 9520 00dc B5D1 bne .L620 -4808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) - 9521 .loc 1 4808 0 is_stmt 0 discriminator 1 - 9522 00de 1A4B ldr r3, .L633 - 9523 00e0 9F42 cmp r7, r3 - 9524 00e2 B2D0 beq .L620 -4812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9525 .loc 1 4812 0 is_stmt 1 - 9526 00e4 2000 movs r0, r4 - 9527 00e6 FFF7FEFF bl I2C_ITSlaveSeqCplt - 9528 .LVL822: - 9529 00ea AEE7 b .L620 - 9530 .L623: -4815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9531 .loc 1 4815 0 - 9532 00ec 2B07 lsls r3, r5, #28 - 9533 00ee 01D5 bpl .L625 -4815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9534 .loc 1 4815 0 is_stmt 0 discriminator 1 - 9535 00f0 3307 lsls r3, r6, #28 - 9536 00f2 16D4 bmi .L632 - 9537 .L625: -4819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9538 .loc 1 4819 0 is_stmt 1 - 9539 00f4 AB07 lsls r3, r5, #30 - 9540 00f6 A8D5 bpl .L620 -4819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9541 .loc 1 4819 0 is_stmt 0 discriminator 1 - 9542 00f8 B307 lsls r3, r6, #30 - 9543 00fa A6D5 bpl .L620 -4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9544 .loc 1 4825 0 is_stmt 1 - 9545 00fc 638D ldrh r3, [r4, #42] - 9546 00fe 9BB2 uxth r3, r3 - 9547 0100 002B cmp r3, #0 - ARM GAS /tmp/ccFk2Nxo.s page 308 - - - 9548 0102 13D0 beq .L626 -4828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9549 .loc 1 4828 0 - 9550 0104 2368 ldr r3, [r4] - 9551 0106 626A ldr r2, [r4, #36] - 9552 0108 1278 ldrb r2, [r2] - 9553 010a 9A62 str r2, [r3, #40] -4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9554 .loc 1 4831 0 - 9555 010c 636A ldr r3, [r4, #36] - 9556 010e 0133 adds r3, r3, #1 - 9557 0110 6362 str r3, [r4, #36] -4833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; - 9558 .loc 1 4833 0 - 9559 0112 638D ldrh r3, [r4, #42] - 9560 0114 013B subs r3, r3, #1 - 9561 0116 9BB2 uxth r3, r3 - 9562 0118 6385 strh r3, [r4, #42] -4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9563 .loc 1 4834 0 - 9564 011a 238D ldrh r3, [r4, #40] - 9565 011c 013B subs r3, r3, #1 - 9566 011e 2385 strh r3, [r4, #40] - 9567 0120 93E7 b .L620 - 9568 .L632: -4817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9569 .loc 1 4817 0 - 9570 0122 2900 movs r1, r5 - 9571 0124 2000 movs r0, r4 - 9572 0126 FFF7FEFF bl I2C_ITAddrCplt - 9573 .LVL823: - 9574 012a 8EE7 b .L620 - 9575 .L626: -4838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9576 .loc 1 4838 0 - 9577 012c 8023 movs r3, #128 - 9578 012e 5B04 lsls r3, r3, #17 - 9579 0130 9F42 cmp r7, r3 - 9580 0132 02D0 beq .L627 -4838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9581 .loc 1 4838 0 is_stmt 0 discriminator 1 - 9582 0134 002F cmp r7, #0 - 9583 0136 00D0 beq .LCB9518 - 9584 0138 87E7 b .L620 @long jump - 9585 .LCB9518: - 9586 .L627: -4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9587 .loc 1 4842 0 is_stmt 1 - 9588 013a 2000 movs r0, r4 - 9589 013c FFF7FEFF bl I2C_ITSlaveSeqCplt - 9590 .LVL824: - 9591 0140 83E7 b .L620 - 9592 .LVL825: - 9593 .L628: -4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9594 .loc 1 4738 0 - 9595 0142 0220 movs r0, #2 - ARM GAS /tmp/ccFk2Nxo.s page 309 - - - 9596 .LVL826: - 9597 0144 85E7 b .L615 - 9598 .L634: - 9599 0146 C046 .align 2 - 9600 .L633: - 9601 0148 0000FFFF .word -65536 - 9602 .cfi_endproc - 9603 .LFE90: - 9605 .section .text.I2C_ITMasterCplt,"ax",%progbits - 9606 .align 1 - 9607 .syntax unified - 9608 .code 16 - 9609 .thumb_func - 9610 .fpu softvfp - 9612 I2C_ITMasterCplt: - 9613 .LFB98: -5427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; - 9614 .loc 1 5427 0 - 9615 .cfi_startproc - 9616 @ args = 0, pretend = 0, frame = 0 - 9617 @ frame_needed = 0, uses_anonymous_args = 0 - 9618 .LVL827: - 9619 0000 10B5 push {r4, lr} - 9620 .LCFI75: - 9621 .cfi_def_cfa_offset 8 - 9622 .cfi_offset 4, -8 - 9623 .cfi_offset 14, -4 - 9624 0002 0400 movs r4, r0 -5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9625 .loc 1 5431 0 - 9626 0004 0368 ldr r3, [r0] - 9627 0006 2022 movs r2, #32 - 9628 0008 DA61 str r2, [r3, #28] -5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9629 .loc 1 5434 0 - 9630 000a 0268 ldr r2, [r0] - 9631 000c 5368 ldr r3, [r2, #4] - 9632 000e 2F48 ldr r0, .L646 - 9633 .LVL828: - 9634 0010 0340 ands r3, r0 - 9635 0012 5360 str r3, [r2, #4] -5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; - 9636 .loc 1 5437 0 - 9637 0014 0023 movs r3, #0 - 9638 0016 2363 str r3, [r4, #48] -5438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 9639 .loc 1 5438 0 - 9640 0018 6363 str r3, [r4, #52] -5439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9641 .loc 1 5439 0 - 9642 001a 2D4B ldr r3, .L646+4 - 9643 001c E362 str r3, [r4, #44] -5441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9644 .loc 1 5441 0 - 9645 001e CB06 lsls r3, r1, #27 - 9646 0020 06D5 bpl .L636 -5444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 310 - - - 9647 .loc 1 5444 0 - 9648 0022 2368 ldr r3, [r4] - 9649 0024 1022 movs r2, #16 - 9650 0026 DA61 str r2, [r3, #28] -5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9651 .loc 1 5447 0 - 9652 0028 636C ldr r3, [r4, #68] - 9653 002a 0C3A subs r2, r2, #12 - 9654 002c 1343 orrs r3, r2 - 9655 002e 6364 str r3, [r4, #68] - 9656 .L636: -5451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9657 .loc 1 5451 0 - 9658 0030 2000 movs r0, r4 - 9659 0032 FFF7FEFF bl I2C_Flush_TXDR - 9660 .LVL829: -5454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9661 .loc 1 5454 0 - 9662 0036 0321 movs r1, #3 - 9663 0038 2000 movs r0, r4 - 9664 003a FFF7FEFF bl I2C_Disable_IRQ - 9665 .LVL830: -5457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9666 .loc 1 5457 0 - 9667 003e 626C ldr r2, [r4, #68] - 9668 .LVL831: -5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9669 .loc 1 5460 0 - 9670 0040 4123 movs r3, #65 - 9671 0042 E35C ldrb r3, [r4, r3] - 9672 0044 602B cmp r3, #96 - 9673 0046 19D0 beq .L637 -5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9674 .loc 1 5460 0 is_stmt 0 discriminator 1 - 9675 0048 002A cmp r2, #0 - 9676 004a 17D1 bne .L637 -5466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9677 .loc 1 5466 0 is_stmt 1 - 9678 004c 4123 movs r3, #65 - 9679 004e E35C ldrb r3, [r4, r3] - 9680 0050 212B cmp r3, #33 - 9681 0052 18D0 beq .L643 -5500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9682 .loc 1 5500 0 - 9683 0054 4123 movs r3, #65 - 9684 0056 E35C ldrb r3, [r4, r3] - 9685 0058 222B cmp r3, #34 - 9686 005a 13D1 bne .L635 -5502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9687 .loc 1 5502 0 - 9688 005c 1F33 adds r3, r3, #31 - 9689 005e 2022 movs r2, #32 - 9690 .LVL832: - 9691 0060 E254 strb r2, [r4, r3] -5504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9692 .loc 1 5504 0 - 9693 0062 0133 adds r3, r3, #1 - ARM GAS /tmp/ccFk2Nxo.s page 311 - - - 9694 0064 E35C ldrb r3, [r4, r3] - 9695 0066 402B cmp r3, #64 - 9696 0068 26D0 beq .L644 -5520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9697 .loc 1 5520 0 - 9698 006a 0023 movs r3, #0 - 9699 006c 4222 movs r2, #66 - 9700 006e A354 strb r3, [r4, r2] -5523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9701 .loc 1 5523 0 - 9702 0070 023A subs r2, r2, #2 - 9703 0072 A354 strb r3, [r4, r2] -5529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9704 .loc 1 5529 0 - 9705 0074 2000 movs r0, r4 - 9706 0076 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback - 9707 .LVL833: -5537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9708 .loc 1 5537 0 - 9709 007a 03E0 b .L635 - 9710 .LVL834: - 9711 .L637: -5463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9712 .loc 1 5463 0 - 9713 007c 616C ldr r1, [r4, #68] - 9714 007e 2000 movs r0, r4 - 9715 0080 FFF7FEFF bl I2C_ITError - 9716 .LVL835: - 9717 .L635: -5537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9718 .loc 1 5537 0 - 9719 @ sp needed - 9720 .LVL836: - 9721 0084 10BD pop {r4, pc} - 9722 .LVL837: - 9723 .L643: -5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9724 .loc 1 5468 0 - 9725 0086 2033 adds r3, r3, #32 - 9726 0088 2022 movs r2, #32 - 9727 .LVL838: - 9728 008a E254 strb r2, [r4, r3] -5470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9729 .loc 1 5470 0 - 9730 008c 0133 adds r3, r3, #1 - 9731 008e E35C ldrb r3, [r4, r3] - 9732 0090 402B cmp r3, #64 - 9733 0092 08D0 beq .L645 -5486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9734 .loc 1 5486 0 - 9735 0094 0023 movs r3, #0 - 9736 0096 4222 movs r2, #66 - 9737 0098 A354 strb r3, [r4, r2] -5489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9738 .loc 1 5489 0 - 9739 009a 023A subs r2, r2, #2 - 9740 009c A354 strb r3, [r4, r2] - ARM GAS /tmp/ccFk2Nxo.s page 312 - - -5495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9741 .loc 1 5495 0 - 9742 009e 2000 movs r0, r4 - 9743 00a0 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback - 9744 .LVL839: - 9745 00a4 EEE7 b .L635 - 9746 .L645: -5472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9747 .loc 1 5472 0 - 9748 00a6 0023 movs r3, #0 - 9749 00a8 2232 adds r2, r2, #34 - 9750 00aa A354 strb r3, [r4, r2] -5475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9751 .loc 1 5475 0 - 9752 00ac 023A subs r2, r2, #2 - 9753 00ae A354 strb r3, [r4, r2] -5481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9754 .loc 1 5481 0 - 9755 00b0 2000 movs r0, r4 - 9756 00b2 FFF7FEFF bl HAL_I2C_MemTxCpltCallback - 9757 .LVL840: - 9758 00b6 E5E7 b .L635 - 9759 .L644: -5506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9760 .loc 1 5506 0 - 9761 00b8 0023 movs r3, #0 - 9762 00ba 2232 adds r2, r2, #34 - 9763 00bc A354 strb r3, [r4, r2] -5509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9764 .loc 1 5509 0 - 9765 00be 023A subs r2, r2, #2 - 9766 00c0 A354 strb r3, [r4, r2] -5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 9767 .loc 1 5515 0 - 9768 00c2 2000 movs r0, r4 - 9769 00c4 FFF7FEFF bl HAL_I2C_MemRxCpltCallback - 9770 .LVL841: - 9771 00c8 DCE7 b .L635 - 9772 .L647: - 9773 00ca C046 .align 2 - 9774 .L646: - 9775 00cc 00E800FE .word -33495040 - 9776 00d0 0000FFFF .word -65536 - 9777 .cfi_endproc - 9778 .LFE98: - 9780 .section .text.I2C_Master_ISR_IT,"ax",%progbits - 9781 .align 1 - 9782 .syntax unified - 9783 .code 16 - 9784 .thumb_func - 9785 .fpu softvfp - 9787 I2C_Master_ISR_IT: - 9788 .LFB89: -4596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; - 9789 .loc 1 4596 0 - 9790 .cfi_startproc - 9791 @ args = 0, pretend = 0, frame = 0 - ARM GAS /tmp/ccFk2Nxo.s page 313 - - - 9792 @ frame_needed = 0, uses_anonymous_args = 0 - 9793 .LVL842: - 9794 0000 70B5 push {r4, r5, r6, lr} - 9795 .LCFI76: - 9796 .cfi_def_cfa_offset 16 - 9797 .cfi_offset 4, -16 - 9798 .cfi_offset 5, -12 - 9799 .cfi_offset 6, -8 - 9800 .cfi_offset 14, -4 - 9801 0002 82B0 sub sp, sp, #8 - 9802 .LCFI77: - 9803 .cfi_def_cfa_offset 24 - 9804 0004 0400 movs r4, r0 - 9805 0006 0D00 movs r5, r1 - 9806 0008 1600 movs r6, r2 - 9807 .LVL843: -4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9808 .loc 1 4601 0 - 9809 000a 4023 movs r3, #64 - 9810 000c C35C ldrb r3, [r0, r3] - 9811 000e 012B cmp r3, #1 - 9812 0010 00D1 bne .LCB9725 - 9813 0012 ADE0 b .L662 @long jump - 9814 .LCB9725: -4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9815 .loc 1 4601 0 is_stmt 0 discriminator 2 - 9816 0014 0123 movs r3, #1 - 9817 0016 4022 movs r2, #64 - 9818 .LVL844: - 9819 0018 8354 strb r3, [r0, r2] -4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9820 .loc 1 4603 0 is_stmt 1 discriminator 2 - 9821 001a 0A09 lsrs r2, r1, #4 - 9822 001c 1342 tst r3, r2 - 9823 001e 01D0 beq .L650 -4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9824 .loc 1 4603 0 is_stmt 0 discriminator 1 - 9825 0020 F306 lsls r3, r6, #27 - 9826 0022 1ED4 bmi .L663 - 9827 .L650: -4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9828 .loc 1 4616 0 is_stmt 1 - 9829 0024 6B07 lsls r3, r5, #29 - 9830 0026 26D5 bpl .L652 -4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9831 .loc 1 4616 0 is_stmt 0 discriminator 1 - 9832 0028 7307 lsls r3, r6, #29 - 9833 002a 24D5 bpl .L652 -4619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9834 .loc 1 4619 0 is_stmt 1 - 9835 002c 0423 movs r3, #4 - 9836 002e 9D43 bics r5, r3 - 9837 .LVL845: -4622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9838 .loc 1 4622 0 - 9839 0030 2368 ldr r3, [r4] - 9840 0032 5B6A ldr r3, [r3, #36] - ARM GAS /tmp/ccFk2Nxo.s page 314 - - - 9841 0034 626A ldr r2, [r4, #36] - 9842 0036 1370 strb r3, [r2] -4625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9843 .loc 1 4625 0 - 9844 0038 636A ldr r3, [r4, #36] - 9845 003a 0133 adds r3, r3, #1 - 9846 003c 6362 str r3, [r4, #36] -4627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; - 9847 .loc 1 4627 0 - 9848 003e 238D ldrh r3, [r4, #40] - 9849 0040 013B subs r3, r3, #1 - 9850 0042 2385 strh r3, [r4, #40] -4628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9851 .loc 1 4628 0 - 9852 0044 638D ldrh r3, [r4, #42] - 9853 0046 013B subs r3, r3, #1 - 9854 0048 9BB2 uxth r3, r3 - 9855 004a 6385 strh r3, [r4, #42] - 9856 .LVL846: - 9857 .L651: -4712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9858 .loc 1 4712 0 - 9859 004c AB06 lsls r3, r5, #26 - 9860 004e 02D5 bpl .L661 -4712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9861 .loc 1 4712 0 is_stmt 0 discriminator 1 - 9862 0050 B306 lsls r3, r6, #26 - 9863 0052 00D5 bpl .LCB9787 - 9864 0054 87E0 b .L664 @long jump - 9865 .LCB9787: - 9866 .L661: -4719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9867 .loc 1 4719 0 is_stmt 1 - 9868 0056 4023 movs r3, #64 - 9869 0058 0022 movs r2, #0 - 9870 005a E254 strb r2, [r4, r3] -4721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9871 .loc 1 4721 0 - 9872 005c 0020 movs r0, #0 - 9873 .L649: -4722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9874 .loc 1 4722 0 - 9875 005e 02B0 add sp, sp, #8 - 9876 @ sp needed - 9877 .LVL847: - 9878 .LVL848: - 9879 .LVL849: - 9880 0060 70BD pop {r4, r5, r6, pc} - 9881 .LVL850: - 9882 .L663: -4606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9883 .loc 1 4606 0 - 9884 0062 0368 ldr r3, [r0] - 9885 0064 1022 movs r2, #16 - 9886 0066 DA61 str r2, [r3, #28] -4611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9887 .loc 1 4611 0 - ARM GAS /tmp/ccFk2Nxo.s page 315 - - - 9888 0068 436C ldr r3, [r0, #68] - 9889 006a 0C3A subs r2, r2, #12 - 9890 006c 1343 orrs r3, r2 - 9891 006e 4364 str r3, [r0, #68] -4614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9892 .loc 1 4614 0 - 9893 0070 FFF7FEFF bl I2C_Flush_TXDR - 9894 .LVL851: - 9895 0074 EAE7 b .L651 - 9896 .LVL852: - 9897 .L652: -4630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9898 .loc 1 4630 0 - 9899 0076 AB07 lsls r3, r5, #30 - 9900 0078 10D5 bpl .L653 -4630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9901 .loc 1 4630 0 is_stmt 0 discriminator 1 - 9902 007a B307 lsls r3, r6, #30 - 9903 007c 0ED5 bpl .L653 -4633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9904 .loc 1 4633 0 is_stmt 1 - 9905 007e 2368 ldr r3, [r4] - 9906 0080 626A ldr r2, [r4, #36] - 9907 0082 1278 ldrb r2, [r2] - 9908 0084 9A62 str r2, [r3, #40] -4636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9909 .loc 1 4636 0 - 9910 0086 636A ldr r3, [r4, #36] - 9911 0088 0133 adds r3, r3, #1 - 9912 008a 6362 str r3, [r4, #36] -4638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; - 9913 .loc 1 4638 0 - 9914 008c 238D ldrh r3, [r4, #40] - 9915 008e 013B subs r3, r3, #1 - 9916 0090 2385 strh r3, [r4, #40] -4639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9917 .loc 1 4639 0 - 9918 0092 638D ldrh r3, [r4, #42] - 9919 0094 013B subs r3, r3, #1 - 9920 0096 9BB2 uxth r3, r3 - 9921 0098 6385 strh r3, [r4, #42] - 9922 009a D7E7 b .L651 - 9923 .L653: -4641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9924 .loc 1 4641 0 - 9925 009c 2B06 lsls r3, r5, #24 - 9926 009e 40D5 bpl .L654 -4641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9927 .loc 1 4641 0 is_stmt 0 discriminator 1 - 9928 00a0 7306 lsls r3, r6, #25 - 9929 00a2 3ED5 bpl .L654 -4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9930 .loc 1 4643 0 is_stmt 1 - 9931 00a4 638D ldrh r3, [r4, #42] - 9932 00a6 9BB2 uxth r3, r3 - 9933 00a8 002B cmp r3, #0 - 9934 00aa 2DD0 beq .L655 - ARM GAS /tmp/ccFk2Nxo.s page 316 - - -4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9935 .loc 1 4643 0 is_stmt 0 discriminator 1 - 9936 00ac 238D ldrh r3, [r4, #40] - 9937 00ae 002B cmp r3, #0 - 9938 00b0 2AD1 bne .L655 -4645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 9939 .loc 1 4645 0 is_stmt 1 - 9940 00b2 2368 ldr r3, [r4] - 9941 00b4 5968 ldr r1, [r3, #4] - 9942 .LVL853: - 9943 00b6 8905 lsls r1, r1, #22 - 9944 00b8 890D lsrs r1, r1, #22 - 9945 .LVL854: -4647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9946 .loc 1 4647 0 - 9947 00ba 638D ldrh r3, [r4, #42] - 9948 00bc 9BB2 uxth r3, r3 - 9949 00be FF2B cmp r3, #255 - 9950 00c0 0ED8 bhi .L665 -4654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) - 9951 .loc 1 4654 0 - 9952 00c2 628D ldrh r2, [r4, #42] - 9953 00c4 92B2 uxth r2, r2 - 9954 00c6 2285 strh r2, [r4, #40] -4655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 9955 .loc 1 4655 0 - 9956 00c8 E06A ldr r0, [r4, #44] - 9957 .LVL855: - 9958 00ca 2A4B ldr r3, .L666 - 9959 00cc 9842 cmp r0, r3 - 9960 00ce 12D0 beq .L657 -4657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9961 .loc 1 4657 0 - 9962 00d0 E36A ldr r3, [r4, #44] - 9963 00d2 D2B2 uxtb r2, r2 - 9964 00d4 0020 movs r0, #0 - 9965 00d6 0090 str r0, [sp] - 9966 00d8 2000 movs r0, r4 - 9967 00da FFF7FEFF bl I2C_TransferConfig - 9968 .LVL856: - 9969 00de B5E7 b .L651 - 9970 .LVL857: - 9971 .L665: -4649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START - 9972 .loc 1 4649 0 - 9973 00e0 FF23 movs r3, #255 - 9974 00e2 2385 strh r3, [r4, #40] -4650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9975 .loc 1 4650 0 - 9976 00e4 7F3B subs r3, r3, #127 - 9977 00e6 0022 movs r2, #0 - 9978 00e8 0092 str r2, [sp] - 9979 00ea 5B04 lsls r3, r3, #17 - 9980 00ec FF32 adds r2, r2, #255 - 9981 00ee 2000 movs r0, r4 - 9982 .LVL858: - 9983 00f0 FFF7FEFF bl I2C_TransferConfig - ARM GAS /tmp/ccFk2Nxo.s page 317 - - - 9984 .LVL859: - 9985 00f4 AAE7 b .L651 - 9986 .LVL860: - 9987 .L657: -4661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 9988 .loc 1 4661 0 - 9989 00f6 8023 movs r3, #128 - 9990 00f8 D2B2 uxtb r2, r2 - 9991 00fa 0020 movs r0, #0 - 9992 00fc 0090 str r0, [sp] - 9993 00fe 9B04 lsls r3, r3, #18 - 9994 0100 2000 movs r0, r4 - 9995 0102 FFF7FEFF bl I2C_TransferConfig - 9996 .LVL861: - 9997 0106 A1E7 b .L651 - 9998 .LVL862: - 9999 .L655: -4668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10000 .loc 1 4668 0 - 10001 0108 2368 ldr r3, [r4] - 10002 010a 5B68 ldr r3, [r3, #4] - 10003 010c 9B01 lsls r3, r3, #6 - 10004 010e 03D4 bmi .L658 -4671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10005 .loc 1 4671 0 - 10006 0110 2000 movs r0, r4 - 10007 .LVL863: - 10008 0112 FFF7FEFF bl I2C_ITMasterSeqCplt - 10009 .LVL864: - 10010 0116 99E7 b .L651 - 10011 .LVL865: - 10012 .L658: -4677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10013 .loc 1 4677 0 - 10014 0118 4021 movs r1, #64 - 10015 .LVL866: - 10016 011a 2000 movs r0, r4 - 10017 .LVL867: - 10018 011c FFF7FEFF bl I2C_ITError - 10019 .LVL868: - 10020 0120 94E7 b .L651 - 10021 .LVL869: - 10022 .L654: -4681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10023 .loc 1 4681 0 - 10024 0122 6B06 lsls r3, r5, #25 - 10025 0124 00D4 bmi .LCB9991 - 10026 0126 91E7 b .L651 @long jump - 10027 .LCB9991: -4681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10028 .loc 1 4681 0 is_stmt 0 discriminator 1 - 10029 0128 7306 lsls r3, r6, #25 - 10030 012a 00D4 bmi .LCB9996 - 10031 012c 8EE7 b .L651 @long jump - 10032 .LCB9996: -4683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10033 .loc 1 4683 0 is_stmt 1 - ARM GAS /tmp/ccFk2Nxo.s page 318 - - - 10034 012e 638D ldrh r3, [r4, #42] - 10035 0130 9BB2 uxth r3, r3 - 10036 0132 002B cmp r3, #0 - 10037 0134 12D1 bne .L659 -4685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10038 .loc 1 4685 0 - 10039 0136 2368 ldr r3, [r4] - 10040 0138 5A68 ldr r2, [r3, #4] - 10041 013a 9201 lsls r2, r2, #6 - 10042 013c 00D5 bpl .LCB10006 - 10043 013e 85E7 b .L651 @long jump - 10044 .LCB10006: -4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10045 .loc 1 4688 0 - 10046 0140 E16A ldr r1, [r4, #44] - 10047 .LVL870: - 10048 0142 0C4A ldr r2, .L666 - 10049 0144 9142 cmp r1, r2 - 10050 0146 05D1 bne .L660 -4691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10051 .loc 1 4691 0 - 10052 0148 5968 ldr r1, [r3, #4] - 10053 014a 8022 movs r2, #128 - 10054 014c D201 lsls r2, r2, #7 - 10055 014e 0A43 orrs r2, r1 - 10056 0150 5A60 str r2, [r3, #4] - 10057 0152 7BE7 b .L651 - 10058 .L660: -4696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10059 .loc 1 4696 0 - 10060 0154 2000 movs r0, r4 - 10061 .LVL871: - 10062 0156 FFF7FEFF bl I2C_ITMasterSeqCplt - 10063 .LVL872: - 10064 015a 77E7 b .L651 - 10065 .LVL873: - 10066 .L659: -4704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10067 .loc 1 4704 0 - 10068 015c 4021 movs r1, #64 - 10069 .LVL874: - 10070 015e 2000 movs r0, r4 - 10071 .LVL875: - 10072 0160 FFF7FEFF bl I2C_ITError - 10073 .LVL876: - 10074 0164 72E7 b .L651 - 10075 .LVL877: - 10076 .L664: -4715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10077 .loc 1 4715 0 - 10078 0166 2900 movs r1, r5 - 10079 0168 2000 movs r0, r4 - 10080 016a FFF7FEFF bl I2C_ITMasterCplt - 10081 .LVL878: - 10082 016e 72E7 b .L661 - 10083 .LVL879: - 10084 .L662: - ARM GAS /tmp/ccFk2Nxo.s page 319 - - -4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10085 .loc 1 4601 0 - 10086 0170 0220 movs r0, #2 - 10087 .LVL880: - 10088 0172 74E7 b .L649 - 10089 .L667: - 10090 .align 2 - 10091 .L666: - 10092 0174 0000FFFF .word -65536 - 10093 .cfi_endproc - 10094 .LFE89: - 10096 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits - 10097 .align 1 - 10098 .syntax unified - 10099 .code 16 - 10100 .thumb_func - 10101 .fpu softvfp - 10103 I2C_Slave_ISR_DMA: - 10104 .LFB92: -5001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; - 10105 .loc 1 5001 0 - 10106 .cfi_startproc - 10107 @ args = 0, pretend = 0, frame = 0 - 10108 @ frame_needed = 0, uses_anonymous_args = 0 - 10109 .LVL881: - 10110 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 10111 .LCFI78: - 10112 .cfi_def_cfa_offset 24 - 10113 .cfi_offset 3, -24 - 10114 .cfi_offset 4, -20 - 10115 .cfi_offset 5, -16 - 10116 .cfi_offset 6, -12 - 10117 .cfi_offset 7, -8 - 10118 .cfi_offset 14, -4 - 10119 0002 0400 movs r4, r0 - 10120 0004 0D00 movs r5, r1 - 10121 0006 1600 movs r6, r2 -5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U; - 10122 .loc 1 5002 0 - 10123 0008 C76A ldr r7, [r0, #44] - 10124 .LVL882: -5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10125 .loc 1 5006 0 - 10126 000a 4023 movs r3, #64 - 10127 000c C35C ldrb r3, [r0, r3] - 10128 000e 012B cmp r3, #1 - 10129 0010 00D1 bne .LCB10095 - 10130 0012 75E0 b .L682 @long jump - 10131 .LCB10095: -5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10132 .loc 1 5006 0 is_stmt 0 discriminator 2 - 10133 0014 0123 movs r3, #1 - 10134 0016 4022 movs r2, #64 - 10135 .LVL883: - 10136 0018 8354 strb r3, [r0, r2] -5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10137 .loc 1 5009 0 is_stmt 1 discriminator 2 - ARM GAS /tmp/ccFk2Nxo.s page 320 - - - 10138 001a 4A09 lsrs r2, r1, #5 - 10139 001c 1342 tst r3, r2 - 10140 001e 01D0 beq .L670 -5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10141 .loc 1 5009 0 is_stmt 0 discriminator 1 - 10142 0020 B306 lsls r3, r6, #26 - 10143 0022 14D4 bmi .L686 - 10144 .LVL884: - 10145 .L670: -5015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10146 .loc 1 5015 0 is_stmt 1 - 10147 0024 EB06 lsls r3, r5, #27 - 10148 0026 5DD5 bpl .L671 -5015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10149 .loc 1 5015 0 is_stmt 0 discriminator 1 - 10150 0028 F306 lsls r3, r6, #27 - 10151 002a 5BD5 bpl .L671 -5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) - 10152 .loc 1 5021 0 is_stmt 1 - 10153 002c B20B lsrs r2, r6, #14 - 10154 002e 0123 movs r3, #1 - 10155 0030 1340 ands r3, r2 - 10156 0032 01D1 bne .L672 -5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) - 10157 .loc 1 5021 0 is_stmt 0 discriminator 1 - 10158 0034 3204 lsls r2, r6, #16 - 10159 0036 51D5 bpl .L673 - 10160 .L672: -5025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10161 .loc 1 5025 0 is_stmt 1 - 10162 0038 E26B ldr r2, [r4, #60] - 10163 003a 002A cmp r2, #0 - 10164 003c 0AD0 beq .L683 -5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10165 .loc 1 5027 0 - 10166 003e 3104 lsls r1, r6, #16 - 10167 0040 0AD5 bpl .L684 -5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10168 .loc 1 5029 0 - 10169 0042 1268 ldr r2, [r2] - 10170 0044 5268 ldr r2, [r2, #4] - 10171 0046 002A cmp r2, #0 - 10172 0048 24D0 beq .L685 -5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10173 .loc 1 5003 0 - 10174 004a 0021 movs r1, #0 - 10175 004c 05E0 b .L674 - 10176 .LVL885: - 10177 .L686: -5012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10178 .loc 1 5012 0 - 10179 004e FFF7FEFF bl I2C_ITSlaveCplt - 10180 .LVL886: - 10181 0052 E7E7 b .L670 - 10182 .L683: -5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10183 .loc 1 5003 0 - ARM GAS /tmp/ccFk2Nxo.s page 321 - - - 10184 0054 0021 movs r1, #0 - 10185 0056 00E0 b .L674 - 10186 .L684: - 10187 0058 0021 movs r1, #0 - 10188 .L674: - 10189 .LVL887: -5037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10190 .loc 1 5037 0 - 10191 005a A26B ldr r2, [r4, #56] - 10192 005c 002A cmp r2, #0 - 10193 005e 05D0 beq .L675 -5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10194 .loc 1 5039 0 - 10195 0060 002B cmp r3, #0 - 10196 0062 03D0 beq .L675 -5041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10197 .loc 1 5041 0 - 10198 0064 1368 ldr r3, [r2] - 10199 0066 5B68 ldr r3, [r3, #4] - 10200 0068 002B cmp r3, #0 - 10201 006a 15D0 beq .L676 - 10202 .L675: -5048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10203 .loc 1 5048 0 - 10204 006c 0129 cmp r1, #1 - 10205 006e 13D0 beq .L676 -5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10206 .loc 1 5077 0 - 10207 0070 2368 ldr r3, [r4] - 10208 0072 1022 movs r2, #16 - 10209 0074 DA61 str r2, [r3, #28] -5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10210 .loc 1 5080 0 - 10211 0076 636C ldr r3, [r4, #68] - 10212 0078 0C3A subs r2, r2, #12 - 10213 007a 1343 orrs r3, r2 - 10214 007c 6364 str r3, [r4, #68] -5082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10215 .loc 1 5082 0 - 10216 007e 002F cmp r7, #0 - 10217 0080 03D0 beq .L681 -5082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10218 .loc 1 5082 0 is_stmt 0 discriminator 1 - 10219 0082 8023 movs r3, #128 - 10220 0084 5B04 lsls r3, r3, #17 - 10221 0086 9F42 cmp r7, r3 - 10222 0088 30D1 bne .L679 - 10223 .L681: -5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10224 .loc 1 5085 0 is_stmt 1 - 10225 008a 616C ldr r1, [r4, #68] - 10226 .LVL888: - 10227 008c 2000 movs r0, r4 - 10228 008e FFF7FEFF bl I2C_ITError - 10229 .LVL889: - 10230 0092 2BE0 b .L679 - 10231 .LVL890: - ARM GAS /tmp/ccFk2Nxo.s page 322 - - - 10232 .L685: -5031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10233 .loc 1 5031 0 - 10234 0094 0121 movs r1, #1 - 10235 0096 E0E7 b .L674 - 10236 .LVL891: - 10237 .L676: -5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10238 .loc 1 5050 0 - 10239 0098 4123 movs r3, #65 - 10240 009a E35C ldrb r3, [r4, r3] - 10241 009c 282B cmp r3, #40 - 10242 009e 07D0 beq .L687 - 10243 .L678: -5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10244 .loc 1 5055 0 - 10245 00a0 4123 movs r3, #65 - 10246 00a2 E35C ldrb r3, [r4, r3] - 10247 00a4 292B cmp r3, #41 - 10248 00a6 0CD0 beq .L688 - 10249 .L680: -5070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10250 .loc 1 5070 0 - 10251 00a8 2368 ldr r3, [r4] - 10252 00aa 1022 movs r2, #16 - 10253 00ac DA61 str r2, [r3, #28] - 10254 00ae 1DE0 b .L679 - 10255 .L687: -5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10256 .loc 1 5050 0 discriminator 1 - 10257 00b0 8023 movs r3, #128 - 10258 00b2 9B04 lsls r3, r3, #18 - 10259 00b4 9F42 cmp r7, r3 - 10260 00b6 F3D1 bne .L678 -5053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10261 .loc 1 5053 0 - 10262 00b8 2900 movs r1, r5 - 10263 .LVL892: - 10264 00ba 2000 movs r0, r4 - 10265 00bc FFF7FEFF bl I2C_ITListenCplt - 10266 .LVL893: - 10267 00c0 14E0 b .L679 - 10268 .LVL894: - 10269 .L688: -5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10270 .loc 1 5055 0 discriminator 1 - 10271 00c2 104B ldr r3, .L690 - 10272 00c4 9F42 cmp r7, r3 - 10273 00c6 EFD0 beq .L680 -5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10274 .loc 1 5058 0 - 10275 00c8 2368 ldr r3, [r4] - 10276 00ca 1022 movs r2, #16 - 10277 00cc DA61 str r2, [r3, #28] -5061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10278 .loc 1 5061 0 - 10279 00ce 2000 movs r0, r4 - ARM GAS /tmp/ccFk2Nxo.s page 323 - - - 10280 00d0 FFF7FEFF bl I2C_Flush_TXDR - 10281 .LVL895: -5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10282 .loc 1 5065 0 - 10283 00d4 2000 movs r0, r4 - 10284 00d6 FFF7FEFF bl I2C_ITSlaveSeqCplt - 10285 .LVL896: - 10286 00da 07E0 b .L679 - 10287 .LVL897: - 10288 .L673: -5092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10289 .loc 1 5092 0 - 10290 00dc 2368 ldr r3, [r4] - 10291 00de 1022 movs r2, #16 - 10292 00e0 DA61 str r2, [r3, #28] - 10293 00e2 03E0 b .L679 - 10294 .L671: -5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10295 .loc 1 5095 0 - 10296 00e4 2B07 lsls r3, r5, #28 - 10297 00e6 01D5 bpl .L679 -5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10298 .loc 1 5095 0 is_stmt 0 discriminator 1 - 10299 00e8 3307 lsls r3, r6, #28 - 10300 00ea 04D4 bmi .L689 - 10301 .LVL898: - 10302 .L679: -5105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10303 .loc 1 5105 0 is_stmt 1 - 10304 00ec 4023 movs r3, #64 - 10305 00ee 0022 movs r2, #0 - 10306 00f0 E254 strb r2, [r4, r3] -5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10307 .loc 1 5107 0 - 10308 00f2 0020 movs r0, #0 - 10309 .L669: -5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10310 .loc 1 5108 0 - 10311 @ sp needed - 10312 .LVL899: - 10313 .LVL900: - 10314 .LVL901: - 10315 .LVL902: - 10316 00f4 F8BD pop {r3, r4, r5, r6, r7, pc} - 10317 .LVL903: - 10318 .L689: -5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10319 .loc 1 5097 0 - 10320 00f6 2900 movs r1, r5 - 10321 00f8 2000 movs r0, r4 - 10322 00fa FFF7FEFF bl I2C_ITAddrCplt - 10323 .LVL904: - 10324 00fe F5E7 b .L679 - 10325 .LVL905: - 10326 .L682: -5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10327 .loc 1 5006 0 - ARM GAS /tmp/ccFk2Nxo.s page 324 - - - 10328 0100 0220 movs r0, #2 - 10329 .LVL906: - 10330 0102 F7E7 b .L669 - 10331 .L691: - 10332 .align 2 - 10333 .L690: - 10334 0104 0000FFFF .word -65536 - 10335 .cfi_endproc - 10336 .LFE92: - 10338 .section .text.I2C_Master_ISR_DMA,"ax",%progbits - 10339 .align 1 - 10340 .syntax unified - 10341 .code 16 - 10342 .thumb_func - 10343 .fpu softvfp - 10345 I2C_Master_ISR_DMA: - 10346 .LFB91: -4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; - 10347 .loc 1 4866 0 - 10348 .cfi_startproc - 10349 @ args = 0, pretend = 0, frame = 0 - 10350 @ frame_needed = 0, uses_anonymous_args = 0 - 10351 .LVL907: - 10352 0000 10B5 push {r4, lr} - 10353 .LCFI79: - 10354 .cfi_def_cfa_offset 8 - 10355 .cfi_offset 4, -8 - 10356 .cfi_offset 14, -4 - 10357 0002 82B0 sub sp, sp, #8 - 10358 .LCFI80: - 10359 .cfi_def_cfa_offset 16 - 10360 0004 0400 movs r4, r0 -4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10361 .loc 1 4871 0 - 10362 0006 4023 movs r3, #64 - 10363 0008 C35C ldrb r3, [r0, r3] - 10364 000a 012B cmp r3, #1 - 10365 000c 00D1 bne .LCB10362 - 10366 000e 91E0 b .L705 @long jump - 10367 .LCB10362: -4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10368 .loc 1 4871 0 is_stmt 0 discriminator 2 - 10369 0010 0123 movs r3, #1 - 10370 0012 4020 movs r0, #64 - 10371 .LVL908: - 10372 0014 2354 strb r3, [r4, r0] -4873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10373 .loc 1 4873 0 is_stmt 1 discriminator 2 - 10374 0016 0809 lsrs r0, r1, #4 - 10375 0018 0342 tst r3, r0 - 10376 001a 01D0 beq .L694 -4873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10377 .loc 1 4873 0 is_stmt 0 discriminator 1 - 10378 001c D306 lsls r3, r2, #27 - 10379 001e 2FD4 bmi .L707 - 10380 .L694: -4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - ARM GAS /tmp/ccFk2Nxo.s page 325 - - - 10381 .loc 1 4889 0 is_stmt 1 - 10382 0020 0B06 lsls r3, r1, #24 - 10383 0022 60D5 bpl .L696 -4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10384 .loc 1 4889 0 is_stmt 0 discriminator 1 - 10385 0024 5306 lsls r3, r2, #25 - 10386 0026 5ED5 bpl .L696 -4892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10387 .loc 1 4892 0 is_stmt 1 - 10388 0028 2268 ldr r2, [r4] - 10389 .LVL909: - 10390 002a 1368 ldr r3, [r2] - 10391 002c 4021 movs r1, #64 - 10392 .LVL910: - 10393 002e 8B43 bics r3, r1 - 10394 0030 1360 str r3, [r2] -4894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10395 .loc 1 4894 0 - 10396 0032 638D ldrh r3, [r4, #42] - 10397 0034 9BB2 uxth r3, r3 - 10398 0036 002B cmp r3, #0 - 10399 0038 48D0 beq .L697 -4897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10400 .loc 1 4897 0 - 10401 003a 2368 ldr r3, [r4] - 10402 003c 5968 ldr r1, [r3, #4] - 10403 003e 8905 lsls r1, r1, #22 - 10404 0040 890D lsrs r1, r1, #22 - 10405 .LVL911: -4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10406 .loc 1 4900 0 - 10407 0042 638D ldrh r3, [r4, #42] - 10408 0044 9BB2 uxth r3, r3 - 10409 0046 FF2B cmp r3, #255 - 10410 0048 2ED9 bls .L698 -4902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; - 10411 .loc 1 4902 0 - 10412 004a FF23 movs r3, #255 - 10413 004c 2385 strh r3, [r4, #40] - 10414 .LVL912: -4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10415 .loc 1 4903 0 - 10416 004e 8023 movs r3, #128 - 10417 0050 5B04 lsls r3, r3, #17 - 10418 .LVL913: - 10419 .L699: -4919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10420 .loc 1 4919 0 - 10421 0052 228D ldrh r2, [r4, #40] - 10422 0054 D2B2 uxtb r2, r2 - 10423 0056 0020 movs r0, #0 - 10424 0058 0090 str r0, [sp] - 10425 005a 2000 movs r0, r4 - 10426 005c FFF7FEFF bl I2C_TransferConfig - 10427 .LVL914: -4922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10428 .loc 1 4922 0 - ARM GAS /tmp/ccFk2Nxo.s page 326 - - - 10429 0060 638D ldrh r3, [r4, #42] - 10430 0062 228D ldrh r2, [r4, #40] - 10431 0064 9B1A subs r3, r3, r2 - 10432 0066 9BB2 uxth r3, r3 - 10433 0068 6385 strh r3, [r4, #42] -4925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10434 .loc 1 4925 0 - 10435 006a 4123 movs r3, #65 - 10436 006c E35C ldrb r3, [r4, r3] - 10437 006e 222B cmp r3, #34 - 10438 0070 25D0 beq .L708 -4931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10439 .loc 1 4931 0 - 10440 0072 2268 ldr r2, [r4] - 10441 0074 1168 ldr r1, [r2] - 10442 0076 8023 movs r3, #128 - 10443 0078 DB01 lsls r3, r3, #7 - 10444 007a 0B43 orrs r3, r1 - 10445 007c 1360 str r3, [r2] - 10446 007e 0DE0 b .L695 - 10447 .LVL915: - 10448 .L707: -4876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10449 .loc 1 4876 0 - 10450 0080 2368 ldr r3, [r4] - 10451 0082 1022 movs r2, #16 - 10452 .LVL916: - 10453 0084 DA61 str r2, [r3, #28] -4879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10454 .loc 1 4879 0 - 10455 0086 636C ldr r3, [r4, #68] - 10456 0088 0C3A subs r2, r2, #12 - 10457 008a 1343 orrs r3, r2 - 10458 008c 6364 str r3, [r4, #68] -4884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10459 .loc 1 4884 0 - 10460 008e 1221 movs r1, #18 - 10461 .LVL917: - 10462 0090 2000 movs r0, r4 - 10463 0092 FFF7FEFF bl I2C_Enable_IRQ - 10464 .LVL918: -4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10465 .loc 1 4887 0 - 10466 0096 2000 movs r0, r4 - 10467 0098 FFF7FEFF bl I2C_Flush_TXDR - 10468 .LVL919: - 10469 .L695: -4987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10470 .loc 1 4987 0 - 10471 009c 4023 movs r3, #64 - 10472 009e 0022 movs r2, #0 - 10473 00a0 E254 strb r2, [r4, r3] -4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10474 .loc 1 4989 0 - 10475 00a2 0020 movs r0, #0 - 10476 .L693: -4990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - ARM GAS /tmp/ccFk2Nxo.s page 327 - - - 10477 .loc 1 4990 0 - 10478 00a4 02B0 add sp, sp, #8 - 10479 @ sp needed - 10480 .LVL920: - 10481 00a6 10BD pop {r4, pc} - 10482 .LVL921: - 10483 .L698: -4907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) - 10484 .loc 1 4907 0 - 10485 00a8 638D ldrh r3, [r4, #42] - 10486 00aa 2385 strh r3, [r4, #40] -4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10487 .loc 1 4908 0 - 10488 00ac E26A ldr r2, [r4, #44] - 10489 00ae 224B ldr r3, .L709 - 10490 00b0 9A42 cmp r2, r3 - 10491 00b2 01D0 beq .L706 -4910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10492 .loc 1 4910 0 - 10493 00b4 E36A ldr r3, [r4, #44] - 10494 .LVL922: - 10495 00b6 CCE7 b .L699 - 10496 .LVL923: - 10497 .L706: -4914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10498 .loc 1 4914 0 - 10499 00b8 8023 movs r3, #128 - 10500 00ba 9B04 lsls r3, r3, #18 - 10501 00bc C9E7 b .L699 - 10502 .LVL924: - 10503 .L708: -4927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10504 .loc 1 4927 0 - 10505 00be 2268 ldr r2, [r4] - 10506 00c0 1168 ldr r1, [r2] - 10507 00c2 8023 movs r3, #128 - 10508 00c4 1B02 lsls r3, r3, #8 - 10509 00c6 0B43 orrs r3, r1 - 10510 00c8 1360 str r3, [r2] - 10511 00ca E7E7 b .L695 - 10512 .L697: -4937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10513 .loc 1 4937 0 - 10514 00cc 2368 ldr r3, [r4] - 10515 00ce 5B68 ldr r3, [r3, #4] - 10516 00d0 9B01 lsls r3, r3, #6 - 10517 00d2 03D4 bmi .L701 -4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10518 .loc 1 4940 0 - 10519 00d4 2000 movs r0, r4 - 10520 00d6 FFF7FEFF bl I2C_ITMasterSeqCplt - 10521 .LVL925: - 10522 00da DFE7 b .L695 - 10523 .L701: -4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10524 .loc 1 4946 0 - 10525 00dc 4021 movs r1, #64 - ARM GAS /tmp/ccFk2Nxo.s page 328 - - - 10526 00de 2000 movs r0, r4 - 10527 00e0 FFF7FEFF bl I2C_ITError - 10528 .LVL926: - 10529 00e4 DAE7 b .L695 - 10530 .LVL927: - 10531 .L696: -4950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10532 .loc 1 4950 0 - 10533 00e6 4B06 lsls r3, r1, #25 - 10534 00e8 1CD5 bpl .L702 -4950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10535 .loc 1 4950 0 is_stmt 0 discriminator 1 - 10536 00ea 5306 lsls r3, r2, #25 - 10537 00ec 1AD5 bpl .L702 -4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10538 .loc 1 4952 0 is_stmt 1 - 10539 00ee 638D ldrh r3, [r4, #42] - 10540 00f0 9BB2 uxth r3, r3 - 10541 00f2 002B cmp r3, #0 - 10542 00f4 11D1 bne .L703 -4954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10543 .loc 1 4954 0 - 10544 00f6 2368 ldr r3, [r4] - 10545 00f8 5A68 ldr r2, [r3, #4] - 10546 .LVL928: - 10547 00fa 9201 lsls r2, r2, #6 - 10548 00fc CED4 bmi .L695 -4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10549 .loc 1 4957 0 - 10550 00fe E16A ldr r1, [r4, #44] - 10551 .LVL929: - 10552 0100 0D4A ldr r2, .L709 - 10553 0102 9142 cmp r1, r2 - 10554 0104 05D1 bne .L704 -4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10555 .loc 1 4960 0 - 10556 0106 5968 ldr r1, [r3, #4] - 10557 0108 8022 movs r2, #128 - 10558 010a D201 lsls r2, r2, #7 - 10559 010c 0A43 orrs r2, r1 - 10560 010e 5A60 str r2, [r3, #4] - 10561 0110 C4E7 b .L695 - 10562 .L704: -4965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10563 .loc 1 4965 0 - 10564 0112 2000 movs r0, r4 - 10565 0114 FFF7FEFF bl I2C_ITMasterSeqCplt - 10566 .LVL930: - 10567 0118 C0E7 b .L695 - 10568 .LVL931: - 10569 .L703: -4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10570 .loc 1 4973 0 - 10571 011a 4021 movs r1, #64 - 10572 .LVL932: - 10573 011c 2000 movs r0, r4 - 10574 011e FFF7FEFF bl I2C_ITError - ARM GAS /tmp/ccFk2Nxo.s page 329 - - - 10575 .LVL933: - 10576 0122 BBE7 b .L695 - 10577 .LVL934: - 10578 .L702: -4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10579 .loc 1 4976 0 - 10580 0124 8B06 lsls r3, r1, #26 - 10581 0126 B9D5 bpl .L695 -4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10582 .loc 1 4976 0 is_stmt 0 discriminator 1 - 10583 0128 9306 lsls r3, r2, #26 - 10584 012a B7D5 bpl .L695 -4979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10585 .loc 1 4979 0 is_stmt 1 - 10586 012c 2000 movs r0, r4 - 10587 012e FFF7FEFF bl I2C_ITMasterCplt - 10588 .LVL935: - 10589 0132 B3E7 b .L695 - 10590 .LVL936: - 10591 .L705: -4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10592 .loc 1 4871 0 - 10593 0134 0220 movs r0, #2 - 10594 .LVL937: - 10595 0136 B5E7 b .L693 - 10596 .L710: - 10597 .align 2 - 10598 .L709: - 10599 0138 0000FFFF .word -65536 - 10600 .cfi_endproc - 10601 .LFE91: - 10603 .section .text.I2C_DMAError,"ax",%progbits - 10604 .align 1 - 10605 .syntax unified - 10606 .code 16 - 10607 .thumb_func - 10608 .fpu softvfp - 10610 I2C_DMAError: - 10611 .LFB107: -6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati - 10612 .loc 1 6023 0 - 10613 .cfi_startproc - 10614 @ args = 0, pretend = 0, frame = 0 - 10615 @ frame_needed = 0, uses_anonymous_args = 0 - 10616 .LVL938: - 10617 0000 10B5 push {r4, lr} - 10618 .LCFI81: - 10619 .cfi_def_cfa_offset 8 - 10620 .cfi_offset 4, -8 - 10621 .cfi_offset 14, -4 -6024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10622 .loc 1 6024 0 - 10623 0002 406A ldr r0, [r0, #36] - 10624 .LVL939: -6027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10625 .loc 1 6027 0 - 10626 0004 0268 ldr r2, [r0] - ARM GAS /tmp/ccFk2Nxo.s page 330 - - - 10627 0006 5168 ldr r1, [r2, #4] - 10628 0008 8023 movs r3, #128 - 10629 000a 1B02 lsls r3, r3, #8 - 10630 000c 0B43 orrs r3, r1 - 10631 000e 5360 str r3, [r2, #4] -6030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10632 .loc 1 6030 0 - 10633 0010 1021 movs r1, #16 - 10634 0012 FFF7FEFF bl I2C_ITError - 10635 .LVL940: -6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10636 .loc 1 6031 0 - 10637 @ sp needed - 10638 0016 10BD pop {r4, pc} - 10639 .cfi_endproc - 10640 .LFE107: - 10642 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits - 10643 .align 1 - 10644 .syntax unified - 10645 .code 16 - 10646 .thumb_func - 10647 .fpu softvfp - 10649 I2C_DMAMasterTransmitCplt: - 10650 .LFB103: -5873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati - 10651 .loc 1 5873 0 - 10652 .cfi_startproc - 10653 @ args = 0, pretend = 0, frame = 0 - 10654 @ frame_needed = 0, uses_anonymous_args = 0 - 10655 .LVL941: - 10656 0000 10B5 push {r4, lr} - 10657 .LCFI82: - 10658 .cfi_def_cfa_offset 8 - 10659 .cfi_offset 4, -8 - 10660 .cfi_offset 14, -4 -5874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10661 .loc 1 5874 0 - 10662 0002 446A ldr r4, [r0, #36] - 10663 .LVL942: -5877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10664 .loc 1 5877 0 - 10665 0004 2268 ldr r2, [r4] - 10666 0006 1368 ldr r3, [r2] - 10667 0008 1549 ldr r1, .L720 - 10668 000a 0B40 ands r3, r1 - 10669 000c 1360 str r3, [r2] -5880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10670 .loc 1 5880 0 - 10671 000e 638D ldrh r3, [r4, #42] - 10672 0010 9BB2 uxth r3, r3 - 10673 0012 002B cmp r3, #0 - 10674 0014 17D0 beq .L718 -5889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10675 .loc 1 5889 0 - 10676 0016 218D ldrh r1, [r4, #40] - 10677 0018 636A ldr r3, [r4, #36] - 10678 001a 9C46 mov ip, r3 - ARM GAS /tmp/ccFk2Nxo.s page 331 - - - 10679 001c 6144 add r1, r1, ip - 10680 001e 6162 str r1, [r4, #36] -5892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10681 .loc 1 5892 0 - 10682 0020 638D ldrh r3, [r4, #42] - 10683 0022 9BB2 uxth r3, r3 - 10684 0024 FF2B cmp r3, #255 - 10685 0026 13D9 bls .L715 -5894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10686 .loc 1 5894 0 - 10687 0028 FF23 movs r3, #255 - 10688 002a 2385 strh r3, [r4, #40] - 10689 .L716: -5902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10690 .loc 1 5902 0 - 10691 002c 2268 ldr r2, [r4] - 10692 002e 2832 adds r2, r2, #40 - 10693 0030 238D ldrh r3, [r4, #40] - 10694 0032 A06B ldr r0, [r4, #56] - 10695 .LVL943: - 10696 0034 FFF7FEFF bl HAL_DMA_Start_IT - 10697 .LVL944: - 10698 0038 0028 cmp r0, #0 - 10699 003a 0CD1 bne .L719 -5910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10700 .loc 1 5910 0 - 10701 003c 1221 movs r1, #18 - 10702 003e 2000 movs r0, r4 - 10703 0040 FFF7FEFF bl I2C_Enable_IRQ - 10704 .LVL945: - 10705 .L712: -5913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10706 .loc 1 5913 0 - 10707 @ sp needed - 10708 .LVL946: - 10709 0044 10BD pop {r4, pc} - 10710 .LVL947: - 10711 .L718: -5883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10712 .loc 1 5883 0 - 10713 0046 1221 movs r1, #18 - 10714 0048 2000 movs r0, r4 - 10715 .LVL948: - 10716 004a FFF7FEFF bl I2C_Enable_IRQ - 10717 .LVL949: - 10718 004e F9E7 b .L712 - 10719 .LVL950: - 10720 .L715: -5898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10721 .loc 1 5898 0 - 10722 0050 638D ldrh r3, [r4, #42] - 10723 0052 2385 strh r3, [r4, #40] - 10724 0054 EAE7 b .L716 - 10725 .LVL951: - 10726 .L719: -5905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10727 .loc 1 5905 0 - ARM GAS /tmp/ccFk2Nxo.s page 332 - - - 10728 0056 1021 movs r1, #16 - 10729 0058 2000 movs r0, r4 - 10730 005a FFF7FEFF bl I2C_ITError - 10731 .LVL952: - 10732 005e F1E7 b .L712 - 10733 .L721: - 10734 .align 2 - 10735 .L720: - 10736 0060 FFBFFFFF .word -16385 - 10737 .cfi_endproc - 10738 .LFE103: - 10740 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits - 10741 .align 1 - 10742 .syntax unified - 10743 .code 16 - 10744 .thumb_func - 10745 .fpu softvfp - 10747 I2C_DMAMasterReceiveCplt: - 10748 .LFB105: -5948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati - 10749 .loc 1 5948 0 - 10750 .cfi_startproc - 10751 @ args = 0, pretend = 0, frame = 0 - 10752 @ frame_needed = 0, uses_anonymous_args = 0 - 10753 .LVL953: - 10754 0000 10B5 push {r4, lr} - 10755 .LCFI83: - 10756 .cfi_def_cfa_offset 8 - 10757 .cfi_offset 4, -8 - 10758 .cfi_offset 14, -4 -5949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10759 .loc 1 5949 0 - 10760 0002 446A ldr r4, [r0, #36] - 10761 .LVL954: -5952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10762 .loc 1 5952 0 - 10763 0004 2268 ldr r2, [r4] - 10764 0006 1368 ldr r3, [r2] - 10765 0008 1549 ldr r1, .L730 - 10766 000a 0B40 ands r3, r1 - 10767 000c 1360 str r3, [r2] -5955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10768 .loc 1 5955 0 - 10769 000e 638D ldrh r3, [r4, #42] - 10770 0010 9BB2 uxth r3, r3 - 10771 0012 002B cmp r3, #0 - 10772 0014 17D0 beq .L728 -5964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10773 .loc 1 5964 0 - 10774 0016 228D ldrh r2, [r4, #40] - 10775 0018 636A ldr r3, [r4, #36] - 10776 001a 9C46 mov ip, r3 - 10777 001c 6244 add r2, r2, ip - 10778 001e 6262 str r2, [r4, #36] -5967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10779 .loc 1 5967 0 - 10780 0020 638D ldrh r3, [r4, #42] - ARM GAS /tmp/ccFk2Nxo.s page 333 - - - 10781 0022 9BB2 uxth r3, r3 - 10782 0024 FF2B cmp r3, #255 - 10783 0026 13D9 bls .L725 -5969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10784 .loc 1 5969 0 - 10785 0028 FF23 movs r3, #255 - 10786 002a 2385 strh r3, [r4, #40] - 10787 .L726: -5977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10788 .loc 1 5977 0 - 10789 002c 2168 ldr r1, [r4] - 10790 002e 2431 adds r1, r1, #36 - 10791 0030 238D ldrh r3, [r4, #40] - 10792 0032 E06B ldr r0, [r4, #60] - 10793 .LVL955: - 10794 0034 FFF7FEFF bl HAL_DMA_Start_IT - 10795 .LVL956: - 10796 0038 0028 cmp r0, #0 - 10797 003a 0CD1 bne .L729 -5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10798 .loc 1 5985 0 - 10799 003c 1221 movs r1, #18 - 10800 003e 2000 movs r0, r4 - 10801 0040 FFF7FEFF bl I2C_Enable_IRQ - 10802 .LVL957: - 10803 .L722: -5988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10804 .loc 1 5988 0 - 10805 @ sp needed - 10806 .LVL958: - 10807 0044 10BD pop {r4, pc} - 10808 .LVL959: - 10809 .L728: -5958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10810 .loc 1 5958 0 - 10811 0046 1221 movs r1, #18 - 10812 0048 2000 movs r0, r4 - 10813 .LVL960: - 10814 004a FFF7FEFF bl I2C_Enable_IRQ - 10815 .LVL961: - 10816 004e F9E7 b .L722 - 10817 .LVL962: - 10818 .L725: -5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10819 .loc 1 5973 0 - 10820 0050 638D ldrh r3, [r4, #42] - 10821 0052 2385 strh r3, [r4, #40] - 10822 0054 EAE7 b .L726 - 10823 .LVL963: - 10824 .L729: -5980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10825 .loc 1 5980 0 - 10826 0056 1021 movs r1, #16 - 10827 0058 2000 movs r0, r4 - 10828 005a FFF7FEFF bl I2C_ITError - 10829 .LVL964: - 10830 005e F1E7 b .L722 - ARM GAS /tmp/ccFk2Nxo.s page 334 - - - 10831 .L731: - 10832 .align 2 - 10833 .L730: - 10834 0060 FF7FFFFF .word -32769 - 10835 .cfi_endproc - 10836 .LFE105: - 10838 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits - 10839 .align 1 - 10840 .global HAL_I2C_ER_IRQHandler - 10841 .syntax unified - 10842 .code 16 - 10843 .thumb_func - 10844 .fpu softvfp - 10846 HAL_I2C_ER_IRQHandler: - 10847 .LFB75: -4317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); - 10848 .loc 1 4317 0 - 10849 .cfi_startproc - 10850 @ args = 0, pretend = 0, frame = 0 - 10851 @ frame_needed = 0, uses_anonymous_args = 0 - 10852 .LVL965: - 10853 0000 70B5 push {r4, r5, r6, lr} - 10854 .LCFI84: - 10855 .cfi_def_cfa_offset 16 - 10856 .cfi_offset 4, -16 - 10857 .cfi_offset 5, -12 - 10858 .cfi_offset 6, -8 - 10859 .cfi_offset 14, -4 -4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); - 10860 .loc 1 4318 0 - 10861 0002 0268 ldr r2, [r0] - 10862 0004 9369 ldr r3, [r2, #24] - 10863 .LVL966: -4319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; - 10864 .loc 1 4319 0 - 10865 0006 1168 ldr r1, [r2] - 10866 .LVL967: -4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10867 .loc 1 4323 0 - 10868 0008 DC05 lsls r4, r3, #23 - 10869 000a 08D5 bpl .L733 -4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10870 .loc 1 4323 0 is_stmt 0 discriminator 1 - 10871 000c 0C06 lsls r4, r1, #24 - 10872 000e 06D5 bpl .L733 -4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10873 .loc 1 4325 0 is_stmt 1 - 10874 0010 446C ldr r4, [r0, #68] - 10875 0012 0125 movs r5, #1 - 10876 0014 2C43 orrs r4, r5 - 10877 0016 4464 str r4, [r0, #68] -4328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10878 .loc 1 4328 0 - 10879 0018 8024 movs r4, #128 - 10880 001a 6400 lsls r4, r4, #1 - 10881 001c D461 str r4, [r2, #28] - 10882 .L733: - ARM GAS /tmp/ccFk2Nxo.s page 335 - - -4332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10883 .loc 1 4332 0 - 10884 001e 5A05 lsls r2, r3, #21 - 10885 0020 09D5 bpl .L734 -4332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10886 .loc 1 4332 0 is_stmt 0 discriminator 1 - 10887 0022 0A06 lsls r2, r1, #24 - 10888 0024 07D5 bpl .L734 -4334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10889 .loc 1 4334 0 is_stmt 1 - 10890 0026 426C ldr r2, [r0, #68] - 10891 0028 0824 movs r4, #8 - 10892 002a 2243 orrs r2, r4 - 10893 002c 4264 str r2, [r0, #68] -4337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10894 .loc 1 4337 0 - 10895 002e 0268 ldr r2, [r0] - 10896 0030 8024 movs r4, #128 - 10897 0032 E400 lsls r4, r4, #3 - 10898 0034 D461 str r4, [r2, #28] - 10899 .L734: -4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10900 .loc 1 4341 0 - 10901 0036 9B05 lsls r3, r3, #22 - 10902 0038 09D5 bpl .L735 - 10903 .LVL968: -4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10904 .loc 1 4341 0 is_stmt 0 discriminator 1 - 10905 003a 0B06 lsls r3, r1, #24 - 10906 003c 07D5 bpl .L735 -4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10907 .loc 1 4343 0 is_stmt 1 - 10908 003e 436C ldr r3, [r0, #68] - 10909 0040 0222 movs r2, #2 - 10910 0042 1343 orrs r3, r2 - 10911 0044 4364 str r3, [r0, #68] -4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10912 .loc 1 4346 0 - 10913 0046 0368 ldr r3, [r0] - 10914 0048 FF32 adds r2, r2, #255 - 10915 004a FF32 adds r2, r2, #255 - 10916 004c DA61 str r2, [r3, #28] - 10917 .L735: -4350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10918 .loc 1 4350 0 - 10919 004e 416C ldr r1, [r0, #68] - 10920 .LVL969: -4353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10921 .loc 1 4353 0 - 10922 0050 0B23 movs r3, #11 - 10923 0052 0B42 tst r3, r1 - 10924 0054 00D1 bne .L737 - 10925 .LVL970: - 10926 .L732: -4357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10927 .loc 1 4357 0 - 10928 @ sp needed - ARM GAS /tmp/ccFk2Nxo.s page 336 - - - 10929 0056 70BD pop {r4, r5, r6, pc} - 10930 .LVL971: - 10931 .L737: -4355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 10932 .loc 1 4355 0 - 10933 0058 FFF7FEFF bl I2C_ITError - 10934 .LVL972: -4357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10935 .loc 1 4357 0 - 10936 005c FBE7 b .L732 - 10937 .cfi_endproc - 10938 .LFE75: - 10940 .section .text.I2C_DMAAbort,"ax",%progbits - 10941 .align 1 - 10942 .syntax unified - 10943 .code 16 - 10944 .thumb_func - 10945 .fpu softvfp - 10947 I2C_DMAAbort: - 10948 .LFB108: -6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati - 10949 .loc 1 6040 0 - 10950 .cfi_startproc - 10951 @ args = 0, pretend = 0, frame = 0 - 10952 @ frame_needed = 0, uses_anonymous_args = 0 - 10953 .LVL973: - 10954 0000 10B5 push {r4, lr} - 10955 .LCFI85: - 10956 .cfi_def_cfa_offset 8 - 10957 .cfi_offset 4, -8 - 10958 .cfi_offset 14, -4 -6041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10959 .loc 1 6041 0 - 10960 0002 406A ldr r0, [r0, #36] - 10961 .LVL974: -6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; - 10962 .loc 1 6044 0 - 10963 0004 826B ldr r2, [r0, #56] - 10964 0006 0023 movs r3, #0 - 10965 0008 5363 str r3, [r2, #52] -6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10966 .loc 1 6045 0 - 10967 000a C26B ldr r2, [r0, #60] - 10968 000c 5363 str r3, [r2, #52] -6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { - 10969 .loc 1 6048 0 - 10970 000e 4133 adds r3, r3, #65 - 10971 0010 C35C ldrb r3, [r0, r3] - 10972 0012 602B cmp r3, #96 - 10973 0014 02D0 beq .L741 -6065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 10974 .loc 1 6065 0 - 10975 0016 FFF7FEFF bl HAL_I2C_ErrorCallback - 10976 .LVL975: - 10977 .L738: -6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10978 .loc 1 6068 0 - ARM GAS /tmp/ccFk2Nxo.s page 337 - - - 10979 @ sp needed - 10980 001a 10BD pop {r4, pc} - 10981 .LVL976: - 10982 .L741: -6050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 10983 .loc 1 6050 0 - 10984 001c 1F3B subs r3, r3, #31 - 10985 001e 2022 movs r2, #32 - 10986 0020 C254 strb r2, [r0, r3] -6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ - 10987 .loc 1 6056 0 - 10988 0022 FFF7FEFF bl HAL_I2C_AbortCpltCallback - 10989 .LVL977: - 10990 0026 F8E7 b .L738 - 10991 .cfi_endproc - 10992 .LFE108: - 10994 .section .text.HAL_I2C_GetState,"ax",%progbits - 10995 .align 1 - 10996 .global HAL_I2C_GetState - 10997 .syntax unified - 10998 .code 16 - 10999 .thumb_func - 11000 .fpu softvfp - 11002 HAL_I2C_GetState: - 11003 .LFB86: -4548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return I2C handle state */ - 11004 .loc 1 4548 0 - 11005 .cfi_startproc - 11006 @ args = 0, pretend = 0, frame = 0 - 11007 @ frame_needed = 0, uses_anonymous_args = 0 - 11008 @ link register save eliminated. - 11009 .LVL978: -4550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 11010 .loc 1 4550 0 - 11011 0000 4123 movs r3, #65 - 11012 0002 C05C ldrb r0, [r0, r3] - 11013 .LVL979: - 11014 0004 C0B2 uxtb r0, r0 -4551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 11015 .loc 1 4551 0 - 11016 @ sp needed - 11017 0006 7047 bx lr - 11018 .cfi_endproc - 11019 .LFE86: - 11021 .section .text.HAL_I2C_GetMode,"ax",%progbits - 11022 .align 1 - 11023 .global HAL_I2C_GetMode - 11024 .syntax unified - 11025 .code 16 - 11026 .thumb_func - 11027 .fpu softvfp - 11029 HAL_I2C_GetMode: - 11030 .LFB87: -4560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->Mode; - 11031 .loc 1 4560 0 - 11032 .cfi_startproc - 11033 @ args = 0, pretend = 0, frame = 0 - ARM GAS /tmp/ccFk2Nxo.s page 338 - - - 11034 @ frame_needed = 0, uses_anonymous_args = 0 - 11035 @ link register save eliminated. - 11036 .LVL980: -4561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 11037 .loc 1 4561 0 - 11038 0000 4223 movs r3, #66 - 11039 0002 C05C ldrb r0, [r0, r3] - 11040 .LVL981: - 11041 0004 C0B2 uxtb r0, r0 -4562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 11042 .loc 1 4562 0 - 11043 @ sp needed - 11044 0006 7047 bx lr - 11045 .cfi_endproc - 11046 .LFE87: - 11048 .section .text.HAL_I2C_GetError,"ax",%progbits - 11049 .align 1 - 11050 .global HAL_I2C_GetError - 11051 .syntax unified - 11052 .code 16 - 11053 .thumb_func - 11054 .fpu softvfp - 11056 HAL_I2C_GetError: - 11057 .LFB88: -4571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->ErrorCode; - 11058 .loc 1 4571 0 - 11059 .cfi_startproc - 11060 @ args = 0, pretend = 0, frame = 0 - 11061 @ frame_needed = 0, uses_anonymous_args = 0 - 11062 @ link register save eliminated. - 11063 .LVL982: -4572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } - 11064 .loc 1 4572 0 - 11065 0000 406C ldr r0, [r0, #68] - 11066 .LVL983: -4573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** - 11067 .loc 1 4573 0 - 11068 @ sp needed - 11069 0002 7047 bx lr - 11070 .cfi_endproc - 11071 .LFE88: - 11073 .text - 11074 .Letext0: - 11075 .file 2 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/machin - 11076 .file 3 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_s - 11077 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h" - 11078 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h" - 11079 .file 6 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h" - 11080 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h" - 11081 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h" - 11082 .file 9 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h" - 11083 .file 10 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" - ARM GAS /tmp/ccFk2Nxo.s page 339 - - -DEFINED SYMBOLS - *ABS*:0000000000000000 stm32f0xx_hal_i2c.c - /tmp/ccFk2Nxo.s:16 .text.I2C_Flush_TXDR:0000000000000000 $t - /tmp/ccFk2Nxo.s:22 .text.I2C_Flush_TXDR:0000000000000000 I2C_Flush_TXDR - /tmp/ccFk2Nxo.s:58 .text.I2C_TransferConfig:0000000000000000 $t - /tmp/ccFk2Nxo.s:64 .text.I2C_TransferConfig:0000000000000000 I2C_TransferConfig - /tmp/ccFk2Nxo.s:108 .text.I2C_TransferConfig:0000000000000028 $d - /tmp/ccFk2Nxo.s:113 .text.I2C_Enable_IRQ:0000000000000000 $t - /tmp/ccFk2Nxo.s:119 .text.I2C_Enable_IRQ:0000000000000000 I2C_Enable_IRQ - /tmp/ccFk2Nxo.s:240 .text.I2C_Enable_IRQ:0000000000000074 $d - /tmp/ccFk2Nxo.s:10345 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA - /tmp/ccFk2Nxo.s:10103 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA - /tmp/ccFk2Nxo.s:246 .text.I2C_Disable_IRQ:0000000000000000 $t - /tmp/ccFk2Nxo.s:252 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ - /tmp/ccFk2Nxo.s:371 .text.I2C_ConvertOtherXferOptions:0000000000000000 $t - /tmp/ccFk2Nxo.s:377 .text.I2C_ConvertOtherXferOptions:0000000000000000 I2C_ConvertOtherXferOptions - /tmp/ccFk2Nxo.s:415 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t - /tmp/ccFk2Nxo.s:421 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed - /tmp/ccFk2Nxo.s:533 .text.I2C_IsAcknowledgeFailed:000000000000007c $d - /tmp/ccFk2Nxo.s:538 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t - /tmp/ccFk2Nxo.s:544 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout - /tmp/ccFk2Nxo.s:626 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t - /tmp/ccFk2Nxo.s:632 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout - /tmp/ccFk2Nxo.s:709 .text.I2C_RequestMemoryWrite:0000000000000000 $t - /tmp/ccFk2Nxo.s:715 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite - /tmp/ccFk2Nxo.s:812 .text.I2C_RequestMemoryWrite:0000000000000070 $d - /tmp/ccFk2Nxo.s:817 .text.I2C_RequestMemoryRead:0000000000000000 $t - /tmp/ccFk2Nxo.s:823 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead - /tmp/ccFk2Nxo.s:917 .text.I2C_RequestMemoryRead:000000000000006c $d - /tmp/ccFk2Nxo.s:922 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t - /tmp/ccFk2Nxo.s:928 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout - /tmp/ccFk2Nxo.s:1007 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t - /tmp/ccFk2Nxo.s:1013 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout - /tmp/ccFk2Nxo.s:1127 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000080 $d - /tmp/ccFk2Nxo.s:1132 .text.HAL_I2C_MspInit:0000000000000000 $t - /tmp/ccFk2Nxo.s:1139 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit - /tmp/ccFk2Nxo.s:1154 .text.HAL_I2C_Init:0000000000000000 $t - /tmp/ccFk2Nxo.s:1161 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init - /tmp/ccFk2Nxo.s:1309 .text.HAL_I2C_Init:00000000000000c0 $d - /tmp/ccFk2Nxo.s:1316 .text.HAL_I2C_MspDeInit:0000000000000000 $t - /tmp/ccFk2Nxo.s:1323 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit - /tmp/ccFk2Nxo.s:1338 .text.HAL_I2C_DeInit:0000000000000000 $t - /tmp/ccFk2Nxo.s:1345 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit - /tmp/ccFk2Nxo.s:1405 .text.HAL_I2C_Master_Transmit:0000000000000000 $t - /tmp/ccFk2Nxo.s:1412 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit - /tmp/ccFk2Nxo.s:1680 .text.HAL_I2C_Master_Transmit:0000000000000164 $d - /tmp/ccFk2Nxo.s:1686 .text.HAL_I2C_Master_Receive:0000000000000000 $t - /tmp/ccFk2Nxo.s:1693 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive - /tmp/ccFk2Nxo.s:1961 .text.HAL_I2C_Master_Receive:0000000000000164 $d - /tmp/ccFk2Nxo.s:1967 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t - /tmp/ccFk2Nxo.s:1974 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit - /tmp/ccFk2Nxo.s:2276 .text.HAL_I2C_Slave_Transmit:0000000000000194 $d - /tmp/ccFk2Nxo.s:2281 .text.HAL_I2C_Slave_Receive:0000000000000000 $t - /tmp/ccFk2Nxo.s:2288 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive - /tmp/ccFk2Nxo.s:2571 .text.HAL_I2C_Slave_Receive:0000000000000178 $d - /tmp/ccFk2Nxo.s:2576 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:2583 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT - ARM GAS /tmp/ccFk2Nxo.s page 340 - - - /tmp/ccFk2Nxo.s:2712 .text.HAL_I2C_Master_Transmit_IT:0000000000000088 $d - /tmp/ccFk2Nxo.s:9787 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT - /tmp/ccFk2Nxo.s:2719 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:2726 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT - /tmp/ccFk2Nxo.s:2855 .text.HAL_I2C_Master_Receive_IT:0000000000000088 $d - /tmp/ccFk2Nxo.s:2862 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:2869 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT - /tmp/ccFk2Nxo.s:2957 .text.HAL_I2C_Slave_Transmit_IT:0000000000000058 $d - /tmp/ccFk2Nxo.s:9339 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT - /tmp/ccFk2Nxo.s:2964 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:2971 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT - /tmp/ccFk2Nxo.s:3059 .text.HAL_I2C_Slave_Receive_IT:0000000000000058 $d - /tmp/ccFk2Nxo.s:3066 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:3073 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA - /tmp/ccFk2Nxo.s:3332 .text.HAL_I2C_Master_Transmit_DMA:000000000000013c $d - /tmp/ccFk2Nxo.s:10649 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt - /tmp/ccFk2Nxo.s:10610 .text.I2C_DMAError:0000000000000000 I2C_DMAError - /tmp/ccFk2Nxo.s:3342 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:3349 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA - /tmp/ccFk2Nxo.s:3607 .text.HAL_I2C_Master_Receive_DMA:000000000000013c $d - /tmp/ccFk2Nxo.s:10747 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt - /tmp/ccFk2Nxo.s:3617 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:3624 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA - /tmp/ccFk2Nxo.s:3811 .text.HAL_I2C_Slave_Transmit_DMA:00000000000000e0 $d - /tmp/ccFk2Nxo.s:8434 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt - /tmp/ccFk2Nxo.s:3820 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:3827 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA - /tmp/ccFk2Nxo.s:4017 .text.HAL_I2C_Slave_Receive_DMA:00000000000000e4 $d - /tmp/ccFk2Nxo.s:8489 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt - /tmp/ccFk2Nxo.s:4026 .text.HAL_I2C_Mem_Write:0000000000000000 $t - /tmp/ccFk2Nxo.s:4033 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write - /tmp/ccFk2Nxo.s:4340 .text.HAL_I2C_Mem_Write:000000000000019c $d - /tmp/ccFk2Nxo.s:4345 .text.HAL_I2C_Mem_Read:0000000000000000 $t - /tmp/ccFk2Nxo.s:4352 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read - /tmp/ccFk2Nxo.s:4661 .text.HAL_I2C_Mem_Read:00000000000001a0 $d - /tmp/ccFk2Nxo.s:4667 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:4674 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT - /tmp/ccFk2Nxo.s:4849 .text.HAL_I2C_Mem_Write_IT:00000000000000cc $d - /tmp/ccFk2Nxo.s:4855 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:4862 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT - /tmp/ccFk2Nxo.s:5038 .text.HAL_I2C_Mem_Read_IT:00000000000000cc $d - /tmp/ccFk2Nxo.s:5045 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:5052 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA - /tmp/ccFk2Nxo.s:5327 .text.HAL_I2C_Mem_Write_DMA:0000000000000158 $d - /tmp/ccFk2Nxo.s:5335 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:5342 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA - /tmp/ccFk2Nxo.s:5618 .text.HAL_I2C_Mem_Read_DMA:0000000000000158 $d - /tmp/ccFk2Nxo.s:5627 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t - /tmp/ccFk2Nxo.s:5634 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady - /tmp/ccFk2Nxo.s:5939 .text.HAL_I2C_IsDeviceReady:000000000000017c $d - /tmp/ccFk2Nxo.s:5944 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:5951 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 HAL_I2C_Master_Seq_Transmit_IT - /tmp/ccFk2Nxo.s:6116 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000000000b0 $d - /tmp/ccFk2Nxo.s:6122 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:6129 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Master_Seq_Transmit_DMA - /tmp/ccFk2Nxo.s:6416 .text.HAL_I2C_Master_Seq_Transmit_DMA:000000000000015c $d - /tmp/ccFk2Nxo.s:6425 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 $t - ARM GAS /tmp/ccFk2Nxo.s page 341 - - - /tmp/ccFk2Nxo.s:6432 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 HAL_I2C_Master_Seq_Receive_IT - /tmp/ccFk2Nxo.s:6597 .text.HAL_I2C_Master_Seq_Receive_IT:00000000000000b0 $d - /tmp/ccFk2Nxo.s:6603 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:6610 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 HAL_I2C_Master_Seq_Receive_DMA - /tmp/ccFk2Nxo.s:6897 .text.HAL_I2C_Master_Seq_Receive_DMA:000000000000015c $d - /tmp/ccFk2Nxo.s:6906 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:6913 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 HAL_I2C_Slave_Seq_Transmit_IT - /tmp/ccFk2Nxo.s:7083 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000000000c8 $d - /tmp/ccFk2Nxo.s:10947 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort - /tmp/ccFk2Nxo.s:7090 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:7097 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Seq_Transmit_DMA - /tmp/ccFk2Nxo.s:7395 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000180 $d - /tmp/ccFk2Nxo.s:7405 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:7412 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 HAL_I2C_Slave_Seq_Receive_IT - /tmp/ccFk2Nxo.s:7582 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000000000c8 $d - /tmp/ccFk2Nxo.s:7590 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:7597 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 HAL_I2C_Slave_Seq_Receive_DMA - /tmp/ccFk2Nxo.s:7896 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000180 $d - /tmp/ccFk2Nxo.s:7906 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:7913 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT - /tmp/ccFk2Nxo.s:7956 .text.HAL_I2C_EnableListen_IT:0000000000000024 $d - /tmp/ccFk2Nxo.s:7961 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:7968 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT - /tmp/ccFk2Nxo.s:8027 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:8034 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT - /tmp/ccFk2Nxo.s:8122 .text.HAL_I2C_Master_Abort_IT:0000000000000060 $d - /tmp/ccFk2Nxo.s:8127 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t - /tmp/ccFk2Nxo.s:8134 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler - /tmp/ccFk2Nxo.s:8168 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8175 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback - /tmp/ccFk2Nxo.s:8190 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8197 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback - /tmp/ccFk2Nxo.s:8212 .text.I2C_ITMasterSeqCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:8218 .text.I2C_ITMasterSeqCplt:0000000000000000 I2C_ITMasterSeqCplt - /tmp/ccFk2Nxo.s:8296 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8303 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback - /tmp/ccFk2Nxo.s:8318 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8325 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback - /tmp/ccFk2Nxo.s:8340 .text.I2C_ITSlaveSeqCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:8346 .text.I2C_ITSlaveSeqCplt:0000000000000000 I2C_ITSlaveSeqCplt - /tmp/ccFk2Nxo.s:8428 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:8478 .text.I2C_DMASlaveTransmitCplt:0000000000000024 $d - /tmp/ccFk2Nxo.s:8483 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:8534 .text.I2C_DMASlaveReceiveCplt:0000000000000028 $d - /tmp/ccFk2Nxo.s:8540 .text.HAL_I2C_AddrCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8547 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback - /tmp/ccFk2Nxo.s:8562 .text.I2C_ITAddrCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:8568 .text.I2C_ITAddrCplt:0000000000000000 I2C_ITAddrCplt - /tmp/ccFk2Nxo.s:8708 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8715 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback - /tmp/ccFk2Nxo.s:8730 .text.I2C_ITListenCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:8736 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt - /tmp/ccFk2Nxo.s:8820 .text.I2C_ITListenCplt:0000000000000060 $d - /tmp/ccFk2Nxo.s:8825 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8832 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback - /tmp/ccFk2Nxo.s:8847 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8854 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback - ARM GAS /tmp/ccFk2Nxo.s page 342 - - - /tmp/ccFk2Nxo.s:8869 .text.HAL_I2C_ErrorCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8876 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback - /tmp/ccFk2Nxo.s:8891 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t - /tmp/ccFk2Nxo.s:8898 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback - /tmp/ccFk2Nxo.s:8913 .text.I2C_ITError:0000000000000000 $t - /tmp/ccFk2Nxo.s:8919 .text.I2C_ITError:0000000000000000 I2C_ITError - /tmp/ccFk2Nxo.s:9100 .text.I2C_ITError:00000000000000e4 $d - /tmp/ccFk2Nxo.s:9109 .text.I2C_ITSlaveCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:9115 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt - /tmp/ccFk2Nxo.s:9327 .text.I2C_ITSlaveCplt:0000000000000110 $d - /tmp/ccFk2Nxo.s:9333 .text.I2C_Slave_ISR_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:9601 .text.I2C_Slave_ISR_IT:0000000000000148 $d - /tmp/ccFk2Nxo.s:9606 .text.I2C_ITMasterCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:9612 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt - /tmp/ccFk2Nxo.s:9775 .text.I2C_ITMasterCplt:00000000000000cc $d - /tmp/ccFk2Nxo.s:9781 .text.I2C_Master_ISR_IT:0000000000000000 $t - /tmp/ccFk2Nxo.s:10092 .text.I2C_Master_ISR_IT:0000000000000174 $d - /tmp/ccFk2Nxo.s:10097 .text.I2C_Slave_ISR_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:10334 .text.I2C_Slave_ISR_DMA:0000000000000104 $d - /tmp/ccFk2Nxo.s:10339 .text.I2C_Master_ISR_DMA:0000000000000000 $t - /tmp/ccFk2Nxo.s:10599 .text.I2C_Master_ISR_DMA:0000000000000138 $d - /tmp/ccFk2Nxo.s:10604 .text.I2C_DMAError:0000000000000000 $t - /tmp/ccFk2Nxo.s:10643 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:10736 .text.I2C_DMAMasterTransmitCplt:0000000000000060 $d - /tmp/ccFk2Nxo.s:10741 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t - /tmp/ccFk2Nxo.s:10834 .text.I2C_DMAMasterReceiveCplt:0000000000000060 $d - /tmp/ccFk2Nxo.s:10839 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t - /tmp/ccFk2Nxo.s:10846 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler - /tmp/ccFk2Nxo.s:10941 .text.I2C_DMAAbort:0000000000000000 $t - /tmp/ccFk2Nxo.s:10995 .text.HAL_I2C_GetState:0000000000000000 $t - /tmp/ccFk2Nxo.s:11002 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState - /tmp/ccFk2Nxo.s:11022 .text.HAL_I2C_GetMode:0000000000000000 $t - /tmp/ccFk2Nxo.s:11029 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode - /tmp/ccFk2Nxo.s:11049 .text.HAL_I2C_GetError:0000000000000000 $t - /tmp/ccFk2Nxo.s:11056 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError - -UNDEFINED SYMBOLS -HAL_GetTick -HAL_DMA_Start_IT -HAL_DMA_Abort_IT -- cgit